Update Glulxe to 0.4.7
[projects/chimara/chimara.git] / interpreters / glulxe / README
1 Glulxe: the Glulx VM interpreter
2 Version 0.4.7
3
4     Designed by Andrew Plotkin <erkyrath@eblong.com>
5     http://eblong.com/zarf/glulx/index.html
6
7 * Compiling
8
9 Since this is a Glk program, it must be built with a Glk library. See
10 the Glk home page at
11
12 http://eblong.com/zarf/glk/index.html
13
14 The Unix Makefile that comes with this package is designed to link any
15 of the Unix libraries (GlkTerm and CheapGlk.) You'll have to go into
16 the Makefile and set three variables to find the library. There are
17 instructions at the top of the Makefile. Then just type
18
19     make glulxe
20
21 That should suffice. When the program is built, type
22
23     ./glulxe filename.ulx
24
25 where "filename.ulx" is a Glulx game file to execute.
26
27 To build this program with a Mac or Window interface, you'll need the
28 appropriate Glk library.
29
30 This program supports floating-point operations, which are implemented
31 using the standard C99 math functions. The Makefile uses "-lm" to link
32 these in. If your platform does not support these functions, you can
33 comment out the "#define FLOAT_SUPPORT" line in glulxe.h.
34
35 * Version
36
37 0.4.7:
38     Abstracted powf() to an osdepend wrapper. (Needed for Windows.)
39     Fixed a @ceil bug, for some C math libraries.
40     Improved the profiling system in several ways.
41     Fixed a bug in glkop.c dispatching, to do with optional array
42     arguments.
43
44 0.4.6:
45     Added floating-point math feature.
46     Updated winstart.c. (Thanks David Kinder.)
47     Fixed @random even more, on Windows.
48     @verify works right on game files with extended memory.
49     @getiosys works right when the two store operands are different
50     variable types. (E.g., one local and one global.)
51
52 0.4.5:
53     VERIFY_MEMORY_ACCESS now detects writes to the ROM section of memory.
54     Fixed off-by-eight bug in @astorebit and @aloadbit with negative bit
55     numbers.
56     Fixed an obscure bug with division and modulo of $80000000. (Thanks 
57     Evin Robertson.)
58     Fixed an extremely obscure problem with changing I/O mode in the middle
59     of printing a number.
60     Glk array/string operations are now checked for memory overflows
61     (though not for ROM writing). This generates a warning at present;
62     in the future, it will be a fatal error.
63     Better fix for the @random bug.
64
65 0.4.4:
66     Added profiling code, which is turned off by default. To compile it 
67     in, define VM_PROFILING in Makefile or in glulxe.h.
68     Added function-accleration feature.
69     Fixed bug where @random 0 was returning only positive numbers.
70
71 0.4.3:
72     Verify the presence of Unicode calls in the Glk library at runtime.
73     (Thanks Simon Baldwin.)
74     Added a compile-time option to check for invalid memory accesses.
75     (This is slower, but safer. Define VERIFY_MEMORY_ACCESS in Makefile
76     or in glulxe.h. Thanks Evin Robertson.)
77     Fixed a memory leak of undo states. (Thanks Matthew Wightman.)
78     Fixed a linked-list handling error for Glk unicode arrays. (Thanks
79     David Kinder.)
80
81 0.4.2:
82     Fixed a bug that preventing compiling with old (pre-Unicode) Glk
83     libraries.
84
85 0.4.1:
86     Added array copy and heap allocation functionality. (Glulx spec 
87     3.1.0.)
88
89 0.4.0:
90     Added Unicode functionality. (Glulx spec 3.0.0.)
91
92 0.3.5:
93     Fixed El-Stupido bug in the modulo opcode.
94
95 0.3.4:
96     Finally supports string arguments to Glk calls.
97
98 0.3.3:
99     Added setiosys, getiosys opcodes.
100     Fixed bug in binarysearch.
101
102 0.3.2:
103     Added search, jumpabs, callf, and gestalt opcodes.
104
105 0.3.1:
106     Startup code now handles Blorb files correctly.
107
108 0.3.0:
109     Added support for compressed strings.
110
111 0.2.2:
112     Another pre-release version.
113
114 0.2.0:
115     A pre-release version.
116
117 * Permissions
118
119 The source code in this package is copyright 1999-2010 by Andrew Plotkin.
120 You may copy and distribute it freely, by any means and under any conditions,
121 as long as the code and documentation is not changed. You may also
122 incorporate this code into your own program and distribute that, or modify
123 this code and use and distribute the modified version, as long as you retain
124 a notice in your program or documentation which mentions my name and the
125 URL shown above.
126