The GNU Modula-2 front end to GCC

Section and subsections

Alphabetically sorted list of contents
Accessing GNU Modula-2 Built-ins
Assignment compatibility
Base libraries
Building GNU Modula-2 from source
Building GNU Modula-2 grafted on the gcc-11 branch
Building a shared library
Caveat
Community
Compiler options
Contributing to GNU Modula-2
Creating a deb package for GNU Modula-2
Data type alignment
Documentation
Elementary data types
Example compile and link
Exception implementation
Expression compatibility
FAQ
Function, constants, types, ebnf indices.
GNU Modula-2 Features
GNU Modula-2 language extensions
GNU Modula-2 related environment variables
GNU Modula-2 supported dialects
How to detect runtime problems at compile time
How to get source code using git
How to obtain Debian packages
How to produce a Python module
How to produce swig interface files
ISO specific standard procedures and functions
Indices
Integer division, remainder and modulus
Interface to assembly language
Interfacing GNU Modula-2 to C
Licence of GNU Modula-2
Limitations
Limitations of automatic generated of Swig files
M2 ISO Libraries
News
Objectives
Optional procedure parameter
Other languages for GCC
PIM and Logitech 3.0 Compatible
PIM coroutine support
Packing data types
Papers and talks
Parameter compatibility
Permanently accessible base procedures.
Regression tests for gm2 in the repository
Release map
Section and subsections
Standard procedures and functions common to PIM and ISO
Stress testing GM2
The ISO system module
The PIM system module
Type compatibility
Unbounded by reference
What is GNU Modula-2
Why do you need to specify @code{--enable-languages=c,c++,gm2}?
Why not copy the C++ exception handing code into the Modula-2 runtime thus saving the necessity to build the C++ compiler?
Why use GNU Modula-2
Why use the C++ exception mechanism in GCC, rather than a bespoke Modula-2 mechanism?
gm2-libs-coroutines/Debug
gm2-libs-coroutines/Executive
gm2-libs-coroutines/KeyBoardLEDs
gm2-libs-coroutines/SYSTEM
gm2-libs-coroutines/TimerHandler
gm2-libs-iso/COROUTINES
gm2-libs-iso/ChanConsts
gm2-libs-iso/CharClass
gm2-libs-iso/ClientSocket
gm2-libs-iso/ComplexMath
gm2-libs-iso/ConvStringLong
gm2-libs-iso/ConvStringReal
gm2-libs-iso/ConvTypes
gm2-libs-iso/EXCEPTIONS
gm2-libs-iso/ErrnoCategory
gm2-libs-iso/GeneralUserExceptions
gm2-libs-iso/IOChan
gm2-libs-iso/IOConsts
gm2-libs-iso/IOLink
gm2-libs-iso/IOResult
gm2-libs-iso/LongComplexMath
gm2-libs-iso/LongConv
gm2-libs-iso/LongIO
gm2-libs-iso/LongMath
gm2-libs-iso/LongStr
gm2-libs-iso/LongWholeIO
gm2-libs-iso/LowLong
gm2-libs-iso/LowReal
gm2-libs-iso/LowShort
gm2-libs-iso/M2EXCEPTION
gm2-libs-iso/M2RTS
gm2-libs-iso/MemStream
gm2-libs-iso/Preemptive
gm2-libs-iso/Processes
gm2-libs-iso/ProgramArgs
gm2-libs-iso/RTco
gm2-libs-iso/RTdata
gm2-libs-iso/RTentity
gm2-libs-iso/RTfio
gm2-libs-iso/RTgen
gm2-libs-iso/RTgenif
gm2-libs-iso/RTio
gm2-libs-iso/RandomNumber
gm2-libs-iso/RawIO
gm2-libs-iso/RealConv
gm2-libs-iso/RealIO
gm2-libs-iso/RealMath
gm2-libs-iso/RealStr
gm2-libs-iso/RndFile
gm2-libs-iso/SIOResult
gm2-libs-iso/SLongIO
gm2-libs-iso/SLongWholeIO
gm2-libs-iso/SRawIO
gm2-libs-iso/SRealIO
gm2-libs-iso/SShortIO
gm2-libs-iso/SShortWholeIO
gm2-libs-iso/STextIO
gm2-libs-iso/SWholeIO
gm2-libs-iso/SYSTEM
gm2-libs-iso/Semaphores
gm2-libs-iso/SeqFile
gm2-libs-iso/ServerSocket
gm2-libs-iso/ShortComplexMath
gm2-libs-iso/ShortIO
gm2-libs-iso/ShortWholeIO
gm2-libs-iso/SimpleCipher
gm2-libs-iso/StdChans
gm2-libs-iso/Storage
gm2-libs-iso/StreamFile
gm2-libs-iso/StringChan
gm2-libs-iso/Strings
gm2-libs-iso/SysClock
gm2-libs-iso/TERMINATION
gm2-libs-iso/TermFile
gm2-libs-iso/TextIO
gm2-libs-iso/WholeConv
gm2-libs-iso/WholeIO
gm2-libs-iso/WholeStr
gm2-libs-iso/wrapsock
gm2-libs-iso/wraptime
gm2-libs-pim/BitBlockOps
gm2-libs-pim/BitByteOps
gm2-libs-pim/BitWordOps
gm2-libs-pim/BlockOps
gm2-libs-pim/Break
gm2-libs-pim/CardinalIO
gm2-libs-pim/Conversions
gm2-libs-pim/DebugPMD
gm2-libs-pim/DebugTrace
gm2-libs-pim/Delay
gm2-libs-pim/Display
gm2-libs-pim/ErrorCode
gm2-libs-pim/FileSystem
gm2-libs-pim/FloatingUtilities
gm2-libs-pim/InOut
gm2-libs-pim/Keyboard
gm2-libs-pim/LongIO
gm2-libs-pim/NumberConversion
gm2-libs-pim/Random
gm2-libs-pim/RealConversions
gm2-libs-pim/RealInOut
gm2-libs-pim/Strings
gm2-libs-pim/Termbase
gm2-libs-pim/Terminal
gm2-libs-pim/TimeDate
gm2-libs/ASCII
gm2-libs/Args
gm2-libs/Assertion
gm2-libs/Break
gm2-libs/Builtins
gm2-libs/COROUTINES
gm2-libs/CmdArgs
gm2-libs/Debug
gm2-libs/DynamicStrings
gm2-libs/Environment
gm2-libs/FIO
gm2-libs/FormatStrings
gm2-libs/FpuIO
gm2-libs/GetOpt
gm2-libs/IO
gm2-libs/Indexing
gm2-libs/LMathLib0
gm2-libs/LegacyReal
gm2-libs/M2EXCEPTION
gm2-libs/M2RTS
gm2-libs/MathLib0
gm2-libs/MemUtils
gm2-libs/NumberIO
gm2-libs/OptLib
gm2-libs/PushBackInput
gm2-libs/RTExceptions
gm2-libs/RTint
gm2-libs/SArgs
gm2-libs/SCmdArgs
gm2-libs/SEnvironment
gm2-libs/SFIO
gm2-libs/SMathLib0
gm2-libs/SYSTEM
gm2-libs/Scan
gm2-libs/Selective
gm2-libs/StdIO
gm2-libs/Storage
gm2-libs/StrCase
gm2-libs/StrIO
gm2-libs/StrLib
gm2-libs/StringConvert
gm2-libs/SysExceptions
gm2-libs/SysStorage
gm2-libs/TimeString
gm2-libs/UnixArgs
gm2-libs/cbuiltin
gm2-libs/cxxabi
gm2-libs/dtoa
gm2-libs/errno
gm2-libs/gdbif
gm2-libs/getopt
gm2-libs/ldtoa
gm2-libs/libc
gm2-libs/libm
gm2-libs/sckt
gm2-libs/termios
gm2-libs/wrapc