Critical Mass Modula-3 (CM3)

Old News


New documentation has been added for m3gdb.


CM3-IDE, formerly known as Reactor (tm), is now available in open source form, too. Have a look at the user guide and compile the sources from cm3/cm3ide.


In the recent week, a new gcc backend has been imported into CM3 with improved support for X64 platforms:

  % cm3cg -version
  Modula-3 backend (GCC) version 4.3.0 (i386-unknown-freebsd6.3)
          compiled by GNU C version 3.4.6 [FreeBSD] 20060305, GMP version 4.2.1, MPFR version 2.3.0.

The first X64 target platform has been added and successfully bootstrapped: AMD64_DARWIN. More are expected to follow soon.


Miscellaneous news items:


A regression test framework based on Tinderbox has been set up. Currently only two target platforms are build nightly, but more will be added. See the Tinderbox Page for details.

There also is a package status page based on recent build results.


Some new bootstrap archives are now available from the download page labelled d5.5.0. This should help overcome the problems people run into when trying to build the current sources with the 5.4.0 release. Since the last release the compiler has been extended by a 64 bit LONGINT type; work on the threading system and garbage collector has continued. This makes updating to current sources a bit more difficult. See the recently added CM3 ChangeLog for details.

This is no official release with the usual release engineering and testing, but just some compilations from the current CVS head. Nonetheless installations with these archives may be much easier for unexperienced users.

Hopefully more archives will be built during the next days.


The CM3 5.4.0 release is now available from the download page. The release announcement didn't make it into the 5.4.0 download archives, but is available online.


There is now a web page about the status of the upcoming cm3 5.4 release.


Recently, a lot of work has been done on CM3, its compiler, runtime, and further library support, which hasn't been communicated very well to interested parties. For some time, only development snapshots have been available as releases. The next complete release will be 5.4 and will very likely contain the following features:

I'm pretty sure this list is still incomplete and should be extended by the contributor's.


Rodney M. Bates provides a new version of the m3gdb debugger. This version of m3gdb is based on gdb version 6.4. It is available for download from this site.


A new version d5.3.2 for CM3 is available for download from this website for the following OSs


Stefan Sperling added support for NetBSD 2.x. His installation archive can be found at cm3-min-POSIX-NetBSD2_i386-d5.2.7-2005-03-31.tgz At this stage, bug reports should be sent directly to stsp at elego dot de.


A new pre-release archive for CM3 5.2.7, labelled d5.2.7-2005-03-31, has been put up for HTTP access. The d5.2.7-2005-03-31 release fixes several bugs on recent Linux distributions, like Fedora 3 and Gentoo Linux.

It has been compiled and tested on the following Linux systems:


Several pre-release archives for CM3 5.2.7, labelled d5.2.7-2004-10-31, have been put up for HTTP access. So far, d5.2.7-2004-10-31 has been compiled successfully on the following systems:

Patches to compile CVSup with this latest release have also been put up on the download page.


As the binary installation archive for the SOLgnu platform of the cm3 5.2.6 release contained compilation errors for which there is no workaround, the archive has been replaced with cm3-min-POSIX-SOLgnu-d5.2.7.tgz which is a snapshot of the current development tree and can be used instead.


CM3 5.2.6 has been released. Apart from the new target platform PPC_LINUX (Linux running on PowerPCs), this release contains an upgrade of the code generator to gcc 3.2.3, errno fixes for the latest glibc versions, and several more bug fixes and small extensions. Have a look at the RELNOTES_5_2_6 for details.


Additional information about know problem for the 5.2.X releases of CM3 has been added to the Known Problems page.


CM3 5.2.4 has been released. This is a maintenance release with several bug fixes and small extensions. Have a look at the RELNOTES_5_2_4 for details.


CM3 5.2.0 has been released. It features a completely new code generation back-end based on gcc 3.2.1 and support for the new target platform PPC_DARWIN (Darwin, MacOS X on PowerPC). The new code generator has one flaw: it cannot work with the table based exception frame implementation of the current front end, so this needs to be re-done. As a consequence, the new back-end is not recommended for all target platforms supporting stack walkers. This release is made to make support for the new target platform available for everybody. See RELNOTES_5_2_0 for details.


The document archive has been updated. cm3-doc-5.1.8.tgz now contains all the current generated package documentation as of 2002-04-08. CM3 now also includes m3browser, the well-known HTTP server that generates HTML documentation about installed packages on the fly, fully cross-referenced down to the type-level. m3browser has been imported from the PM3 distribution, together with the packages m3scan and m3markup, all of which reside in m3-tools. At the same time, some buffer implementations used in several packages have been extracted into their own library, libbuf. These changes are currently only available via CVS and CVSup.


I've added another 5.1.8 fix archive for those without CVSup and CVS ambitions. This archive contains all changed files since the 5.1.8 release of CM3.


You can now browse the CM3 CVS repository online with your webbrowser.


A bug in the binary installation archives of 5.1.8 for all POSIX platforms has been found. It is easy to fix, though. See 4.2 [Release 5.1.8] Linkage failure on POSIX platforms due to wrong paths (/pub/lang/m3/cm3-dist) in binary installation archives for details. As this can be easily corrected manually after the installation, no new distribution archives have been created.


The master CVS repository for CM3 has been moved to This means that everybody who wants to work on the CM3 sources directly can get write access if he provides an ssh key (protocol version 2 (DSA) preferred). Send email to m3-support{at} if you are interested, and have a look at the CM3 configuration management rules.


A bug in the installation program has been fixed. See 4.1 Linkage failure: missing -L before library paths (installer bug) for details. As this can be easily corrected manually after the installation, no new distribution archives have been created.


