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 language 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 ARRAY s 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 RECORD s, ARRAY s, SET s, 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.

  • many Logitech libraries have been implemented and can be accessed via: -flibs=m2log,m2pim,m2iso.

  • 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=m2iso,m2pim switch).

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