Glulxe: the Glulx VM interpreter
Version 0.4.4

    Designed by Andrew Plotkin <erkyrath@eblong.com>
    http://eblong.com/zarf/glulx/index.html

* Compiling

Since this is a Glk program, it must be built with a Glk library. See
the Glk home page at

http://eblong.com/zarf/glk/index.html

The Unix Makefile that comes with this package is designed to link any
of the Unix libraries (XGlk, GlkTerm, and CheapGlk.) You'll have to
go into the Makefile and set three variables to find the library. There
are instructions at the top of the Makefile. Then just type

    make glulxe

That should suffice. When the program is built, type

    ./glulxe filename.ulx

where "filename.ulx" is a Glulx game file to execute.

To build this program on a Macintosh, you'll need the MacGlk library.
See the instructions that come with that. It's fairly straightforward;
compile the library, the source code, and the "macstart.c" file.

Ditto for Windows, using "winstart.c".

* Version

0.4.4:
    Added profiling code, which is turned off by default. To compile it 
    in, define VM_PROFILING in Makefile or in glulxe.h.
    Added function-accleration feature.
    Fixed bug where @random 0 was returning only positive numbers.

0.4.3:
    Verify the presence of Unicode calls in the Glk library at runtime.
    (Thanks Simon Baldwin.)
    Added a compile-time option to check for invalid memory accesses.
    (This is slower, but safer. Define VERIFY_MEMORY_ACCESS in Makefile
    or in glulxe.h. Thanks Evin Robertson.)
    Fixed a memory leak of undo states. (Thanks Matthew Wightman.)
    Fixed a linked-list handling error for Glk unicode arrays. (Thanks
    David Kinder.)

0.4.2:
    Fixed a bug that preventing compiling with old (pre-Unicode) Glk
    libraries.

0.4.1:
    Added array copy and heap allocation functionality. (Glulx spec 
    3.1.0.)

0.4.0:
    Added Unicode functionality. (Glulx spec 3.0.0.)

0.3.5:
    Fixed El-Stupido bug in the modulo opcode.

0.3.4:
    Finally supports string arguments to Glk calls.

0.3.3:
    Added setiosys, getiosys opcodes.
    Fixed bug in binarysearch.

0.3.2:
    Added search, jumpabs, callf, and gestalt opcodes.

0.3.1:
    Startup code now handles Blorb files correctly.

0.3.0:
    Added support for compressed strings.

0.2.2:
    Another pre-release version.

0.2.0:
    A pre-release version.

* Permissions

The source code in this package is copyright 1999 by Andrew Plotkin. You
may copy and distribute it freely, by any means and under any conditions,
as long as the code and documentation is not changed. You may also
incorporate this code into your own program and distribute that, or modify
this code and use and distribute the modified version, as long as you retain
a notice in your program or documentation which mentions my name and the
URL shown above.

