• FEATURE: UTF-8 encoding is now supported for source, solution and transcript files. This extends support for non-English languages. The new compiler option -encoding will make the compiler assume that the source code is encoded with UTF-8. In addition, import files that have a UTF-8 BOM marker will always be read using UTF-8 encoding, irrespective of any options. The interpreter switch -u will indicate that input and output in the terminal, command logs, transcript files and solution files, is performed using UTF-8 encoding (which is the default on Linux and becoming more common). See Appendix C in The Alan Language Manual for details.
  • FEATURE (language): Block comments. See chapter 4, Lexical Definitions in the Alan Language Manual
  • FEATURE (interpreters): Make it possible to generate transcript and command logs simultaneously from a single game run
  • FEATURE (misc): Ensure Alan complies with the Babel Treaty (a convention to make it possible to identify and catalog *all* works of Interactive Fiction)
  • FEATURE (interpreter): Add separate option for not paging output ("<More>")
  • WARNING: warn for actors in containers as the behaviour is not completely well-defined
  • BUGFIX: When an item is located in a container the limits now considers content in possibly contained items recursively. Furthermore, if the container in itself is inside a container with limits those limits are also checked. This might change behaviour of existing games, please check by running your tests.
  • BUGFIX: Large games with many string or set manipulations could sometimes exhibit significant slowdowns over time
  • BUGFIX: Transcript was always empty when started from code using "Transcript On."
  • BUGFIX: Random spacing issues fixed
  • BUGFIX: Dynamic variable $v gave wrong output if used in Exits
  • BUGFIX: Dynamic variable $o crashed the interpreter if used in an Exit
  • BUGFIX: Option section did not allow you to use 'no' before a boolean option
  • FEATURE: ellision/contraction marked by apostrophe (such as "l'aqua" in italian) is now handled so that it is first looked up as a complete word, but failing that will fallback and look for the two parts separated by the apostrophe as single words.
  • FEATURE: allow double conjunctions between player sentences, to allow such as "take the stone and then drop it". ("and" and "then" are both conjunctions).
  • BUGFIX: pack option did not work
  • BUGFIX: Random In Container sometimes crashed
  • BUGFIX: Grave accented 'È' ('è') was lost in syntaxes and synonyms
  • BUGFIX: It was possible to declare multiple pronouns but only the first one worked.
  • BUGIFX: System Error was thrown when using IN-filters and the container was a local variable.
  • BUGFIX: Division by zero crashed the interpreter, now it throws an Application Error instead.
  • BUGFIX: If the player input in a string parameter contained a dollar sign, it was expanded on output (or crashed)
  • FEATURE: There was no way to print $500, as that was interpreted as a symbol.
  • BUGFIX: There was no way to create synonym for 'the'.
  • BUGFIX: Compiler did not adhere to "Option Debug." in the source.
  • BUGFIX: You could say "Container Taking <x>" without warnings or errors even if the class <x> was not allowed in container (actors and locations).
  • BUGFIX: Description Checks was not respected when auto-listing instances at a location.
  • BUGFIX: Improved error handling for syntax errors in names, which previously could cause a System Error.
  • FEATURE: compiler now figures out the most general class taken transitively by containers and uses that instead of entity where applicable
  • FEATURE: MacOS application to run text-only interpreter in a terminal
  • BUGFIX: if the hero was already defined as something other than an actor, declaring it the compiler crashed
  • CLEANUP: corrected implementation of transitivity
  • CLEANUP: rebuilt Makefiles for building on Windows10 and 64-bit, continuous integration with Jenkins etc. etc. after move to new machines and other infrastructure
  • MAJOR FEATURE: 'Indirectly' keyword to complement 'Directly In', allowing explicit transitivity of containment, see theĀ manual
  • FEATURE: The hero is now a container by default
  • FEATURE: The hero may inherit from any subclass of actor
  • FEATURE: Actor scripts are now aborted if an error, such as an extraction failure, occurs
  • FEATURE: Debugger shows symbolic name of events when tracing
  • FEATURE: WinAlan now generates the output file in the correct directory if a source file is dropped on the WinAlan icon
  • BUGFIX: Locating something inside itself hanged the interpreter, now generates controlled Application Error
  • BUGFIX: For Each loops with In-filters did not take transitivity into account, might now detect more errors
  • BUGFIX: Initial locations in containers did not consider the Taking <class> of the container
  • BUGFIX: Debugger section trace crashed on verb bodies in locations

What They Say

"[the game] does not represent the real capabilities of the Alan Language but does demonstrate Alan's amazing ability to allow someone who has never done an iota of computer programming of any kind to produce SOMETHING within a few weeks!"

Eric Mayer (on his game HeBGB Horrors)