The GNU Modula-2 front end to GCC

GNU Modula-2 Features

the compiler currently complies with Programming in Modula-2 Edition 2, 3, 4 and ISO Modula-2. Users can switch on specific mutually exclusive features by using: -fpim, -fpim2, -fpim3, -fpim4 or -fiso.

the option -fswig will automatically create a swig interface file which corresponds to the definition module of the file being compiled.

exception handling is compatible with C++ and swig. Modula-2 code can be used with C or C++ code.

Python can call GNU Modula-2 modules via swig.

shared libraries can be built.

fixed sized types are now available from SYSTEM.

support for dynamic ARRAYs has been added into gdb.

variables can be declared at addresses.

much better dwarf-2 debugging support and when used with gdb the programmer can display RECORDs, ARRAYs, SETs, subranges and constant char literals in Modula-2 syntax.

supports sets of any ordinal size (memory permitting).

easy interface to C, and varargs can be passed to C routines.

University of Ulm libraries are installed together with the compiler and can be accessed via: -flibs=ulm,pim.

many Logitech libraries have been implemented and can be accessed via: -flibs=logitech,pim.

coroutines have been implemented in the PIM style and these are accessible from SYSTEM. A number of supporting libraries (executive and file descriptor mapping to interrupt vector libraries are available through the -flibs=pim-coroutines,pim switch).

can be built as a cross compiler (for embedded microprocessors such as the AVR and the ARM).