As always with new releases, some bugs appear right after creating the archives :-( Instead of building new release archives, I've created a 5.1.8 fix archive for those without CVSup and CVS ambitions.


CM3 5.1.8 has been released. New distribution archives have been placed on the servers for most of the active platforms. Changes include bug-fixes to the compiler (backend and quake interpreter), extraction of the system call wrappers from m3core into m3gc-enhanced, and addition of and fixes for lots of packages, concerning obliq, shared objects, graphics, and general useful libraries. A more detailed list of the changes can be found here.


Some new distribution archives have been placed on the server, including some fixes to the compiler and documentation. The current release number is now 5.1.6. Those who have installed 5.1.3 or 5.1.4 should rather get the updates via CVSup or CVS than download the big distribution archives. Not all binary installation packages have been rebuilt and updated yet; a full build will probably be deferred until some of the more substantial changes currently in work are finished.


In addition to CVSup access, now anonymous CVS pserver access has been set up, too.


src-update-2001-09-19.tgz has been added, which adds a fix for compilation of m3core on Linux systems using glibc 2.2, some minor package fixes, and the parser tools and template generator distribution from the California Institute of Technology, contributed by Karl Papadantonakis.

Some progress has been made on improving the infrastructure of the cm3 source distribution: A cm3 CVSup server has been installed, and the cm3 repository is replicated once every night. As there are still unresolved issues with the domain registration for the machine the server is located on, it can currently only be contacted as or via IP number The CVSup server currently knows about the collections cm3, cm3-caltech-parser, cm3-doc, cm3-m3-comm, cm3-m3-db, cm3-m3-demo, cm3-m3-games, cm3-m3-lectern, cm3-m3-libs, cm3-m3-mail, cm3-m3-obliq, cm3-m3-pkgtools, cm3-m3-sys, cm3-m3-tools, cm3-m3-ui, cm3-m3-www, cm3-scripts, cm3-www. Anonymous CVS pserver access will be added soon, too.


src-update-2001-05-12.tgz has been added, which contains the differences between releases 5.1.3 and 5.1.4. These are: (1) A fix for m3core/src/text/TextSub.m3, (2) the addition of the Juno-2 packages, which contain a graphical constraint based editor, (3) a do-cm3-std.bat script (untested), and (4) several minor script fixes and improvements.

5.1.4 is also available as the source archive cm3-src-std-5.1.4.tgz, and as a binary installation archive for FreeBSD3. I haven't yet been able to build more distribution archives, but hope to get round to it next week. This should be no big problem, since everybody can easily use the update archive to upgrade his/her system.


Put up another binary installation archive for WIN32, cm3-min-WIN32-NT386-5.1.3a.tgz, for download. The libraries and programs in this archive are built with a recent version of the Microsoft C tools.


A simple build script for NT/Win2000 cmd shells has been added to the latest scripts archive. Some obsolete passages from the web pages have been removed, and some final adjustments before the official release have been made.


The first archives of the official CM3 5.1.3 release have been created. CM3 5.1.3 contains a work-around for the DLL creation / linker problem on NT386 (which actually seems to be a C compiler problem), a last-minute fix for dynamic linked executable on LINUXLIBC6, an almost completely fixed HTML documentation tree, and several minor fixes. The binary installation still supports only four platforms: NT386 Windows 95/98/ME/NT/2000 on x86), LINUXLIBC6 (Linux with glibc 2.1 on x86), FreeBSD3 (FreeBSD 3.X (4.X, 5.X?)) on x86, and Solaris (SunOS 5.6, 5.7, 5.8) on SPARC. On all these platforms dynamic linking and incremental and generational garbage collection is implemented.

Once all archives are created and uploaded, some old stuff will be removed, cm3-unofficial will be renamed cm3, and an announcement will be posted to the m3 newsgroup.


A chapter about CM3 5.1 Interface Changes and Performance has been added, as well as some updates to the TODO lists.

A new source update archive src-update-2001-03-11.tgz has also been created which contains the following latest changes: updates and fixes for packages cm3 (minimal profiling support for some POSIX systems), cminstall (win32 improvements), libm3 (changed ProcessWin32 module), m3core (FreeBSD4 dtoa fix), scripts, and CMASS copyright texts.

The scripts archive has been updated, too.


Added a new installer for WIN32 which replaces filenames with spaces by their 8.3 equivalent.

2001-03-01 (20 hours later)

Several source and binary distributions have been upgraded to patch level 1 (cm3 5.1.1). This patch level includes all the fixes and extensions prior to 2001-03-01 (described below) plus the following recent changes:

The TODO and package status lists have been updated. Some platform notes have been added on the installation page.


A problem report page has been added. Problem reports will be sent to the GNATS database at elego Software Solutions GmbH.


The most important news is that now documentation is available for CM3 5.1. Much is still missing and not everything is up-to-date, but there is a complete set of documents for all standard packages and interfaces; the nice interfaces overview page from Critical Mass' Reactor distribution has been updated.

The m3tohtml program (which was broken due to several interface changes in the standard libraries) has been fixed. I have also added a user-friendlier frontend, some documentation (try `-h'), and made it more robust. It has been used to generate all the current package documentation in HTML, and you should also be able to use it for your own purposes without much effort.


Several items have been added today:

A binary boot archive for the SOLgnu target (SunOS on SPARC) is now available. See the Download Page.

About CM3 5.1 · CM3 5.1 IF Changes and Performance · CM3 5.1 Documentation · Installation Notes · Upgrading · Things to do · Package Status · Known Problems · Booting CM3 using M3 · Porting CM3 · CM3 and Elego ComPact · CM3 Problem Report · Download · CVSup Access · CVS PServer Access · CM3 Configuration Management Rules· M3 Mailing Lists · Plans