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-4.1.2 branch
Building GNU Modula-2 grafted on the gcc-4.7 branch
Building GNU Modula-2 under Cygwin
Building GNU Modula-2 under FreeBSD
Building GNU Modula-2 under Mac OSX
Building a shared library
Caveat
Community
Compiler options
Contributing to GNU Modula-2
Creating a deb package for GNU Modula-2
Data type alignment
Debian build on gcc-4.7 branch
Development sources via git
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
Getting GNU Modula-2
How to get a source tarball
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
Moving the installation of GNU Modula-2 to another directory
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
Solaris build on gcc-4.7 branch
Standard procedures and functions common to PIM and ISO
Stress testing GM2
The ISO system module
The PIM system module
Type compatibility
ULM Standard Libraries
ULM System Libraries
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/Processes
gm2-libs-iso/ProgramArgs
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/pth
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/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/PushBackInput
gm2-libs/RTExceptions
gm2-libs/RTint
gm2-libs/SArgs
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/ldtoa
gm2-libs/libc
gm2-libs/libm
gm2-libs/sckt
gm2-libs/termios
gm2-libs/wrapc
ulm-lib-gm2/std/ASCII
ulm-lib-gm2/std/Archive
ulm-lib-gm2/std/Arguments
ulm-lib-gm2/std/Calendar
ulm-lib-gm2/std/CallShell
ulm-lib-gm2/std/Clock
ulm-lib-gm2/std/Conversions
ulm-lib-gm2/std/Directories
ulm-lib-gm2/std/Environment
ulm-lib-gm2/std/EtcGroup
ulm-lib-gm2/std/Files
ulm-lib-gm2/std/FtdIO
ulm-lib-gm2/std/Functions
ulm-lib-gm2/std/GetPass
ulm-lib-gm2/std/InOut
ulm-lib-gm2/std/MathLib
ulm-lib-gm2/std/Passwd
ulm-lib-gm2/std/PipeIO
ulm-lib-gm2/std/Plot
ulm-lib-gm2/std/RTErrors
ulm-lib-gm2/std/RandomGenerator
ulm-lib-gm2/std/ReadIntCard
ulm-lib-gm2/std/RealConv
ulm-lib-gm2/std/RealInOut
ulm-lib-gm2/std/ScanPwfile
ulm-lib-gm2/std/StdFuncs
ulm-lib-gm2/std/StdIO
ulm-lib-gm2/std/Storage
ulm-lib-gm2/std/StrSpec
ulm-lib-gm2/std/StrToNum
ulm-lib-gm2/std/StrToReal
ulm-lib-gm2/std/Strings
ulm-lib-gm2/std/SysConf
ulm-lib-gm2/std/SysPerror
ulm-lib-gm2/std/Terminal
ulm-lib-gm2/std/TimeIO
ulm-lib-gm2/sys/Errno
ulm-lib-gm2/sys/SYSTEM
ulm-lib-gm2/sys/Sys
ulm-lib-gm2/sys/SysAccess
ulm-lib-gm2/sys/SysAlarm
ulm-lib-gm2/sys/SysBreak
ulm-lib-gm2/sys/SysClose
ulm-lib-gm2/sys/SysCreat
ulm-lib-gm2/sys/SysDup
ulm-lib-gm2/sys/SysExec
ulm-lib-gm2/sys/SysExit
ulm-lib-gm2/sys/SysFcntl
ulm-lib-gm2/sys/SysFork
ulm-lib-gm2/sys/SysGetpid
ulm-lib-gm2/sys/SysGetuid
ulm-lib-gm2/sys/SysIoctl
ulm-lib-gm2/sys/SysKill
ulm-lib-gm2/sys/SysLink
ulm-lib-gm2/sys/SysLocations
ulm-lib-gm2/sys/SysLseek
ulm-lib-gm2/sys/SysOpen
ulm-lib-gm2/sys/SysPanic
ulm-lib-gm2/sys/SysPause
ulm-lib-gm2/sys/SysPipe
ulm-lib-gm2/sys/SysRead
ulm-lib-gm2/sys/SysSetuid
ulm-lib-gm2/sys/SysSignal
ulm-lib-gm2/sys/SysStat
ulm-lib-gm2/sys/SysTermIO
ulm-lib-gm2/sys/SysTime
ulm-lib-gm2/sys/SysUnlink
ulm-lib-gm2/sys/SysWait
ulm-lib-gm2/sys/SysWrite
ulm-lib-gm2/sys/SystemTypes
ulm-lib-gm2/sys/UnixString