Dialog release announcements

Here is Dialog version 0k/03 (library 0.40).

Notable changes

  • When expanding a complex action (e.g. due to “TAKE ALL”), the library now prints the name of each object in turn, instead of spelling out the entire action.

  • “DOWN”, “UP”, and “OUT” (with some variations) are now understood as ambiguously referring to [leave $] and [go $] when the player is on a supporter, in or on a seat, or in a container, respectively. A rationale is in this post. Thanks @Karona!

Bugfixes

  • Debugger: When updating a running program, the debugger needs to match the (select) statements in the old and new versions of the code using a diff-like algorithm, in order to preserve as much of the game state as possible. The code for this has been reimplemented from scratch in a cleaner way. The old version had a bug that would sometimes result in the debugger reporting an “internal inconsistency in select”. Hopefully that bug is no longer present.

  • Debugger: No longer crashes when encountering output boxes while collecting words.

  • Library: Updating the environment around the player (the cache variables) before drawing the status line. Reported by @Karona.

  • Library: Allowing (from $ go $ to room $) to be invoked with just the first parameter bound, to backtrack over all exits.

  • Library: (perform [leave $]) now uses (move player to $ $) instead of setting the location of the player object directly.

  • Library: (them $) can now deal with a list argument.

Also, minor improvements to the optimizer.

8 Likes