Posted May 16, 2025 by Internet Janitor
Decker 1.55 is a major update which overhauls the semantics of the Lil scripting language and provides numerous bugfixes and minor usability improvements.
The introduction of nil to Lil represents a subtle but sweeping set of alterations to the semantics of Lil, in a way which I believe will ultimately make it easier to construct robust programs. I apologize in advance for the growing pains which will result from these changes, and I offer my sincere assurance that I never intend to introduce another breaking change of this magnitude in the future. My recent blog post Nil for Lil describes some of the problems this change intends to address.
Many Lil scripts will continue to work as expected. The "fill" keyword is now reserved, and may require some variables to be renamed. The behavior of the "unless" operator has changed; it now coalesces to the left argument if and only if the right argument is nil, rather than 0. Expressions which rely on comparing an out-of-bounds index (outdex) of a list, dictionary, or table to the literal 0 (as by "0~") may need to instead compare with nil ("nil~"). Examine the Lil and Decker reference manuals for details on changes to the behavior of the "parse" operator (returning nil for missing slots instead of 0 or "" as a placeholder) and the similar changes to readcsv[]. Parsing and emitting JSON or LOVE data will round-trip nil as "null".
This release includes version bumps for a number of Lil modules: dialogizer/dd (v1.5), puppeteer/pt (v1.2), path (v1.2), and plot (v2.1). If you're using any of these in your existing decks, be sure to upgrade the modules to the latest version alongside Decker. I've tested all of my contraptions in the Bazaar, and as far as I can tell only the Validator was broken (ironically); I'll have an updated version posted promptly.
I recommend that anyone migrating a large project from earlier versions of Decker to 1.55 make a backup of their deck and retain a copy of their previous Decker executable before moving forward just in case anything goes haywire. If you need help with a migration, feel free to reach out. As always, please notify me promptly with details if you encounter bugs or odd behavior in this release. Please pardon my dust!
Over 70 participants have signed up for treegravy's Decker Visual Novel Jam, but there's still more than a month left to join in! Stop by the jam's community forum for a peek at what your fellow Deckbuilders are cooking up!