INFORM(1)

NAME
inform - compiler of interactive fiction for Z-machine and Glulx VMs

SYNOPSIS
inform [COMMANDS]... [FILE1] [FILE2]

DESCRIPTION
Inform is a programming language and design system for interactive fiction originally created in 1993 by Graham Nelson. Inform can generate programs designed for the Z-Machine or Glulx virtual machines.

USAGE
Inform translates FILE1 into a source file name (see below) for its input. FILE2 is usually omitted: if so, the output filename is made from FILE1 by cutting out the name part and translating that (see below). If FILE2 is given, however, the output filename is set to just FILE2 (not altered in any way). Filenames given in the game source (with commands like Include "name" and Link "name") are also translated by RULES OF TRANSLATION below.

SWITCHES

-a  Trace assembly-language (without hex dumps; see -t).

-c  More concise error messages.

-d  Contract double spaces after full stops in text.

-d2 Contract double spaces after exlamation and question marks, too.

-e  Economy mode (slower): make use of declared abbreviations.

-f  Frequencies mode: show how useful abbreviations are.

-g  Traces calls to functions (except in the library).

-g2 Traces calls to all functions.

-h  Print options information.

-i  Ignore default switches set within the file.

-j  List objects as constructed.

-k  Output Infix debugging information to "gameinfo.dbg" (and switch -D on).

-l  List every statement run through Inform.

-m  Say how much memory has been allocated.

-n  Print numbers of properties, attributes, and actions.

-o  Print offset addresses.

-p  Give percentage breakdown of story file.

-q  Keep quiet about obsolete usages.

-r  Record all the text to "gametext.txt".

-s  Give statistics.

-t  Trace assembly-language (with full hex dumps; see -a).

-u  Work out most useful abbreviations (very very slowly).

-v3 Compile to version-3 ("Standard") story file.

-v4 Compile to version-4 ("Plus") story file.

-v5 Compile to version-5 ("Advanced") story file (DEFAULT).

-v6 Compile to version-6 ("Graphical") story file.

-v7 Compile to version-7 (expanded "Advanced") story file.

-v8 Compile to version-8 (expanded "Advanced") story file.

-w  Disable warning messages.

-x  Print # for every 100 lines compiled.

-y  Trace linking system.

-z  Print memory map of the Z-machine. ---

-B  Use big memory model (for large V6/V7 files).

-C0 Text character set is plain ASCII only.

-Cu Text character set is UTF-8.

-Cn Text character set is ISO 8859-n (n = 1 to 9) (1 to 4, Latin 1 to Latin4; , 5, Cyrillic; 6, Arabic; 7, Greek; 8, Hebrew; 9, Latin5. Default is -C1).

-D  Insert "Constant DEBUG;" automatically.

-E0 Archimedes-style error messages (current setting).

-E1 Microsoft-style error messages.

-E2 Macintosh MPW-style error messages.

-F1 Use temporary files to reduce memory consumption.

-G  Compile a Glulx game file.

-H  Use Huffman encoding to compress Glulx strings.

-M  Compile as a Module for future linking (deprecated).

-S  Compile strict error-checking at run-time (on by default)

-U  Insert "Constant USE_MODULES;" automatically (deprecated).

-Wn Header extension table is at least n words (n = 3 to 99)

-X  Compile with INFIX debugging facilities present FIXME Left off here

RULES OF TRANSLATION
Inform translates plain filenames (such as "xyzzy") into full pathnames (such as "adventure/games/xyzzy") according to the following rules.

1   If the name contains a '/' character (so it's already a pathname), it isn't changed. [Exception: when the name is given in an Include command using the > form (such as Include ">prologue"), the ">" is replaced by the path of the file doing the inclusion and a suitable file extension is added.] Filenames must never contain double-quotation marks ". To use filenames which contain spaces, write them in double-quotes: for instance, "inform +code_path="Jigsaw Final Version" jigsaw"

2   The file is looked for at a particular "path" (the filename of a directory), depending on what kind of file it is. PATH STUFF GOES HERE If the path is unset, then the current working directory is used (so the filename doesn't change): if, for instance, include_path is set to "backup/oldlib" then when "parser" is included it is looked for at "backup/oldlib/parser". The paths can be set or unset on the Inform command line by, eg, "inform +code_path=finished jigsaw" or
    "inform +include_path= balances" (which unsets include_path). The four input path variables can be set to lists of alternative paths separated by ',' characters: these alternatives are always tried in the order they are specified in, that is, left to right through the text in the path variable.
    (Modules are written to the first alternative in the module_path list; it is an error to give alternatives at all for purely output paths.)

3   The following file extensions are added:
        Source code:    .inf
        Include files:    .h
        Story files:    .z3, .z4, .z5 (default),
                        .z6, .z7, z8, .ulx (Glulx)
        Temporary files:    .tmp
        Modules:    .m5
    except that any extension you give (on the command line or in a filename used in a program) will override these. If you give the null extension "." then Inform uses no file extension at all (removing the "."). Names of four individual files can also be set using the same + command notation (though they aren't really pathnames). These are:
        transcript_name    (text written by -r switch)
        debugging_name    (data written by -k switch)
        language_name    (library file defining natural language of game)
        charset_map    (file for character set mapping)

PATH SETTING

+PATH=<dir>
    Set a particular path. These include the following:
    source_path
    include_path
    code_path
    temporary_path
    icl_path
    module_path

CAVEATS
Inform is not capable of creating story files conforming to versions 1 or 2 of the Z-Machine.
The Inform Library (currently 6/12) is incompatible with versions of the Z-Machine lower than version 5.

AUTHORS
Inform was originally created by Graham Nelson.
Documentation: Graham Nelson and Gareth Rees.
Demo games: Graham Nelson and Roger Firth.
Tutorial material: Gareth Rees, David Cornelson, and Ethan Dicks.
Manpage: David Griffith.