Menu

ZILF / News: Recent posts

ZILF 0.6 released

ZILF 0.6 is now available on Bitbucket:

https://bitbucket.org/jmcgrew/zilf

Posted by Tara McGrew 2015-07-02

ZILF is leaving SourceForge

This repository is deprecated. Please use the Bitbucket repository instead:

https://bitbucket.org/jmcgrew/zilf

Posted by Tara McGrew 2015-06-15

ZILF 0.5 released

ZILF 0.5 release notes

ZILF

  • Implemented the rest of the V5 opcodes.
  • Improved error handling when opcodes are called with the wrong number of operands.
  • Added -ip command-line option, to set the include path used by INSERT-FILE.
  • Changed object ordering.
  • Changed whitespace removal behavior when strings contain embedded newlines.
  • Changed attribute ordering to ensure flags mentioned in SYNTAXes are nonzero.
  • Allowed BUZZ words to be combined with other parts of speech.
  • Allowed global variables to be referenced indirectly:
    • Using a global variable's name as an expression now produces its index instead of its value.
    • The behavior of SET/SETG when the first argument is a variable reference (.X or ,X) has changed, such that SET and SETG are no longer equivalent. <SETG ,X 123> sets the variable X, whereas <SETG .X 123> sets the variable whose index is in .X. The opposite is true for SET. The behavior of <SET .X ___> and <SETG ,X ___>, where the period and comma are effectively ignored, is hereafter known as "quirks mode".
  • Improved code generation and optimization:
    • When adjacent EQUAL? instructions test the same value, the operands are shifted to earlier instructions.
    • EQUAL? becomes ZERO? when comparing to 0, and ZERO? becomes EQUAL? when it can merge multiple instructions into one.
    • Adjacent identical instructions are merged when the first cannot fall through to the second.
    • Cases where an expression is used as both a value and a condition generate more efficient code, taking advantage of store+branch opcodes when possible.
    • Conditional branches are retargeted when the original target instruction tests the same condition, eliminating or skipping the redundant tests.
  • Fixed bug where interactive mode didn't work.
  • Fixed bug where words with multiple parts of speech had their vocab values stored incorrectly.
  • Fixed stack-clearing code for V6-7.
  • Fixed bugs where TABLE and ITABLE misinterpreted the BYTE flag.
  • Fixed bug where global variables with tables as the default value were treated as constants inside routines.
  • Fixed bug where default property values were ignored.... read more
Posted by Tara McGrew 2014-06-02

SVN repository converted to Mercurial

The source code repository has been converted to Mercurial, and the SVN repository is no longer available.

Posted by Tara McGrew 2013-06-30

ZILF 0.3 released

ZILF is a toolkit for creating interactive fiction using ZIL, the Lisp-like language originally developed by Infocom for the home versions of Zork, targeting the virtual Z-machine. It includes a compiler ("ZILF"), assembler ("ZAPF"), game library, and other utilities.

ZILF 0.3 is the initial open source release. The game library is released under a modified BSD license; the compiler and other tools are released under GPLv3. The major improvements in ZILF 0.3 are in the game library, but there are also some new features and bug fixes in the compiler and assembler (including support for targeting Z-machine version 8). Code for a disassembler and pretty-printer are now included in SVN, although these utilities are not yet ready for prime time.

Posted by Tara McGrew 2010-04-21