Entries from May 2010 ↓

May development update

Work continues on the new build. The current state of affairs is as follows:

  • Testing of the new compiler features turned up a number of bugs; we’re partway through resolving these, but some remain. We expect this will take about a fortnight, but no promises.
  • A week or so of work went into heavily revising the phrasebook and manual. This was a project we hadn’t anticipated doing for the current build, but we decided that it was too valuable to put off longer. The phrasebook tab of the index is reformatted and categorized to be easier to read; every phrase listed links directly to a place in the manual; and the manual description of phrases has been tightened up, so that each new piece of syntax is specially highlighted where it’s introduced, and there is more complete and systematic explanation of syntax behavior. This process also identified a few phrases that were not properly introduced in the manual at all.
  • In the process of going over the phrasebook, we identified a number of phrases that seemed inelegant or that were very rarely used. Since we’re already making many changes to the Standard Rules in this build, this seemed a good time to address some of the syntax issues as well, including things such as the anomalous presence of an “award … points” phrase when there’s no need for a special phrase to change the score, which is a standard variable; the fact that “change … to …” and “now … is …” have mostly-but-not-completely-overlapping functionality (the solution being to withdraw “change”, since “now” is more broadly capable); inconsistency in the phrases used to manipulate and blank out portions of tables; and a host of smaller and less notable things.
  • On the other hand, these are sweeping changes, and we don’t want to endanger existing projects by removing too much existing syntax without warning. As a compromise position, we’ve created a category of “deprecated” phrases and text substitutions, marked out in the manual to show that they will probably be withdrawn in a future release. Authors can set a use option to find any deprecated material in their existing source text, but otherwise it will compile as usual.
  • As they’ve proven a consistent threat to performance, especially in the increasingly-important realm of browser-based interpreters, procedural rules are also being considered for removal. We have therefore deprecated those phrases intended to be used only within procedural rules. This is intended as a test to see whether we can optimize by simply removing them from the system, or whether they provide functionality that needs to be compensated for in some way.
  • The newly-deprecated material was written out of the Standard Rules, examples, and bundled extensions.
  • A handful of small changes from the previous consultation document were added despite not being in the last change log: specifically, we have added a couple more text variations allowing authors to mark text as first-time-only, or to cycle through text in order the first time but then pick randomly among the options.
  • All the material from all previous consultation documents, and all suggestions received since the last document, have been added to a database in preparation to launch a new suggestions forum with the new build; the suggestions forum has been tested by some volunteers; and new comments/responses provided for a number of those suggestions.
  • Work is underway on creating a bug tracker to display the status of bug reports on the Inform 7 site. We do not know for certain whether this will be ready in time for the build, or whether it will follow the new release a bit later.
  • In response to some old requests, we have created a few more simulationist extensions to be released at the same time as the new build (though not bundled in). The largest of these is an extension for handling measurable, mixable liquids, and the code to tie that in optionally with the sinks-and-taps part of the Modern Conveniences extension.

ZMPP now with Glulx

Wei-ju Wu announces his progress on a browser-based interpreter for Glulx, which includes the ability to display images:

I spent the majority of April’s evenings to implement the Glulx/Glk
part of ZMPP’s second revision and just wanted to share the current
progress, as I reached an important milestone – running “Alabaster”:


I hope it works for you and you find it useful or amusing in one way
or another :-)

It was running for me when testing on:
- Mac Safari
- Linux Firefox (Ubuntu Lucid Lynx, OpenJDK/IcedTea), Windows Firefox
- Windows IE (with Sun/Oracle Java Plugin)

Yes, it’s again a Java applet based interpreter. ZMPP is not
necessarily specialized on Applet/Desktop, but it’s the quickest for
me to implement.

Some points that you might find interesting:
- It is now completely written in Scala
- I only ran “Risorgimento Represso” and “Alabaster” so far
- Since “Alabaster” is such an extreme case in terms of the sheer
amount of instructions that gets thrown at the interpreter (especially
when accelfuncs are not supported), it was the perfect game to test
with. Besides, it was fun, playing and reading through it.

I apologize for the quirks that might and will arise (like positioning
the mouse pointer inside the input window) – I decided against
extensive polishing and instead sticking to my timeline.