Image gm2-1.png

Successful 0.51 builds
Older builds
Building GNU Modula-2
GM2 development download via CVS
GNU Modula-2 binaries
GM2 and GCC tarball download
Contributing code
Mailing list
Other languages for GCC

The home of the GNU Modula-2 compiler. This compiler is still in development.

The compiler has undergone quite a number of changes recently and the current release is gm2-0.51. It can build all of the University of Ulm libraries. It has the following characteristics:

  • gm2-harness 0.96 has been released which will download, patch and build gcc, gdb, gm2 with the SET and TYPE enhancements below. It also honours the --prefix=, --with-cvs, --with-gdb and --with-gcc= options. See the gm2-harness-0.96/README for details.
  • variables can now be declared at addresses.
  • much better dwarf-2 debugging support and when used with gdb-6.5 the programmer can display RECORDs, ARRAYs, SETs, subranges and constant char literals in Modula-2 syntax.
  • it currently complies with Programming in Modula-2 Edition 2, 3 and 4. Users can switch on specific mutually exclusive features by -Wpim or -Wpim2.
  • supports sets of any ordinal size (memory permitting).
  • implements ISO Modula-2 SYSTEM which can be switched on via: -Wiso. Several ISO features are implemented and it is the goal that eventually GNU Modula-2 will be fully ISO complient (see the release map for details in the documentation).
  • 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: -Wlibs=ulm
  • some Logitech libraries have been implemented and can be accessed via: -Wlibs=logitech
  • 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 -Wlibs=pim-coroutines switch).