4 inform \- compiler of interactive fiction for Z-machine and Glulx VMs
8 [\fICOMMANDS\fR]...\ [\fIFILE1\fR] [\fIFILE2\fR]
12 is a programming language and design system for interactive fiction
13 originally created in 1993 by Graham Nelson. Inform can generate
14 programs designed for the Z-Machine or Glulx virtual machines.
19 translates FILE1 into a source file name (see below) for its
20 input. FILE2 is usually omitted: if so, the output filename is made
21 from FILE1 by cutting out the name part and translating that (see
22 below). If FILE2 is given, however, the output filename is set to just
23 FILE2 (not altered in any way).
25 Filenames given in the game source (with commands like Include "name"
26 and Link "name") are also translated by
27 .B RULES OF TRANSLATION
30 .SH USING THE INFORM6 LANGUAGE
31 This manpage just documents the invocation of the
33 compiler and library. "The Inform Designer's Manual" and "The Inform
34 Beginner's Guide may be found at
35 .B http://inform-fiction.org/manual/
36 and in hardcopy from Amazon.
41 Trace assembly-language (without hex dumps; see -t).
45 More concise error messages.
49 Contract double spaces after full stops in text.
53 Contract double spaces after exlamation and question marks, too.
57 Economy mode (slower): make use of declared abbreviations.
61 Frequencies mode: show how useful abbreviations are.
65 Traces calls to functions (except in the library).
69 Traces calls to all functions.
73 Print options information.
77 Ignore default switches set within the file.
81 List objects as constructed.
85 Output Infix debugging information to "gameinfo.dbg" (and switch -D on).
89 List every statement run through Inform.
93 Say how much memory has been allocated.
97 Print numbers of properties, attributes, and actions.
101 Print offset addresses.
105 Give percentage breakdown of story file.
109 Keep quiet about obsolete usages.
113 Record all the text to "gametext.txt".
121 Trace assembly-language (with full hex dumps; see -a).
125 Work out most useful abbreviations (very very slowly).
129 Compile to version-3 ("Standard") story file.
133 Compile to version-4 ("Plus") story file.
137 Compile to version-5 ("Advanced") story file (DEFAULT).
141 Compile to version-6 ("Graphical") story file.
145 Compile to version-7 (expanded "Advanced") story file.
149 Compile to version-8 (expanded "Advanced") story file.
153 Disable warning messages.
157 Print # for every 100 lines compiled.
161 Trace linking system.
165 Print memory map of the Z-machine.
171 Use big memory model (for large V6/V7 files).
175 Text character set is plain ASCII only.
179 Text character set is UTF-8.
183 Text character set is ISO 8859-n (n = 1 to 9) (1 to 4, Latin 1 to
184 Latin4; , 5, Cyrillic; 6, Arabic; 7, Greek; 8, Hebrew; 9, Latin5.
189 Insert "Constant DEBUG;" automatically.
193 Archimedes-style error messages (current setting).
197 Microsoft-style error messages.
201 Macintosh MPW-style error messages.
205 Use temporary files to reduce memory consumption.
209 Compile a Glulx game file.
213 Use Huffman encoding to compress Glulx strings.
217 Compile as a Module for future linking (deprecated).
221 Compile strict error-checking at run-time (on by default)
225 Insert "Constant USE_MODULES;" automatically (deprecated).
229 Header extension table is at least n words (n = 3 to 99)
233 Compile with INFIX debugging facilities present
236 .SH RULES OF TRANSLATION
238 translates plain filenames (such as "xyzzy") into full pathnames (such
239 as "adventure/games/xyzzy") according to the following rules.
243 If the name contains a '/' character (so it's already a pathname), it
246 [Exception: when the name is given in an Include command using the >
247 form (such as Include ">prologue"), the ">" is replaced by the path of
248 the file doing the inclusion and a suitable file extension is added.]
250 Filenames must never contain double-quotation marks ". To use filenames
251 which contain spaces, write them in double-quotes: for instance,
253 "inform +code_path="Jigsaw Final Version" jigsaw"
257 The file is looked for at a particular "path" (the filename of a
258 directory), depending on what kind of file it is.
260 File type Name Usual setting
262 Source code (in) source_path (unset)
264 Include file (in) include_path /usr/share/inform/include
266 Story file (out) code_path (unset)
268 Temp file (out) temporary_path /tmp/
270 ICM command file (in) icl_path (unset)
272 Module (in & out) module_path (unset)
274 If the path is unset, then the current working directory is used (so the
275 filename doesn't change): if, for instance, include_path is set to
276 "backup/oldlib" then when "parser" is included it is looked for at
277 "backup/oldlib/parser".
279 The paths can be set or unset on the Inform command line by, eg,
280 "inform +code_path=finished jigsaw" or
282 "inform +include_path= balances" (which unsets include_path).
284 The four input path variables can be set to lists of alternative
285 paths separated by ',' characters: these alternatives are always tried
286 in the order they are specified in, that is, left to right through the
287 text in the path variable.
289 (Modules are written to the first alternative in the module_path
290 list; it is an error to give alternatives at all for purely output
295 The following file extensions are added:
301 Story files: .z3, .z4, .z5 (default),
303 .z6, .z7, z8, .ulx (Glulx)
305 Temporary files: .tmp
309 except that any extension you give (on the command line or in a filename
310 used in a program) will override these. If you give the null extension
311 "." then Inform uses no file extension at all (removing the ".").
313 Names of four individual files can also be set using the same + command
314 notation (though they aren't really pathnames). These are:
316 transcript_name (text written by -r switch)
318 debugging_name (data written by -k switch)
320 language_name (library file defining natural language of game)
322 charset_map (file for character set mapping)
329 Set a particular path. These include the following:
349 is not capable of creating story files conforming to versions 1 or 2 of
352 The Inform Library (currently 6/12) is incompatible with versions of the
353 Z-Machine lower than version 5.
355 Modules cannot be used with Glulx and are deprecated for Z-machine.
360 was originally created by Graham Nelson.
362 Documentation: Graham Nelson and Gareth Rees.
364 Demo games: Graham Nelson and Roger Firth.
366 Tutorial material: Gareth Rees, David Cornelson, and Ethan Dicks.
368 Manpage: David Griffith.