\contentsline {chapter}{\numberline {1}Introduction}{1} \contentsline {chapter}{\numberline {2}License}{3} \contentsline {chapter}{\numberline {3}History}{4} \contentsline {paragraph}{Version 2.11}{4} \contentsline {paragraph}{Version 2.10}{4} \contentsline {paragraph}{Version 2.0}{4} \contentsline {paragraph}{Version 1.6}{4} \contentsline {paragraph}{Version 1.5}{4} \contentsline {paragraph}{Version 1.4}{4} \contentsline {paragraph}{Version 1.3}{4} \contentsline {paragraph}{Version 1.2}{5} \contentsline {paragraph}{Version 1.1}{5} \contentsline {paragraph}{Version 1.0}{5} \contentsline {chapter}{\numberline {4}Installation}{6} \contentsline {section}{\numberline {4.1}What is available}{6} \contentsline {section}{\numberline {4.2}Getting {\prm SRC\penalty \@M \ Modula-3}\relax }{8} \contentsline {section}{\numberline {4.3}Installation procedure}{9} \contentsline {section}{\numberline {4.4}Running the tests}{11} \contentsline {chapter}{\numberline {5}How to use the system}{12} \contentsline {section}{\numberline {5.1}Compiling}{12} \contentsline {section}{\numberline {5.2}An example}{12} \contentsline {section}{\numberline {5.3}Makefiles}{13} \contentsline {section}{\numberline {5.4}Language restrictions}{13} \contentsline {section}{\numberline {5.5}Pragmas}{15} \contentsline {section}{\numberline {5.6}Linking}{18} \contentsline {section}{\numberline {5.7}Runtime arguments}{19} \contentsline {section}{\numberline {5.8}Garbage Collection}{19} \contentsline {section}{\numberline {5.9}Debugging}{20} \contentsline {section}{\numberline {5.10}Thread scheduling}{23} \contentsline {section}{\numberline {5.11}Profiling}{24} \contentsline {section}{\numberline {5.12}Pretty printing}{24} \contentsline {section}{\numberline {5.13}Gnuemacs support}{24} \contentsline {subsection}{\numberline {5.13.1}\ptt modula-3-mode}{24} \contentsline {subsection}{\numberline {5.13.2}Tags}{25} \contentsline {section}{\numberline {5.14}Unix signals}{26} \contentsline {section}{\numberline {5.15}Keeping in touch}{26} \contentsline {paragraph}{{\ptt comp.lang.modula3}\relax }{26} \contentsline {paragraph}{Reporting bugs.}{26} \contentsline {chapter}{\numberline {6}The libraries}{27} \contentsline {section}{\numberline {6.1}The m3 library}{27} \contentsline {section}{\numberline {6.2}The data structures library}{33} \contentsline {section}{\numberline {6.3}The X11R4 library}{34} \contentsline {section}{\numberline {6.4}The Trestle library}{35} \contentsline {section}{\numberline {6.5}The vbtkit library}{37} \contentsline {section}{\numberline {6.6}The FormsVBT library}{38} \contentsline {section}{\numberline {6.7}The codeview library}{39} \contentsline {section}{\numberline {6.8}The mg library}{39} \contentsline {section}{\numberline {6.9}The mgkit library}{39} \contentsline {section}{\numberline {6.10}The zeus library}{40} \contentsline {section}{\numberline {6.11}The bicycle library}{40} \contentsline {section}{\numberline {6.12}The dpskit library}{40} \contentsline {section}{\numberline {6.13}The TclTk library}{41} \contentsline {chapter}{\numberline {7}Local Guide}{42} \contentsline {section}{\numberline {7.1}Your Environment}{42} \contentsline {section}{\numberline {7.2}Editing}{43} \contentsline {section}{\numberline {7.3}Compiling}{44} \contentsline {section}{\numberline {7.4}Debugging}{45} \contentsline {section}{\numberline {7.5}Packages}{46} \contentsline {section}{\numberline {7.6}Public Directories}{47} \contentsline {section}{\numberline {7.7}Package Organization}{47} \contentsline {chapter}{\numberline {8}Internals}{48} \contentsline {section}{\numberline {8.1}A tour of the compiler}{48} \contentsline {section}{\numberline {8.2}A tour of the runtime}{49} \contentsline {section}{\numberline {8.3}Porting to another machine}{50} \contentsline {paragraph}{Describing the target machine}{50} \contentsline {paragraph}{Porting the runtime and base libraries}{50} \contentsline {paragraph}{Creating a cross-compiler}{52} \contentsline {paragraph}{Cross-compiling the driver and the compiler}{52}