History

The Modula-3 distribution of Ecole Polytechnique de Montreal is directly based on SRC Modula-3 release 3.6, which appeared in early 1996.

SRC Modula-3

Version 1.0 was the first public release of SRC Modula-3. It contained the compiler, runtime and a few tools. The compiler generated intermediate C code and was only tested on VAX Ultrix 3.1. Subsequent 1.x releases were ported to several platforms and the libraries reorganized.

Version 2.0 implements the twelve language changes proposed after the initial trial period. The compiler and code generator were rearranged and improved. With subsequent 2.x releases, several new platforms were supported and significant new packages appeared (FormsVBT, Zeus...).

Version 3.0 is the first public release of the gcc based native code generator m3cc, Modula-3 aware debugger m3gdb, and smart recompilation system m3build. The standard library was cleaned up after a close review by the interface police. A Windows NT port appeared as well as new significant packages such as Network objects and Obliq. Subsequent 3.x releases brought bug fixes, more platforms supported, speed tuning, and several new packages such as Stable Objects and Anim3D.

PM3

With release 3.6, in early 1996, DEC SRC Modula-3 reached a mature state. Bill Kalsow, responsible for the compiler, left DEC SRC around that time and later joined Critical Mass, a commercial Modula-3 vendor. Since then, a number of advanced Modula-3 projects at DEC SRC continued in areas such as 3D animation, static verification, constraint based geometrical editor, and distributed applications. In many other areas, including the compiler and base libraries, few updates were made at DEC SRC. Moreover, these updates are available separately from the release and must be integrated manually.

At the same time, several contributions appeared from Modula-3 programmers around the world and included several bug fixes, enhancements, and new libraries or tools such as a more platform independent version of Pickle, an integrated code generator for Linux ELF, a simplified single process version of m3build-m3-quake, a port of SRC Modula-3 to NT386 using gnu-win32, and several new packages such as CVSsup, M3COCO, and M3 TXL.

After consultations with several key academic Modula-3 programmers with similar needs, including Peter Klein, Blair McIntyre, and Richard Watts, it was decided to create a new distribution based on SRC Modula-3. The new distribution is under CVS version control and is accessible to remote maintainers.

The first public release of PM3 included SRC release 3.6 with all patches applied, a fast integrated Linux ELF code generator, a simplified m3build-m3-quake with accordingly simplified templates for platform customization, m3cc and m3gdb based on newer versions of gcc and gdb, full platform support for NT386GNU through gnu-win32, a simplified bootstrap and build process, a directory hierarchy to organize the 130+ packages, SGML/HTML based documentation, and an automated release procedure to produce updated sources, bootstraps and binaries every week.

Since April 2002, PM3 is no more maintained and cared for by Michel Dagenais at the Ecole Polytechnique de Montreal, who did a great job of making it an easy-to-use and very complete distribution. The repository has been moved to www.elegosoft.com; Olaf Wagner from elego Software Solutions GmbH, Berlin, Germany now cares for the distribution as time allows. Ultimately, the PM3 distribution will be merged into the CM3 distribution of Modula-3, which is now more actively developed.

CM3

For some years, Critical Mass Inc. developed and sold commercial packages of Modula-3, which were based on the original code from DEC SRC, but included a much improved version of the compiler, an HTML/HTTP-based graphical IDE called Reactor, much better integration for the native win32 platform NT386, several language extensions like implicit exceptions and wide (16bit) character support, and other interesting features.

After Critical Mass went out of the Modula-3 business, the CM3 code was made available as open source again in the spring of 2001, thanks to Farshad Nayeri, the former owner of Critical Mass. Since then Olaf Wagner from elego Software Solutions GmbH, Berlin, cares for CM3 and coordinates the development efforts.

CM3 has seen several releases since then (the current being 5.1.8) and become a useful and stable platform; though it does not yet include every extension made to the PM3 distribution. Its main advantage is that it is based on a much more up-to-date gcc compiler backend (currently gcc 2.95.2, with gcc 3.1 being worked on) so that it will be much easier to port to and install on newer platforms.