Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

System module

The symbols of the system module $ion are available everywhere within an Ion document, with the version of that module being determined by the spec-version of each segment. The specific system symbols are largely uninteresting to users; while the binary encoding heavily leverages the system symbol table, the text encoding that users typically interact with does not.

Relation to local symbol and macro tables

The $ion module is equivalent to the Ion 1.0 system symbol table. Its symbols are identical, and it contains no macros. In Ion 1.0, the system symbol table is always the first import of the local symbol table.

Ion 1.1 has slightly different semantics, but the result is the same. The $ion module is always the first module in the sequence of encoding modules, so the $ion module symbols always occupying the first 9 symbol IDs.

The $ion module

This is the same as the Ion 1.0 system symbol table. This binding is always available in an Ion 1.1 stream at the head of the encoding modules.

IDHexText
00x00<reserved>
10x01$ion
20x02$ion_1_0
30x03$ion_symbol_table
40x04name
50x05version
60x06imports
70x07symbols
80x08max_id
90x09$ion_shared_symbol_table