• 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

"If I was to write a new text adventure I wouldn't bother with any other authoring system. Alan is just that much easier."

Felix Pleșoianu