INFORM(1)
π INFORM(1) π
okay bestie, sit DOWN, we're talking about inform β that's the Inform v6.36 interactive fiction story file compiler, the whole entire queen of the page. she compiles Inform interactive fiction story files into Z-machine or Glulx bytecode. no cap.
β¨ NAME β¨
inform β compile Inform interactive fiction story files to Z-machine or Glulx bytecode π¦
πΈ SYNOPSIS πΈ
inform [options...] infile [outfile]
π DESCRIPTION π
so like, inform takes an Inform version 6 story file (usually it's got the .inf extension, that's her little signature) and compiles it into Z-machine or Glulx bytecode, which you can then run in a whole bunch of Z-machine or Glulx emulators. iconic behaviour honestly.
if you don't hand her an output filename on the command line, she'll just make one up from the input filename. she's resourceful like that πββοΈ
you can control how inform operates with three flavours of magic:
- switches β one or two-character expressions, and they start with a dash (
-) - path modifiers β these start with a plus sign (
+) - memory strategy modifiers β these start with a dollar sign (
$)
π SWITCHES π
okay this is the long list, hydrate first, we're going through all of them fr fr.
-aβ trace assembly-language (no hex dumps though; that's-t's job)-cβ more concise error messages-dβ contract double spaces after full stops in text-d2β contract double spaces after exclamation 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--help,-h,-h1,-h2β print usage information-iβ ignore default switches set within the file-jβ list objects as constructed-kβ output Infix debugging information to"gameinfo.dbg"(and switch-Don)-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)-vnβ compile to a specific Z-code version; the default is5. Available versions are:3β version-3 ("Standard") story file4β version-4 ("Plus") story file5β version-5 ("Advanced") story file6β version-6 (graphical) story file8β 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 version-6/version-7 files)-Cnβ select text character set (defaults to1):0β plain ASCII only1β ISO 8859-1 (Latin1)2β ISO 8859-2 (Latin2)3β ISO 8859-3 (Latin3)4β ISO 8859-4 (Latin4)5β ISO 8859-5 (Cyrillic)6β ISO 8859-6 (Arabic)7β ISO 8859-7 (Greek)8β ISO 8859-8 (Hebrew)9β ISO 8859-9 (Latin5)uβ Unicode (UTF-8)
-Dβ insert"Constant DEBUG;"automatically-Enβ select error message style (default is Archimedes):0β Archimedes-style error messages1β Microsoft-style error messages2β 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-Sβ compile strict error-checking at run-time (on by default)-Uβ insert"Constant USE_MODULES;"automatically-Vβ display version and exit-Wnβ header extension table is at leastnwords (n=3to99)-Xβ compile with INFIX debugging facilities present
π¦ PATH MODIFIERS π¦
--path PATH=dirβ changePATHto this directory--addpath PATH=dirβ add this directory to thePATH
π§ PATH MODIFIERS (old style) π§
the vintage ones, we love a throwback π
+dirβ setInclude_Pathto this directory++dirβ add this directory toInclude_Path+PATH=dirβ changePATHto this directory++PATH=dirβ add this directory to thePATH
β MEMORY SETTINGS β
--listβ List current memory allocation settings.--helpopt SETTINGβ explain briefly whatSETTINGis for--opt SETTING=numberβ changeSETTINGto given number--define SYMBOL=numberβ defineSYMBOLas a constant in this story--config filename.iclβ read in a list of commands (in the format above) from this setup file. See INFORM COMMAND LANGUAGE below
π MEMORY STRATEGY MODIFIERS (old style) π
bestie, heads up: you might have to quote these parameters so your shell doesn't go and expand them behind your back. don't let the shell do you like that π
$listβ list current memory allocation settings$?SETTINGβ explain memory settingSETTING(see$listfor available parameters)$SETTING=numberβ manually setSETTINGto given number$#SYMBOL=numberβ defineSYMBOLas a constant in the story(filename.icl)β read in a list of commands (in the format above) from this setup file. See INFORM COMMAND LANGUAGE below
π«Ά INFORM COMMAND LANGUAGE π«Ά
so the Switches directive β you know, the one that let certain compiler switches get set from inside the source file instead of on the compiler command line β has been superseded by a way more powerful mechanism. RIP to her, she was doing her best.
the special comment characters "!%", sitting right there on the very first line or lines of the source file, let you specify Inform Command Language (ICL) commands to control the compilation. like so:
!% -E1G ! Glulx, 'Microsoft' errors
!% -~S ! disable Strict mode
!% +include_path=./test,./,../lib/contrib ! look in 'test' library
!% $MAX_STATIC_MEMORY=20000
Constant STORY "RUINS";
...
ICL is described in Section 39 of the Inform Designer's Manual. the short version: each line specifies a single command, starting with - to define one or more switches, + to define a path variable, or $ to define a memory setting. Comments are introduced by $. and the ICL command compile is not permitted at the head of a source file. nope. not happening. π
π CAVEATS π
informis not capable of creating story files conforming to versions 1 or 2 of the Z-Machine. she simply will not, bestie.- Modules cannot be used with Glulx and are deprecated for Z-Machine.
π DOCUMENTATION π
the canonical documentation for Inform6 is the Inform Designer's Manual. you can browse this work at http://inform-fiction.org/manual/html/contents.html download it from http://inform-fiction.org/manual/DM4.pdf and purchase it in hardcopy at http://amazon.com/
another noteworthy and somewhat more up-to-date resource is the Inform Beginner's Guide. you can download that work at http://inform-fiction.org/manual/download_ibg.html
π₯ SEE ALSO π₯
zcode-interpreter(6) and the manuals and language reference which can be found online at http://inform-fiction.org/manual/ and http://inform-fiction.org/inform6.html.
πΈ AUTHOR πΈ
the various iterations of the Inform language were created by Graham Nelson in 1993. the way that man invented a whole genre's toolchain... main character energy fr.
this manpage was written by Jan Nordholz <hesso@pool.math.tu-berlin.de> for the Debian Project and altered by David Griffith <dave@661.org>.
π DISTRIBUTION π
the compiler and standard library for Inform6 are licensed under
- The traditional Inform license as described by the DM4, or
- The Artistic License 2.0 .
here's the relevant bit from the Inform Designer's Manual, 4th edition:
Copyright on Inform, the program and its source code, its example games and documentation (including this book) is retained by Graham Nelson, who asserts the moral right to be identified as the author under the Copyrights, Designs and Patents Act 1988. Having said this, I am happy for it to be freely distributed to anybody who wants a copy, provided that: (a) distributed copies are not substantially different from those archived by the author, (b) this and other copyright messages are always retained in full, and (c) no profit is involved. (Exceptions to these rules must be negotiated directly with the author.) However, a story file produced with the Inform compiler (and libraries) then belongs to its author, and may be sold for profit if desired, provided that its game banner contains the information that it was compiled by Inform, and the Inform version number.
The Artistic License 2.0 can be found at https://opensource.org/licenses/Artistic-2.0 and the file ARTISTIC in the Inform6 distribution archive.
okay that's the whole thing, you ate that reading session bestie π this page is from Inform v6.36, dated 2022-02-19, and it's the INFORM(1) page β go forth and compile something iconic, periodt. β¨ππ¦
π¦ where this page comes from
- debian bookworm: inform6-compiler 6.41-1 Β· Artistic-2.0
- debian trixie: inform6-compiler 6.42-1 Β· Artistic-2.0
- ubuntu jammy: inform6-compiler 6.36-1 Β· Artistic-2.0
- ubuntu noble: inform6-compiler 6.41-1 Β· Artistic-2.0
- ubuntu questing: inform6-compiler 6.42-1
- ubuntu resolute: inform6-compiler 6.42-1build1 Β· Artistic-2.0
- ubuntu stonking: inform6-compiler 6.42-1build1 Β· Artistic-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms