Mr. Guiochon, a kind visitor of these pages (and author of the QDTools package - see below), sent me a newer version (1.04) of the TopSpeed Extended Libraries by Marco van de Voort which is now available from the download area. The author of the package has stopped developing it for a long time now but hey - this is a place were people care about small differences. XtdLib (eXTenDed LIBraries) is a library for TopSpeed Modula-2 3.1x. Here is a short description by Marco van de Voort: "The original highlights were a pulldown system on top of module window, and a helpfile system."
Latest changes to the development branch of GNU Modula-2 have been reported to the GM2 mailing list: "All regression tests pass under Debian Wheezy amd64. (There are technically 12 failures - but these are really extreme programming test cases (for code yet to be written) rather than regression tests in the true sense)." Congratulations! Gaius also reports gm2 has built as a cross compiler for avr.
Updated GNU Modula-2 binaries (10/03/2014) for Windows7/Cygwin32 are available from the download area.
SynWrite was updated recently (2014-09-09). "SynWrite is a free source code editor, HTML editor, and Notepad replacement for Windows systems. It tries to be a full-featured alternative not only to simple Notepad, but also to such rich applications as Notepad++." I want to add: it does not only try. This is a great application. You have to install the Modula-2 Lexer from an archive distributed with the program (found in the readme subdirectory). Some of us may also want to add ".def" to the Modula-2 file extensions. SynWrite is in the list of editors with Modula-2 highlighting for a long time.
An updated version of the QDTools package by P. Guiochon is available from the download area. QDTools is the name of a collection of various useful utilities (the Readme linked here is a nice read including some thoughts about programming which remind me of things Niklaus Wirth said - and I get kind credits by Mr. Guiochon in there) for the DOS-commandline which are also usable under different Microsoft Windows operating systems. Some but not all sources are available. "QDTOOLS.ZIP archive is probably the largest Modula-2 compilation available today (about 150000 lines of code), for it included, the last time I cared to check, 161 TS JPI M2 DOS various programs (141 with source code) as well as 12 PB DOS programs (10 with source code) and 12 VB programs (all with source code)." And "Note QDTOOLS.ZIP distribution and usage policies *ARE* restrictive : it's a *freeware*, but definitely *NOT* public domain nor even GPL. You can use these tools without any cost, but they're not yours."
An updated package of ADW Modula-2 (Build 1.6.281 - August 12, 2014) is available from Modula2.org. A number of interesting example modules and programs were also made available. I am happy this fine piece of software is back.
[Update: the items are no longer available] Mr. Otten sells 2 interesting items. Usually I don't advertise for others but this is an exception. There is M2SDS Modula-2 Software Development System (which is new to me) and a copy of the original Modula Corporation Modula-2 for the IBM-PC.
Gaius Mulley posted a message to the GNU Modula-2 mailing list announcing significant changes to the sources of GNU Modula-2. Testing the compiler via Dejagnu won't work for some time. "The huge benefit of this is that now gm2 builds using multiarch so when you build a cross compiler say for the atmel series of microprocessors, the build process builds a per target set of iso, pim, logitech etc libraries."
Rick Sutcliffe posted some interesting thoughts about Modula-2 R10 after visiting WWDC 2014, the Apple Worldwide Developers Conference in San Francisco.
It's a pity some pages on the internet only exist in certain languages. One of these is at Homepage-DJ1YQ and put online by Franz J. Bellen. I have translated introductory parts of the page via an online Translator: "This homepage provides amateurs who are interested in the physics of satellite orbits and satellite communications, including the associated mathematics and data processing, technical articles, graphics and Software." Most interesting, the software is written in Modula-2 and can be requested at the authors email adress. You may also download a lot of articles related to the topic in German language.
Once upon a time there was a company called Nixdorf Computer AG which was later bought by Siemens. And some CVs and other bits and pieces found in some corners of the internet reveal that there was some strange system developed by this company called X/SDE running on Nixdorf Targon computers (sorry, the article is in German language). Someone calls X/SDE a 4th generation system for Modula-2 programmers, elsewhere the thing is called Modula-2 interpreter. Who knows more? I did not even find books or documentation related to X/SDE - it seems there was a system called Alexander which should have become the successor of a software called Comet. I think Alexander was based on X/SDE and was never released (?).
Here is another article called Modula-2 language is worth it from the early days of the language. The described compiler sold by Volition systems was available for many platforms, targeting the UCSD-p virtual machine.
Jos Dreesen will demonstrate his running Lilith (ETH Modula-2 computer by Wirth/Ohran) at the Vintage Computer Festival in Munich this weekend. A rare chance to see this system in action. I'd go there if I still lived in Salzburg... [Update:] I am sorry to hear the last working Lilith computer is out of order at the moment.
Whatever you think of Google - they make things available which I would never have found without them. PC Mag 3. Apr. 1984 contains a number of articles about Modula-2: For example The Making of Modula-2. Just read on to find a picture of Niklaus Wirth with the Lilith computer, code snippets and introductory material about the language. This was the time when people tried hard to introduce Modula-2 to programmers around the world. Interesting times.
Recently I found an article in Russian language called The Modula-2 Software Kernel Based On 'elektronika-60' Microcomputer. Was there an operating system for this box written in Modula-2? The Electronika 60 was a computer made in the Soviet Union. It was a clone of the DEC LSI-11 which was quite important in the early history of Modula-2. Another computer from the Elektronika series was the UKNC, according to Wikipedia "a Soviet PDP-11-compatible educational computer, aimed at teaching school informatics courses. It is also known as Elektronika MS-0511". An UKNC emulator is available as well as two Modula-2 compilers (Link that brought me there). Here is another site preserving EGOSOFT Modula-2. Everything is in Russian language. That's why I cannot test if the compiler works with the emulator. Does anyone know more?
[Updated] Latest changes to the development branch of GNU Modula-2 have been reported (second message, third message) to the GM2 mailing list. Gaius Mulley also reports a successful build on an Odroid U3 with promising regression test results.
Updated GNU Modula-2 binaries (03/19/2014) for Windows7/Cygwin32 are available from the download area.
Niklaus Wirth celebrated his 80th birthday. The Niklaus Wirth Birthday Symposium, organised by the computer science department of ETH Zürich, was a celebration of the life and work of Niklaus Wirth on the occasion of his birthday. Details about the talks and speakers are available here. The talk of Niklaus Wirth himself is also available (complete programme). Thanks to Chris Burrows for the hint!
Newspapers and media in Switzerland (other articles: , ) emphasized that the work of Niklaus Wirth predecessed Steve Jobs' work. The Lilith computer came with similar ideas but four years before the Apple. All the articles are in German language, maybe you can translate them using an online translator.
Chris Burrows has a great Modula-2 page called 'Lilith and Modula-2' (You may download historic versions of the original compilers written by Niklaus Wirth plus documentation there). Just like me he is interested in the history of Modula-2. Now he sent me a note that the Byte Magazine Volume 09 Number 08 - Modula-2 (August 1984) is available from Archive.org. This is a huge document containing a lot of interesting articles (by Niklaus Wirth himself, Jürg Gutknecht etc) and amazingly it contains a lot of old announcements for Modula-2 products (Modula Corporation, TDI etc). You may also download the .pdf which is 477 MB in size (!).
A new stable version (2.30.3) of YAZE-AG - Yet Another Z80 Emulator by Andreas Gerlich (which contains the CP/M Turbo Modula-2 compiler written by Peter Sollich and Martin Odersky) is available since january. The latest development version is YAZE-AG 2.31-11. This is a very impressive and interesting collection of software packages. The documentation of Turbo Modula-2 is available (.pdf). An amazing compiler with interesting extensions.
Ok, I didn't have enough time for Modula-2 since I last posted something so here is a small collection of accumulated news.
The latest snapshot of the Modula-2 R10 specification is dated january 25th (Changelog).
A new article called Mars One, Anybody? was published at "The Knights Of Type - If it's not type safe, you're doing it wrong".
Two messages posted to the GNU Modula-2 mailing list report latest changes to the compiler sourcess and a report about a successful build of GM2 for an Odroid U3 ARM board.
I have also rebuilt binaries for GNU Modula-2 Windows7/Cygwin32. The builds are available from the download area.
An updated version of the QDTools package by P. Guiochon is available from the download area. QDTools is the name of a collection of various useful utilities for the DOS-commandline which are also usable under different Microsoft Windows operating systems. Some but not all sources are available.
The latest snapshot of the Modula-2 R10 specification is available. A list of features debated but not adopted into the language is also there now. Work on the language definition approaches a design freeze and we will hopefully have a finished language report in our hands soon.
There is a new blog called The Knights Of Type - If it's not type safe, you're doing it wrong. As implied by the title and subtitle it is about "The promotion of type safety in software development". A number of highly interesting articles were published there over the past few weeks highlighting design decisions of Modula-2 R10 compared to Oberon and other strong typed programming languages. The introduction has more.
An updated specification of Modula-2 R10 (a modern revision of N.Wirth's Modula-2 language undertaken by B.Kowarsch and R.Sutcliffe in 2009 and 2010) is available from the projects homepage at bitbucket.org. Most important updates: (1) the pragma section has been completely rewritten, (2) terminology has changed and the (3) reserved word PLACEHOLDERS was changed to PIVOTAL (Please follow the provided links to get more information). The authors state that this update brings the project much closer to the design freeze they aim to achieve by December 31. Great news! I like this earnest and intense development process. I am really looking forward to use a R10 compiler -
Recent changes (messages) to the GNU Modula-2 compiler have been reported to the GNU Modula-2 mailing list. Freshly built binaries for Windows7/Cygwin32 (for both branches, grafted onto GCC 4.1.2 and GCC 4.7.3) are available from the download area.
Latest changes to the GCC-4.1.2 branch of GNU Modula-2 have been reported to the GNU Modula-2 mailing list. Gaius Mulley also published a short script which will download, configure, make and run the regression tests for either the 4.1.2 or the 4.7.3 branch of gm2 (for people who do not download the combined tarballs containing the testsuite). I rebuilt the binary packages for Cygwin32/Windows7 for both the 4.1.2 and the 4.7.3 branches of gm2. Please help to test.
I know the pages of Practicum Structured Programming Modula-2 at Vrije Universiteit Brussel (Have a look at their Modula-2 technology page!). But I must have missed the appearence of Wimdows, a library written by Wim Devesse. It is a small package which reduces the complexity of the Windows API. It is focused on creating simple games. The main components of Wimdows are: Graphics functions for drawing geometric figures (lines, rectangles, circles, polygons, ...), working with bitmaps, control of the mouse and keyboard, menus, buttons and text boxes. The library was written for use with the XDS Modula-2 compiler.
An updated specification of Modula-2 R10 (a modern revision of N.Wirth's Modula-2 language undertaken by B.Kowarsch and R.Sutcliffe in 2009 and 2010. (...) The primary design goals of the revision were type safety, utmost readability and consistency, and suitability as a core language for domain specific supersets. Targeted areas of application are systems implementation, engineering and mathematics) is available as well as a list of recent changes.
Latest changes to GNU Modula-2 (gcc 4.7.3 branch) have been reported to the gm2 mailing list. Up to date binaries for Windows/Cygwin32 are available from the download area.
[Updated] The cvs repository of GNU Modula-2 has been converted into a git equivalent. There were some changes to the structure of the repository which make it easier to build the compiler using a script provided by Gaius Mulley. This affects only people who do not use the prebuilt tarballs containing a patched GCC and GNU Modula-2. As there also were some bugs fixed I rebuilt the binaries for Windows/Cygwin32. The updated archive is available from the download area.
[Updated] A message to the GNU Modula-2 mailing list by Gaius Mulley reports latest changes to the sources of the compiler. I have rebuilt the binaries of GNU Modula-2 for Windows/Cygwin (10/29/2013) accordingly. You are of course invited to download and test the build.
An updated Debian package of GNU Modula-2 (GCC 4.1.2 branch) is available. The compiler in this branch was not updated but there were problems in the linking process on newer Linux systems.
The progress of M2R10 can be followed by studying the relevant documents which have recently been updated. Nice to see the project coming along well. Modula-2 R10 is described as follows: "Modula-2 R10 is a modern revision of classic Modula-2, undertaken by B.Kowarsch and R.Sutcliffe starting in 2009 and still very active. Primary design goals were type safety, utmost readability and consistency, and suitability as a core language for domain specific supersets. Targeted areas of application are systems implementation, engineering and mathematics. A particular strength of the design is a set of facilities to make library defined abstract data types practically indistinguishable from built-in types and thereby eliminate one of the primary causes of feature growth."
Earlier this year I mentioned the spreadsheets Surpass and Farsight from the CP/M and DOS days which were coded in Modula-2. Looking into this period of time a bit further revealed another bit of Modula-2 history published in WordStar History: "By 1985 a growing trend toward ease of use resulted in the appearance of a new category of word processor focussed less on features and more on usability. While MicroPro was developing its 'next generation' word processor, WordStar 2000, it felt obliged to add something in this easy-to-use class to its product line. The effort focussed around a modularly designed interface written using Modula 2 (programming language). This new interface was bolted onto the existing WordStar 3.3 text-processing engine. The result was released as MicroPro Easy." The product was a commercial failure but illustrated the strong need for easy to use interfaces. Seymour I. Rubinstein who founded MicroPro in 1978 seemed to be a strong proponent of Modula-2. The above mentioned Surpass spreadsheet was also created by a company formed by Rubinstein. I am searching for a screenshot of MicroPro Easy - anyone?
[Updated:] Gaius Mulley recently sent a message to the GNU Modula-2 mailing list giving some details about the progress the GNU Modula-2 compiler makes (other recent messages). This message made me try to build the compiler grafted onto gcc-4.7.3 on Windows 7/Cygwin. Everything went ok, so here is the new GNU Modula-2/Cygwin32 build. You have to create a directory called 'opt' in your home folder using the Cygwin shell, after that you copy the downloaded build to this directory and extract it there. After that you have to add the path to the compiler to the PATH variable by typing 'export PATH=~/opt/bin:$PATH'. You should then be able to build Modula-2 programs.
I recently found out Prime Computer, a company selling so called minicomputers in the 70ies and 80ies, used Modula-2 as official language inside the company for some time. Here are 2 snippets from the Comp.Sys.Prime FAQ: "Around 1987 the official language within Prime Engineering became Modula-2. Modula-2 ceased to be the "official" systems programming language after the second or third RIF (Reduction in Force = Redundancy) inside of Prime Engineering, as the compiler was never as good as SPL, even with some of its extensions (like INLINE procedures!) that SPL never had." But: "Modula-2 was not widely used in the Primos kernel, since the compiler writers who worked on it were reassigned around mid-1988. Various tools to replace the nice features of Modula-2 (such as strong type checking on procedure calls) were promised for SPL but never delivered (big surprise there). Modula-2 was used for the Machine-Dependent-Synchronization and Machine-Independent-Synchronization components of the kernel and actually worked out pretty well (I did some of that, and the type checking detected some problems that would have been a bitch to find at runtime)."
A new version (2.74) of ADW Modula-2 is available. Changes include unicode support for the library, lots of corrections and 64-bit code generation when using DIV and MOD on 8-bit values.
GNU Modula-2 does not only build now when grafted onto gcc-4.7.3, the compiler also builds hello world which is an important step as Gaius Mulley points out.
Other news: John O Goyo informed me that some parts of the documentation of Sun Modula-2 (being a predecessor of EPC Modula-2, which I also didn't know) are available at the homepage of Will Doherty.
Gaius Mulley recently reported to the GNU Modula-2 mailing list that changes were checked into the compilers sources to make gm2 build when grafted onto gcc-4.7.3. Building instructions are provided but it is emphasized that the status still is "very very experimental and there are major limitations. But at least it builds!" Testers are of course highly welcome.
Some articles (example) have recently been published about the announcement of IBM to end support of their Lotus programs in 2014. Old names come to memory such as VisiCalc, Farsight and Surpass. Did you know the latter were written in Modula-2? Even one of the most important competitors of Lotus 1-2-3, Borland Quattro Pro was (for some time) a Modula-2 program (being a successor of Surpass) and later ported to Turbo Pascal.
More and more articles from a time when there was no internet are made available online by magazines like Dr. Dobb's Journal or Computer Business Review. Here are two interesting examples which I enjoyed to read: What's New With Modula-2? by K.N. King (author of a famous book about Modula-2), gives an impression how people looked at Modula-2 in the 90s, and Niels Jensen explains how TopSpeed leaves Borland's Turbo compilers standing - an important date in the history of Modula-2.
A sidenote: As some of you may have noticed I have reorganised the pages to make the information in some areas more accessible. Some sections have also been deleted, some have moved. I hope most of the links (internal and external) are still working. Please report dead ones.
An interesting interview with Niklaus Wirth on Teaching Computer Science was published months ago by IEEE Computer Society. Wirth gives some insight on the development of Modula-2. As this is one more film in a line of interviews I added a section with videos to the local FAQ.
Other news: People using Aglet Modula-2, the compiler written by Tom Breeden, may find the work of Frank Ruthe useful: "While playing with Tom Breeden’s PPC native Modula-2 [AgletM2PPC] environment I really missed integration to CubicIDE. So I generated some new files for a *slightly* better IDE integration. You need Tom’s AgletM2 PPC port and his GoldED Modula-2 dictionaries and guide files." You can also find Aglet Modula-2 and Mr. Ruthes work on OS4Depot.
A new version (2.62) of ADW Modula-2 is available. A lot of bugs were fixed. As the format of SYM-files has changed you should delete existing ones and recompile your projects.
Recent changes to the gcc 4.7 branch of GNU Modula-2 have been reported to the gm2 mailing list.
And here is an interesting project: Rosetta Code "is a programming chrestomathy site. The idea is to present solutions to the same task in as many different languages as possible, to demonstrate how languages are similar and different, and to aid a person with a grounding in one approach to a problem in learning another". The link points to the Modula-2 section which is growing steadily. Contributions are welcome.
Chris Burrows informed me that Richard Gleaves' Volition Systems Modula-2 Manual is available at BitSavers now. Volition Systems Modula-2 was available for many platforms, targeting the UCSD-p virtual machine. If you are interested in the system you may want to join the UCSD Pascal Yahoo Group which is the right place to find people who know more.
Other news: I added SynWrite to the list of editors with Modula-2 syntax highlighting. The needed "lexer" comes with the program but has to be manually extracted and installed from an archive in the readme folder. You may want to change the Modula-2 file extensions from "m2 mod" to "def mod".
The multilingual compiler Strannik reappeared. There was no update but the original homepage of the compiler is online again.
Recent changes to the gcc 4.7 branch of GNU Modula-2 have been reported to the gm2 mailing list.
Carl Glassberg started a project to provide example text filters using ISO Modula-2. Here is a short description from the projects homepage: "ISO Standard Modula-2 (IS 10514) treats end-of-line in text files different from classical (PIM2) Modula-2. This project will provide text-filters written in ISO m2 that attempt to 'emulate' the classical m2 approach to end-of-line." The project was announced in comp.lang.modula2.
An interesting article about Borland Turbo Modula-2 If Only Borland Had Stuck With Turbo Modula-2 For CP/M by Lawrence Woodman was recently published at TechTinkering.com.
[UPDATE:] As the questions about Turbo Modula-2, Borland and TopSpeed Modula-2 are floating through the net for years now, here is some insight from the original developers of the Turbo compiler. Peter Sollich and Martin Odersky developed the Turbo Modula-2 compiler for CP/M which was then bought by Borland. Sollich later on joined Borland while Odersky worked as a Ph.D. student with Niklaus Wirth at ETH Zuerich. The process of the disappearence of Turbo Modula-2 is described in a thread (scroll down nearly to the end of the discussion) of comp.lang.modula2. If you read the provided links carefully you may join me in feeling a bit sorry about a great product which was kicked out of the way... You may want to play with Turbo Modula-2 by installing YAZE-AG - Yet Another Z80 Emulator by Andreas Gerlich which contains the compiler.
Care for a snippet of Modula-2 history again? A lot of interesting papers (try Formal Methods and Software Safety for a start) are available on the topic of "SACEM" which was the Paris Metro Signaling System. "The system (...) was composed of embedded software and hardware, the software part being composed of about 21.000 lines of Modula-2 code, 63% of which was deemed to be safety critical." Still very interesting lecture for those interested in the field of embedded and safety critical development. Also interesting for the average Modula-2 programmer. Imagine how many trains (the system was used for the french national network (SNCF), on the Paris suburban network (RER) and on the underground of Cairo, Calcutta and Lyon for example) depended on the software...
An updated version of the QDTools package by P. Guiochon is available from the download area. QDTools is the name of a collection of various useful utilities for the DOS-commandline which are still usable under different Microsoft Windows operating systems. Some but not all sources are available.
In case you have tried to visit the homepage of Objective Modula-2, Modula2.net or the homepage of Modula-2 R10 you may have feared the projects have disappeared (well, to be honest, I was really worried). They have not (underline!) but are alive and doing well. Their home Modula2.net will hopefully be back online soon. Meanwhile you can find the latest drafts of the Modula-2 R10 documents (specification) over at Bitbucket. An editorial to-do list is also online.
Gaius Mulley announced the availability of a new tarball containing a snapshot of GNU Modula-2 grafted onto GCC 4.7.1 and points out "It is probably not worth downloading (unless you want to see some development progress and the current state of play) as the compiler pretty much only compiles hello world. However I think no more code needs to be written just many many bugs need to be fixed."
Querying Archive.org for 'Modula-2' brings up some rather old but interesting documents and software packages.
I just added GDOS for the Gepard computer to a list of operating systems written in Modula-2. Available information about the Gepard is rare and mostly in german language. GDOS (Gepard DOS) was completely written in Modula-2. I found an announcement and some information by Thomas Tempelmann who worked for the company Gepard computer. Later he developed Megamax Modula-2 for the Atari ST computer. A short video featuring the Gepard is available. [UPDATE:] The shown setup was part of a project at the university of Giessen (AG Ionentriebwerke) in Germany where the Gepard seemed to be used to control an ion thruster. I am just translating what's told in the video because I was asked for details...
An updated binary build of GNU Modula-2 (GNU Modula-2 1.0.5 (20130107) grafted onto GCC 4.1.2) for Cygwin/Windows is available from the download area.
Recent changes to the 4.1.2 branch of GNU Modula-2 have been reported to the gm2 mailing list. This branch is the stable one at the moment while work is under way to integrate GNU Modula-2 into the GCC sourcetree. A number of modules have been added to the ISO Modula-2 library, "in summary (aside from the new modules) a compiler error has been fixed MAX(SHORTINT), MIN(SHORTINT), MAX(SHORTCARD), MIN(SHORTCARD) now work".
Modula-2 was sometimes used in military computers - if we like it or not. As always I don't want to discuss ideological matters but facts out of the history of Modula-2. There is an interesting article about Soviet Argon Research Institute. People there developed computers for use in aircraft missiles, space vehicles, space missiles and unmanned vehicle control systems, "including the Luna moon rover, as well as on Mir and Salyut orbital stations and transport spacecraft". Have a look at their onboard digital computer SB-3580 and its successor SB-5580 which could be programmed in Modula-2.
Did you - once again - miss Modula-2 textbooks under your christmas tree? You may then be interested in B.J. Holmes book Modula-2 programming. Large and usable parts of it are available via Google books. The author teaches Topspeed Modula-2 but knows ISO Modula-2 very well. It seems to have been one of the last (1994) textbooks about Modula-2.
Gaius Mulley added a new module to GNU Modula-2: "RandomNumber which provides a few procedures for obtaining random numbers on some basic data types. Also fixed a bug in the PIM Random module."
You may also be interested in a short article back from 2004 called An Evening With Niklaus Wirth by Alolita Sharma which I recently found by accident.
Gaius Mulley posted a message to the GNU Modula-2 mailing list telling us "that work is underway to migrate gm2 onto gcc-4.7.x (1) currently. I've been working on it since august 1st. There is still some way to go - estimated time of completion is Christmas - but my estimations are often incorrect". Well, I am for sure happy to wait as long as it takes - and I am happy to hear gm2 is well and coming along.
Other news: Jan Verhoeven pointed me to the ACK (Amsterdam Compiler Kit) mailing list. There is some noise in there and interested developers are of course invited to participate.
A few months ago Jos Dreesen uploaded a video showing the ETH Lilith Modula-2 computer, running its demoprogram created for the Comdex show. As Mr. Dreesen points out the video was created with the Lilith emulator Emulith he developed himself. There was even an OSNews-Story about this. Missed this one apparently...
A new draft of the M2 R10 specification (Sep 30) is now online, as usual the M2 R10 homepage provides extensive information.
An updated version of the QDTools package by P. Guiochon is available from the download area. QDTools is the name of a collection of various useful utilities for the DOS-commandline which are still usable under different Microsoft Windows operating systems. Some but not all sources are available.
Some people asked if Mocka, the Modula-2 compiler of GMD is still available as the links to download the compiler seem to have disappeared and the compiler is no longer part of Linux distributions. Don't worry, everything is there. A nice version is provided by Dr. Maurer, maintainer of Murus. There's also the original FTP site. And you can find the original Mocka compiler as well as a Debian package and a version producing very small executables in the download area of the Mocka and Modula-2 mailinglist. You'll have to sign in there to get access to the files.
Qnr (developer of Page Six, an IRC service bot used in the Modula-2 channel) posted a module for controling the text screen using ANSI codes in the XDS Modula-2/Oberon-2 forum.
An updated version (2.38 (2012 07 25)) of the Modula-2 FAQ by Rick Sutcliffe is available. Changes according to the announcement: "The most exciting active work on Modula-2 is the R10 project. More information on Modula-2 R10 is now available in 1.11. There are minor changes in several places, including the GNU version update, a cleanup of sections 4.7+ and 2.3+, additions to 1.7.10, 1.17, 3.2, 4.4, 4.9. Section 4.14 on operating systems is new. Excelsior apparently no longer is involved with Modula-2 and those references have been deleted. The StonyBrook compiler, as modified by ADW is now freely available. "
A simple but very informative homepage for Modula-2 R10, the latest revision of Modula-2, is online now. You can find the language description there, a link to the reference compiler project, details on the ongoing discussion about the language and so on.
A recent post to comp.lang.modula2 states Springer is reprinting classics in Modula-2. The reprints are quite expensive. I bought my own (used) copy of PIM4 for a few euros thanks to the internet. Nevertheless this is interesting. Why does this happen now?
Users of XDS Modula-2/Oberon-2 might be interested in an Oberon-2 binding to libharu which was kindly made available by a kind user of the development package. I know it is not Modula-2 but easily accessed from your Modula-2 programs.
Recent changes to the concise description of the R10 dialect of Modula-2 were applied June 30th. There are compliance, copying and acknowledgements sections now. You may also be interested in the changelog.
Martin Hofman started a thread in the GNU Modula-2 mailing list and collected a lot of intersting details about the building process ("what gm2 actually does to build a program, what gets linked in and why ...") of the GNU Modula-2 compiler and its dependencies. The documentation not only reflects the (very) complicated integration of a new frontend into the GNU Compiler Collection but also gives a lot of interesting detail for people who want to understand what exactly is happening during the build process of a module. Enjoy. If you dare.
[UPDATED!] Recently we had to discover the disappearence of some sites offering Modula-2 compilers for the Atari ST computers which were very popular about 25 years ago. Searching for a way to make something available again I found a disk image which is usable with an Atari ST emulator called Steem. You will also need a TOS image (version 1 or 2, higher versions do not seem to work). It's a bit tricky to use the whole system but it works (screenshot). In case you are wondering the compiler was called TDI Modula-2 and was derived from the original ETH compiler.
A kind user told me about another site offering 5 discs containing ANA Modula-2 (zipped versions of the discs are available in the directory tree), another Modula-2 system from the Atari days: look for directories called ANA_M2_x where x is the number of the discs. One more Modula-2 compiler derived from the ETH compiler is available here. This last one was developed in Munich and is in the public domain. So, Atari is back (thank you all!), the relevant part of the compilers section is up to date.
[UPDATED!] Other news: Benjamin Kowarsch informed me about recent changes to the concise description of the R10 dialect of Modula-2 (latest changes/release of June 24, 2012). The project is very ambitious and I am happy someone is putting so much energy into the development of Modula-2. People are invited to join the discussion (also check the previous news item below).
The concise description of the R10 dialect of Modula-2, jointly developed by B.Kowarsch and R.Sutcliffe, as a modern revision of classic Modula-2 has been updated recently. The finalised section on pragmas, their EBNF and syntax diagrams have been incorporated. The document is still work in progress as stated in page 2: "It is intended for general peer-review and for contributors who wish to participate in work on the M2R10 reference compiler, the standard library implementation and associated compliance test tools."
Beside of that a new version (2.42) of ADW Modula-2 is available. According to the homepage of the compiler it was released to fix a bug which led to problems compiling and loading 64-bit DLL's.
Latest changes to GNU Modula-2 have been reported to the gm2 mailing list.
A lot of in my opinion very interesting issues of USUS, a newsletter published in the 80s and early 90s by the UCSD Pascal System User's Society, are available via ftp from a server run by Western Horizon Technologies, a company offering consulting and professional staffing services. The files are all in pdf format and quite big but nevertheless interesting - mostly historic information but also code snippets etc. I remember some parts of the MODUS Quarterly Newsletter (another newsletter from back then) was made available by CFB Software in 2010. I also remember (what kind of information is in my head?) an article published in the same newsletter with the title "Automatic export of identifiers from the definition module" by Arthur Sale. I found this one searching for MODUS content in 2009. As always in such cases let me ask: Does anyone have more?
Ten years ago (april 10th) I uploaded a collection of links related to Modula-2. I was just tired to search for sources, compilers and online tutorials which weren't there anymore. Dead communities, disappeared homepages and broken links were symptomatic for a dying language back then. Today the situation is much better, but still not good - a number of free compilers of professional quality are available now and may change this in the long run. The small community (more and more people ask questions or contact me in the last few years) around the language seems to be growing steadily. At this point I just want to say thank you to all who have contributed to my effort to keep a good online ressource for the language Modula-2 alive and up to date. Your help was and is appreciated.
Most of us know Modula-2 is there for over 30 years now. Those who remember or even played the game (which was very popular once) may be interested in a short video demonstrating Oxyd, a game written for the AtariST in 1990 by Meinolf Amekudzi (Schneider). Of course it was written in Modula-2 (Megamax Modula-2 is still available).
ADW Modula-2 version 2.38 has been released two days ago. The release fixes a bug with some REAL functions on x64.
Tom Breeden announced the release of a new version (3.2 Beta) of Aglet Modula-2. For those who don't know, Aglet Modula-2 is a compiler generating native PPC code for Amiga OS4. The IDE has got new features, modules were updated and some bugs were fixed. Find more information by visiting the original home of the compiler or consult the changelog.
Ok, it seems I still have to get used to the fact there are a few more places to check for news related to Modula-2 recently. And new ones still appear. I completely missed the release of ADW Modula-2 2.31 in january. Well, here is the announcement. There were some fixes and smaller changes in look and feel.
Julian Miglio kindly pointed me to the Embedded Graphic Environment Manager (Egem) which he maintains. "Egem is a graphic enviroment manager library, it has been designed for writing software for high integrity applications. It is not intended to be an operating system, but a simple and generic graphic interface that gives the user an easy way to interact with complex electronic machines." The Modula-2 version was written for GPM Modula-2 for DOS. Having the new homepage of Egem I removed the related files from the local download area.
Latest changes to GNU Modula-2 have been reported to the gm2 mailing list.
The beta package of XDS Modula-2/Oberon-2 by Excelsior has been updated recently. Some issues brought up by users of the compiler were adressed.
Recently I read an article which mentioned an implementation of the programming language Modula. First I thought this was the often used and usual short form of Modula-2 but reading on I found a reference to the University of York Modula Compiler. Well, I got very interested and did some investigative searching as I was quite sure until now that Modula was never used (I wasn't even sure if it was implemented). I found lots of articles and other interesting stuff and decided to put the information into the local FAQ. There was even an operating system written in Modula-1 - as it was sometimes called later, when Modula-2 was taking over.
Every now and then I receive questions via email asking for operating systems written in Modula-2. Recently I stumbled across Panos and some papers which I added to the appropriate section of the local FAQ. While updating this section I found out Gaius Mulley, developer of GNU Modula-2, wrote a microkernel called LUK which is used to teach students the principles of microkernels. LUK runs on x86 PC hardware and boots from a USB memory stick. Follow the link above to get more information and a download link.
Recently I (once again) read an interview with Niklaus Wirth back from 2009. If I remember it right I found the link visiting the homepage of Jan Verhoeven who also provides a link to the opening talk of Mr. Wirth at GTAC 2009. Now I found a new (2011) interview coming in three parts (one, two, three). Christian Timmerer, Niklaus Wirth and Laszlo Böszörmenyi discuss a lot of topics including the main problems of software development today. With these films I wish you a happy new year -
Really, I didn't think there would be more (great) news to be posted this year. But today I received a message from Dmitry Leskov entitled "XDS 2.6 beta - Your Least Expected New Year Present" which I partly quote here: "This was meant to be our Christmas gift to the Modula-2 community, but I have an excuse for being late: the Orthodox Christmas observed in our country comes _after_ the New Year, so we are more used here to give and receive New Year gifts.
Since releasing XDS under a freeware license back in 2005, we have completed a handful of related custom projects. Those projects ranged from complete toolchains targeting specialized embedded platforms to automatic Modula-2 to C++ converters to minor customer-specific tweaks and enhancements. We have also added keyboard macros to the IDE for our own convenience, and, of course, we have encountered and fixed a number of bugs in the process of working on all that.
To cut the long story short, we have just released XDS 2.6 beta incorporating some of the fixes, IDE macros and Open Watcom support in XDS-C."
Packages for Windows and Linux are available from Excelsior's homepage.
Now this is great (and surprising) news. ADW Modula-2, successor of Stony Brook Modula-2, is now available at modula2.org. The compiler has been released as freeware. Details from the download page: (1) ADW Modula-2 is for Windows only, (2) ADW Modula-2 allows development of both 32- and 64-bits programs on the Windows platform, (3) no support is given, neither by ADW Software, nor by modula2.org.
[Update:] Let me get this straight. I should have written more than a few lines to announce this release. But I didn't have enough time last sunday. So let me add: This is an amazing development system, not "only" a compiler. The documentation is really nice, the libraries are extensive. The package can be recommended to everyone using Windows only. It's a pity the Linux compiler wasn't released with the Windows version. Stony Brook used to be a cross platform development system. But. I don't want to be unhumble - thanks a lot for the release!
I thought I know all operating systems written in Modula-2. Now I found out about Panos, an operating system developed by Acorn Computers in the 1980s (information from computinghistory.org.uk), which ran on the 32016 Second Processor for the BBC Micro and the Acorn Cambridge Workstation. Of course this is of historical interest only. For those interested there is a lot of information including pictures and manuals available from Chris's Acorns.
Acorn also developed ARX, an operating system written in Modula-2+ (a predecessor of Modula-3). There is an interesting email about Acorn's involvement with Modula2. I post the link here because the information was very enlighting for me. You get to know the complete line between the ETH Modula-2 compiler and the development of Modula-3 by DEC and Olivetti. I didn't even know Acorn was part of this line...
The design of a free CSN API model is a paper by Gaius Mulley describing a project implemented using GNU Modula-2, Python and C. "Python is to be used to parse the specification file, allocate processes to processors and initiate execution of a process on a remote processor. GNU Modula-2 is to be used to implement the CSN library. GNU Modula-2 will utilise the portable GNU Pthreads via its coroutine library. GNU C will be used to interface between GNU Modula-2 and various library routines under GNU/Linux." The latest tarball (04/2010) csn-0.5.tar.gz is available from floppsie.comp.glam.ac.uk.
After a long time I updated the list of available compilers. And I installed YAZE-AG - Yet Another Z80 Emulator by Andreas Gerlich (V 2.20.1). I downloaded the Windows (and later the Linux) binaries and found a nice environment, great documentation and a preinstalled disc M:\ which contains Turbo Modula-2! The compiler works out of the box (picture). Amazing! Some of us will remember Turbo Pascal 3 and FST Modula-2 -
While looking through the list of compilers I updated some links in the Amiga and Atari sections. So I found out st-computer.net seems to have disappeared with all the Modula-2 compilers which were available from that site. Does anyone have more information (or do you have the compiler packages so we can make them available)?
GNU Modula-2 1.0.4 is available now. This is a bugfix release. Binaries for x86_32 and x86_64 are also there as well as a list of latest changes. As a sidenote Gaius Mulley informs that he works on grafting gm2 onto gcc 4.6.1.
[Update:] An updated binary build of GNU Modula-2 1.0.4 for Cygwin/Windows is available from the download area.
Have you ever heard of the Modular Universe? No, I am not talking about a philosophy of Modula-2 enthusiasts explaining the universe. I want to bring attention to the interesting projects of Dr. Maurer who develops Murus for a long time now. A lot of modules are available (GPL licensed), including examples for using X and OpenGL. The docs are extensive. Dr. Maurer uses the Mocka compiler and provides an own version which is easier to use in some aspects. As Murus is written in german language, Jan Verhoeven translated some parts of Murus to make them available to the rest of the world in the Murus section of his Modula-2 pages.
An updated version (2.37) of the Modula-2 FAQ by Rick Sutcliffe is available. Changes according to the announcement: "A link checker revealed some twenty dead or inaccessible links. All have been ruthlessly removed, and some sections renumbered, particularly after 4.8. A new mailing list for Objective Modula-2 is at 2.6. The Amiga Aglet item has been updated. Some additional resource lists have been added after the main bibliography. The GNU information has been updated. ISO compatibility information has been updated. Modula-2 R10 is mentioned in a new question at 1.11."
Reading the FAQ I found a reference to an interesting article by Andrey Koltashev which is available via Google Books (Abstract). Rick Sutcliffe points out Koltashev "discusses the benefits of using Modula-2 for the onboard-software used in Russian telecommunications satellites". I remember the announcement by Excelsior back from 2004 which I guess was related to the same project.
Roberto Aragón moved his very helpful Modula-2 pages to a new server. The information is in spanish language but mostly usable through tools like online translators. You can view the material as a tutorial to start working with a Modula-2 compiler (Mocka), a good editor (Kate) and an easy to use debugger (GNU DDD which works as a frontend for debuggers). Mr. Aragón also provides a few interesting scripts for better integration of the Modula-2 compiler with Kate. Maybe someone out there wants to provide a translated version of the documents?
GNU Modula-2 1.0.3 is available now. New binaries for x86_64 (Debian squeeze) are also available. Information about latest changes is also there as well as a newly built gm2-avr package (gm2 built as a cross compiler for the Atmel series of microprocessors).
Having a hard time with the GNU Build System? Digging through documentation and searching for a M4 macro which looks up GNU Modula-2? Have a look at the sources of Schwarzer Kaffee. Martin Kalbfuss provides the example files to get you started. Schwarzer Kaffee is a SDL wrapper for the GNU Modula-2 compiler utilising the GNU tools. Note: If you are interested in the project and want to use it on the Windows/Cygwin platform you should use gcc3 to build SDL! SDL is not part of the official package collection of Cygwin and doesn't build with gcc4 at the moment.
Speaking of the GNU Build System you may also be interested in the generic Makefile by Duke Normandin and others which has been posted to the GM2 mailing list.
Last but not least latest changes to the 4.1.2 branch of GM2 have been reported to the mailing list. [Update:] Today Gaius Mulley informed (again!) about latest changes to the compiler. "These fixes allow GNU ASM syntax to behave in exactly the same way as the other GCC front ends." Documentation and examples will be provided soon.
A new binary build of GNU Modula-2 for Cygwin/Windows is available (gcc-4.1.2+gm2-cvs-latest.tar.gz, 06/13/11). I thought it would be helpful for people testing and trying out the compiler to keep the archive up to date.
Earlier I posted about Modula-2 at CERN. Now I found (thanks to a hint from the compiler list at Modula2.net) a historic document about a Modula-2 to C translator developed by ANSTO (Australian Nuclear Science and Technology Organisation) in Australia. People often seemed to experiment with Modula-2 in safety-critical fields. I wondered how the computer looked like which was used to develop the translator. Well, I found a small picture of the box tied to a car...
Other news: Latest fixes to the GNU Modula-2 sources have been reported to the GM2 mailing list.
There is a relatively new project at GitHub aiming to provide a Modula 2 syntax file and useful abbreviations for Vim (As Vim does Modula-2 syntax highlighting since years I am - as a Vim user - looking forward for the useful abbreviations). This reminded me to post some simple scripts I am using with Vim. Any ideas to improve these? I'd be happy to post your little helpers here -
Checking the sites of the Modula-2 Webring I found out that a new bugfix release of Aglet Modula-2 is available since april. The release includes fixes for the compiler and some libraries. Aglet Modula-2 is Tom Breeden's Amiga PPC M2 compiler generating native PPC code for Amiga OS4. You may be interested in the documentation (pdf) to find out more.
Binaries of GNU Modula-2 for the Solaris (64bit sparc) operating system are available now. Latest changes to the compiler have also been reported to the gm2 mailing list.
As the world of Modula-2 is rather quiet at the moment (with the exception of the great development of GNU Modula-2) I'll drop in a snippet of history. Did you know Modula-2 was used at CERN (European Organization for Nuclear Research)? For example the language NODAL was once implemented in Modula-2 there. Various documents (example .pdf) can be found. An overview by Julian Blake with more detail is also available.
Latest changes to GNU Modula-2 have been reported to the gm2 mailing list. The compiler is also (again) available now as a cross compiler for the Atmel microprocessors. This is alpha status software which needs testing and people who are willing and able to try it out. Debian binaries are available for the x86_64 platform. Read the announcement here.
I really wanted GNU Modula-2 to build under Windows Vista. Now it does (once again). You have to edit one file (usr/include/string.h) of the Cygwin installation to make it work. Read the messages to the gm2 mailing list to learn more. The binary build is available here.
[Update:] I am happy. I installed the Cygwin port of Vim to get a nice development environment. After turning on syntax highlighting I tried to compile some of the GNU Modula-2 examples by typing :make - everything works fine! Don't forget to set the right path.
GNU Modula-2 has got a nice new website. The much improved documentation of the compiler now comes with sections labelled according to their texinfo nodes. Last but not least you may be interested in latest changes to the compiler sources (mostly reflecting the documentation update).
[Update:] Updated GNU Modula-2 binaries for Debian Squeeze are available now.
GNU Modula-2 1.0.1 is available now. New binaries for x86_64 and x86_32 debian lenny are also available.
GNU Modula-2 1.0 has been released yesterday! I know lots of people have contributed to the project (have a look at the archives of the gm2 mailing list to find out more) but it is one man who wrote the compiler and gave friendly and quick support to all people who asked questions or were and are interested in the project. Thank you so much Gaius Mulley. Congratulations to you and thanks to all contributors. Now there is an open source compiler which is able to process all of the dialects of the great language Modula-2 (PIM and ISO). A message about latest changes to the compiler was sent out earlier to the mailing list.
From the GNU Modula-2 homepage: "The GNU Modula-2 compiler is one of a number of front end languages to GCC (GNU Compiler Collection). As such it has been designed to coexist with other GCC languages for example it can be used in mixed language projects and it can catch C++ exceptions and throw exceptions which can be caught by C++. Users can also exploit conditional compilation and full gcc backend optimization and architecture coverage.
GNU Modula-2 can produce position independant code and can easily produce shared libraries from modules. The compiler provides a swig interface file generator option which allows scripting languages such as Python to import modules written in Modula-2 and also catch exceptions thrown by Modula-2."
Some small changes should improve the GNU Modula-2 user experience. The compiler now behaves similar to the most used GCC front ends (compile and link by simply providing the filename as your only argument). Other recent changes to the compiler have also been reported to the mailing list.
For German speaking readers: Maybe you remember the script/book about data structures in Modula-2 provided by Prof. Dr. Theo Härder which I pointed to in january. There is another script available (brought to my attention by a kind reader of these pages) about sorting algorithms in Modula-2 written by Ralf Kruber. Well, it is also written in German.
Jan Verhoeven developed a graphical user interface for the ACK Modula-2 (C, Pascal) compiler. "Normally I'm more a command line person. Still, the ACK has some idosyncracies that may be flattened out by a simple front end. And since Graphical seems to be the word of this era (how else would you like to spoil all these GHz-es and CPU cores?) I set out to create a GUI front end for the ack."
Other news: You may be interested in a generic makefile for use with GNU Modula-2 written by Duke Normandin and improved by Gaius Mulley.
A new distribution of Gardens Point Modula-2 is available now. "GPM/CLR is an implementation of the historical Gardens-Point Modula-2 compiler for the .NET runtime. It provides an example of how a non-typesafe, unmanaged data compiler may be implemented on the CLR." Some features of Modula-2 have not been implemented. Fewer libraries are available in the distribution as there were some problems due to missing low-level libraries.
I also want to point you to the brave work of some students: Over at Vrije Universiteit Brussel Modula-2 is used as a teaching language (using the XDS Modula-2 compiler). Domination (download) is the award winning game of the year 2010.
GNU Modula-2 0.99 is available now!
Other news: There is an interesting discussion going on in the GPCP Gardens Point Component Pascal group about the GPM/CLR versions of Gardens Point Modula-2. This may hopefully bring some life to the compiler versions for the Microsoft .NET platform (not to mention the now defunct online compiler). Maybe some of you are interested and want to show that interest in the mentioned group?
Finally: Have you ever asked yourself the question why there are uppercase keywords in Modula-2? While I just naively like the increased readability of my sources here are some very good arguments from a discussion in the Zonnon forum.
GNU Modula-2 0.98 was released today. 32 and 64 bit binaries are available for Debian and Ubuntu.
Latest changes to GNU Modula-2 have been reported to the gm2 mailing list. A lot of bugs were fixed and it seems we are approaching version 1.0.
A new version of The Amsterdam Compiler Kit is available. It was announced in comp.lang.modula2 and comes with a set of warnings about the limitations of the compiler kit (More information about ACK). [Update:] Jan Verhoeven set up a page to get started with the compiler.
The Objective Modula-2 FAQ has been updated.
And as a sidenote I want to inform you about the release of Critical Mass Modula-3 5.8.6. Not Modula-2, I know, but an interesting language available for a lot of platforms.
There is a consolidated Modula-2 R10 repository now over at BitBucket.org. The announcement was posted in comp.lang.modula2 some days ago. I want to point out the last paragraph of the message: "Developers and unit testers use the IRC Modula-2 channel on freenode for collaboration, and new members are welcome to join the team (currently five strong)."
Latest changes to GNU Modula-2 have been reported to the gm2 mailing list. Rebuilt packages for Debian are available. You may find the answer to a question about how to use the packages helpful.
GNU Modula-2 0.92 was released yesterday. All regressions now pass on x86_64 LP64 and i686. Binaries are available for Ubuntu and Debian.
An updated version of the paper An Overview Of Objective Modula-2 is available from the Objective Modula-2 website. Since Objective Modula-2 is a superset of Modula-2 R10, this document also includes an introductory section about R10 that is easier to read than the formal language description document I reported about earlier.
GNU Modula-2 0.91 was released a few days ago: "This release fixes two optimization bugs and at least one front end bug. It also includes the ability of users of gm2 to align fields." A complete list of changes to the compiler since version 0.90 is attached to the message.
Latest changes to GNU Modula-2 have been reported to the gm2 mailing list: gm2-0.90 has been released and it seems we are close to the release of GNU Modula-2 1.0.
The Concise Language Description of Modula-2 R10 is now also available as a well formatted pdf-file. You may also be interested in a complete set of syntax diagrams (encapsulated PostScript) for R10.
I am not sure how to introduce Modula-2 R10... There is a document which is a concise description of this dialect of Modula-2, jointly developed in 2009 and 2010 by B. Kowarsch and R. Sutcliffe, as a modern revision of classic Modula-2 ("Revision 2010"). As one of the developers points out, "the R10 dialect is about the same size as PIM, but its expressive power rivals that of Ada and C++. This is achieved by moving all the features that other languages add to their cores into the library and provide syntax that makes library defined facilities look as if they are built-in. Low level facilities are on par with C. Variadics are type-safe like everything else".
The homepage of Objective Modula-2 has been updated recently to reflect the latest changes to the core language and grammar. Find a summary of the latest updates here.
Other news: Chris Burrows informs us about the appearence of a copy of the manual of Logitech Modula-2 1.0 at bitsavers.org.
An updated version of the QDTools package by P. Guiochon is available from the download area.
The implementation of the ISO library of GNU Modula-2 is complete now (Wow!). You may also be interested in the new section Building a shared library of the GNU Modula-2 documentation.
Chris Burrows scanned some articles and tables of content from copies of 'The Modula-2 News' published in the 1980's by Modus, the Modula-2 Users Association (announcement). The file is available from CFB Software.
You may also be interested in the growing list of Modula-2 projects over at Ohloh.net.
Last but not least your help is needed once again. Some people are searching for a skilled volunteer to help in getting Modula-2 support into the GeSHi distribution. If you have PHP skills please consider helping.
Ohloh.net supports Modula-2, Modula-3 and Oberon for a few weeks now (thanks for the hint!). This solves the problem mentioned earlier.
Also published since april 7th are a number of recent entries to the changelog of GNU Modula-2.
GNU Modula-2 0.78 has been released as implementation of the ISO Modula-2 library is nearly complete (version 0.80 should come with the complete library). The homepage was updated accordingly and you may be interested in the modified release map. Gaius Mulley also published the latest entries to the changelog of GNU Modula-2.
The just released latest version of Highlight includes a definition file for Modula-2. You may also be interested in similar projects with slightly different approaches or goals. Highlight generates HTML files from your sources with external CSS definitions. Since version 2.16 Modula-2 is recognized. Packages for a lot of platforms are available (Windows, numerous Linux distributions, FreeBSD, Solaris and OS X). Highlight also works as a plugin with some programs.
Some people are searching for help in making Ohloh recognise Modula-2. There is a thread explaining what exactly has to be done.
You may be interested in two projects beside of the earlier mentioned M2SyntaxColour hosted at BitBucket.org (list of Modula-2 projects). There is M2Regex, a regular expression library for Modula-2, as well as M2Collections, the "Modula-2 collections library. The library provides an API for collection ADTs, in particular: stacks, queues, double ended queues, priority queues, balanced binary search trees, patricia tries, dynamic arrays and hash tables to store arbitrary data. The hash table ADT allows data to be stored and retrieved by reference or by copy, with built-in reference counting. All other ADTs allow data to be stored and retrieved by reference only. The library follows PIM4, it has no dependencies and it is platform independent. The library is tested with GM2 using option 'fpim4'.". Both projects are work in progress and are available under a BSD style license.
Bitbucket.org, a site similar to SourceForge.net, has updated its system to support Modula-2 syntax highlighting (example). Bitbucket uses the Pygments Python Syntax Highlighter, a generic syntax highlighter for general use in all kinds of software such as forum systems, wikis or other applications that need to prettify source code. There is also a project at Bitbucket.org called M2SyntaxColour providing resources for various syntax colourisation tools/plugins to recognise Modula-2. In the list so far: GeSHi syntax highlighter (PHP), Pygments library (Python), Xcode IDE.
Other news: The list of Modula-2 compilers at Modula2.net was recently updated. The update was announced in comp.lang.modula2. You may want to scroll through the list to check it for completeness.
The homepage of Objective Modula-2 was updated on february 4th.
Latest updates to GNU Modula-2 have been reported to the GNU Modula-2 mailing list.
Prof. Dr. Theo Härder is really kind to share an impressive (250+ pages) script/book on data structures in Modula-2. You may download the file from his personal homepage at Technische Universität Kaiserslautern. The problem for most of you is that it is written in German... As I understand you may download the PDF for your personal use, reproduction in printed form is prohibited.
Beside of that several messages to the GNU Modula-2 mailing list document recent changes, bugfixes and improvements to the compiler (e.g. latest cvs changes 01/16/2010 and latest cvs changes 01/11/2010).
A new release of Schwarzer Kaffee asks for attention and testing since december 20th (announcement).
By the way: Does anyone have more information about this compiler project? I cannot find contact information on the projects homepage but one can tell from a svn-checkout that quite a lot of work has already been done there. [Update:] I was told there is a homepage of modula2jcc which is (or was) the work of a group at Complutense University of Madrid. There I also found a link to another compiler project called jmodula2cc.
Latest changes to GNU Modula-2 as well as the release of gm2 0.72 have been reported to the GNU Modula-2 mailing list. Amd64 binaries are available.
There is a first release of "Schwarzer Kaffee" (german for "black coffee") which is a SDL wrapper for GNU Modula-2. The author underlines that the project is in a very early stage but some important things are already working. The release was first announced to the GNU Modula-2 mailing list.
You may be interested in Niklaus Wirth's talk (YouTube) at GTAC 2009. Thanks to Jan Verhoeven's Modula-2 Pages where I found the link.
A new package is available from the Sources Store for Modula-2 and Oberon-2. The file is called FreeImage3.13.zip and contains files to use the FreeImage library (which is "an Open Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia applications.") with XDS Modula-2.
Latest changes to GNU Modula-2 and the release of version 0.70 of the compiler have been announced to the GM2 mailing list.
Gaius Mulley reports that all GNU Modula-2 regression tests pass on debian lenny stable x86_64! There was also a message documenting latest changes to the compiler in the middle of october.
There is a new mailing list for news and discussion about Objective Modula-2.
A new list of Modula-2 Compilers categorised by availability is now available.
Latest changes and a proposal for the GNU Modula-2 compiler by Gaius Mulley may be discussed by using the GNU Modula-2 mailing list.
As we seem to be near to the release of GNU Modula-2 0.70 the compiler reached a major milestone. Implementation of the ISO Modula-2 language (ISO/IEC 10514-1:1996 Modula-2, Base Language) is complete. The website was updated as was the documentation. Read the announcement here (including latest changes to the compiler).
P2Ada has a new home at SourceForge.net (for about one year now...). P2Ada is a Pascal to Ada translator which also allows the translation of Modula-2 to Ada 95 via a special program called mod2pas.zip.
As the Modus Quarterly Newsletter (Modula-2 News for MODUS, the Modula-2 Users’ Association) was mentioned in comp.lang.modula2 recently I tried to find content from this newsletter. All I could find is an article with the title "Automatic export of identifiers from the definition module" by Arthur Sale. Does anyone have more?
Some of you may be interested in the Language Breakdown in Open Source. Modula-2 does not (yet) appear there. The only language from the Wirthian family to show up is Pascal (and if you count it in, Ada).
In a sidenote about these pages I want to inform you about lots of corrected or deleted dead links and about some smaller reorganisations of content here and there. If you find out something is not working, please tell me.
I just visited the homepage of Modulipse and found out version 0.0.3 has been released in June. The announcement states that "it is now possible to work with Modula-2 source files that are outside the workspace". Thanks for adding this! Packages for Linux, Windows, Solaris and OS X are available for download.
A polished presentation of the Objective Modula-2 Grammar is available from the projects homepage now. The update was announced in comp.lang.modula2.
Chris Burrows uploaded an important piece of software for the history of Modula-2: "a) a zip file containing the source code of a Macintosh version of Wirth's single-pass Modula-2 compiler which generates MC68K code b) a copy of the release notes that accompanied the original Lilith version. This single-pass compiler was a significant improvement over the original 4-5 pass M2 compiler. It consists of approx 13,000 lines of source code compared to the original 19,000."
GNU Modula-2 now supports multidimensional arrays. Several messages to the GNU Modula-2 mailing list report progress on the feature.
The Modula-2 to Modula-3 translator m2tom3 is now available from this site as it is getting harder to find a working download location.
Version 2.35 of the Modula-2 FAQ was released: "Henceforth only a notice about this site (and no longer the entire FAQ) is distributed on USENET News and thence to Google). The FAQ will only be available here on Modula-2.com."
As I just updated the links to the recently made available ANTLR grammar for PIM and ISO Modula-2 I also want to point out that these ressources and the Xcode 3 language specification for Modula-2 are now available from http://modula2.net.
Jan Verhoeven published a modified version of a random number generator as described in Programming in Oberon by Niklaus Wirth and Martin Reiser.
Following a hint by Terry Ross in comp.lang.modula2 I found a lot of freely available articles related to Modula-2 originating from www.atarimagazines.com.
It seems we are close to a release of Aglet Modula-2, a Modula-2 compiler generating native PPC code for Amiga OS4. The compiler compiles itself since march and a beta was released in may. You may want to help in testing.
And last but not least the article Class is a Record - Wirth was right after all has been published. You are invited to discuss it in comp.lang.modula2.
Objective Modula-2 will from now on be accessible at http://objective.modula2.net/.
You may also be interested in a question asked in comp.lang.modula2: "I wonder what everybody's interest in Modula-2 is. Are you simply interested because you have to maintain legacy code or are you actually doing new development in Modula-2, if so which area? system development? embedded? GUI apps? Web? Or is your interest only due to being taught M2 at university and you're out of here as soon as the course finishes?". For those who do not use a browser to access newsgroups click here.
A new file for Xcode syntax colouring for PIM Modula-2 is available at the homepage of Objective Modula-2 (scroll down, it is near the bottom of the page). The announcement can be found in the archives of comp.lang.modula2.
A few weeks ago I mentioned Zonnon here. A post in comp.lang.modula2 now pointed me to a forum for the language - just in case you got interested.
Benjamin Kowarsch has kindly made ANTLR grammars for both PIM3, PIM LL(1) and ISO Modula-2 available. These were made for documentation purposes but can be used to generate syntax diagrams with ANTLRworks. The original announcement of the author was posted in comp.lang.modula2.
Other news: Latest entries to the GNU Modula-2 ChangeLog (and latest regression test results) have been reported to the GNU Modula-2 mailing list.
Zonnon is definitly not Modula-2 but a language closer to its ancestor than for example Oberon. A short description from Wikipedia: "Zonnon is a general purpose programming language in the Pascal, Modula-2 and Oberon family. Its conceptual model is based on objects, definitions, implementations and modules. Its computing model is concurrent, based on active objects which interact via syntax controlled dialogs. The language is being developed at ETH Zürich Institute for Computer Systems by Prof. Jürg Gutknecht. Zonnon introduces the concept of 'active objects' which are used to represent real world concurrent objects within computer programs." You may be interested in the language report and the compiler. While Zonnon can be used with Visual Studio 2005 (there are implementations for .NET and Mono/Eclipse) there is also a simple open source IDE called Zonnon Builder available.
Latest changes to the source code of GNU Modula-2 have been reported to the GNU Modula-2 mailing list.
There was some noise in comp.lang.modula2 recently. Some of you may be interested in the discussed topics.
Chris Burrows informed me about a second (1-pass) Modula-2 compiler included in Emulith (link to ftp-server).
Last but not least I want to interest you in a message and thread in the XDS Modula-2 forums. We may have a chance to bring life to a Modula-2 IDE. So please express your interest.
The homepage of the Kronos research group was updated recently. You may be interested in the sourcecode of the Kronos workstation which is now available under a BSD-license. There is also an emulator and a lot of amazing information on the history of the system. Wikipedia provides a good overview.
Other news: Sometimes people tell me about quite amazing things.
A few months ago the description of Objective Modula-2 was deleted by Wikipedia because of the lack of an implementation. Objective Modula-2 is "a hybrid between Smalltalk and Modula-2 based on the object model and runtime of Objective-C. The design is an example how native Cocoa/GNUstep support can be added to static imperative programming languages without implementing a bridge." Benjamin Kowarsch now informs via the GNU Modula-2 mailing list that the project is alive. Some papers and code can be fetched from the projects homepage. [UPDATE:] I just recognized the Objective Modula-2 Homepage is now also part of the Modula-2 website ring which has its home at ModulAware.com.
Jos Dreesen released a new version of Emulith, the register-level emulation of the Lilith hardware. Version 1.2 (release notes) introduces a native Windows port and some interesting new features. [UPDATE:] The official announcement by the developer is available. And did I mention that Emulith includes a Modula-2 compiler?
Three links to messages documenting the latest changes to GNU Modula-2: 21 Jan 2009, 04 Feb 2009, 04 Feb 2009.
Several messages document recent changes to the sources of GNU Modula-2: 05 Jan 2009, 07 Jan 2009 and 10 Jan 2009. Most important the implementation of type COMPLEX (COMPLEX, LONGCOMPLEX, SHORTCOMPLEX and if the architecture/gcc runtime supports them COMPLEX32, COMPLEX64, COMPLEX96 and COMPLEX128) is nearly complete.
Andreas F. Borchert announced the availability of some historic Modula-2 material in comp.lang.modula2. Available for download are "the sources of the ETH Zurich Multipass Modula-2 compiler for the Lilith and an emulator, written in C, which we used in 1983 to bootstrap to another platform. You'll find this material along with some instructions how to revive all this with the help of a simulator of the Interdata 8/32 from the Computer History Simulation Project at http://www.mathematik.uni-ulm.de/modula/history/."
Recent changes to the sources of GNU Modula-2 have been reported to the GNU Modula-2 mailing list.
Jos Dreesen released Emulith. This interesting piece of software is a register-level emulation of the Lilith hardware. "You will need a reasonably fast PC running Linux and having at least 1280x1024 resultion." The author reports that the emulator also runs under OS-X and CygWin/x (download via ftp).
Daniele Marangoni sent new files for Notepad++. The archive contains a Modula-2 API definition for Notepad++ v.5.0.3 to be used with the XDS Modula-2 compiler.
Gaius Mulley sent two interesting mails to the GNU Modula-2 mailing list. First one informs that "Steve Giess has kindly contributed a port of xmodula to gm2. I've just wrapped it up with a standard configure, Makefile, ChangeLog etc. It appears to work with the current cvs gm2 on a variety of i386 and x86_64 GNU/Linux platforms albeit the release number is 0.1."
The other mail informs that "Michael Lambert has kindly built gm2 for the Alpha platform running Debian GNU/Linux Stable. Both this platform and x86_64 are using the LP64 memory model and both platforms are seeing no regression test failures at present."
Web Family Tree is a freeware program by Peter J. Moylan that permits you to display your family tree in a web browser. It is a Modula-2 program using the common gateway interface. The source code is available. Those interested in this relatively simple way of getting a graphical interface for Modula-2 programs may be interested in the CGI related pages by Jan Verhoeven.
Other news: There is a new page describing howto create a Debian package for GNU Modula-2.
Binary packages of GNU Modula-2 0.68 are available since november 8th to the public capable of using Debian repositories. Please help to test the upcoming release of the compiler.
GNU Modula-2 0.63 has been released. There have been a lot of recent changes accompanied by discussions in the GNU Modula-2 mailing list. Big steps were made with the implementation of ISO features and the ISO libraries (The archives of the mailing list for October and September have more). Anyway, here is the release announcement, and an email with details on some changes and additions. Up to date documentation is also available. [Update:] Gaius Mulley published an updated changelog.
There is a simple page to help you getting started with Google Code Search. Most sites and download locations offering Modula-2 sources can already be found there. But some of you still might want to add something (you may also add CVS and Subversion repositories).
Some information on the progress and the plans related to GNU Modula-2 is again available at the GNU Modula-2 mailing list.
Latest changes to the source code of GNU Modula-2 have been reported to the GNU Modula-2 mailing list. [Update:] Gaius Mulley has made available a screencast showing that Python can catch GNU Modula-2 exceptions.
More and more parts of Murus are translated by Jan Verhoeven and published in the download section of the Mocka and Modula-2 mailinglist. Mr Verhoeven also announced a working version of a compiler for the PLOV language which seems to be a simplified version of Modula-2.
Thanks to Jos Dreesen more Lilith goodies are availeble now. "Most important is a binary image of the Lilith Systemdisk, and a subdirectory containing all files ( more then 700..) of that systemdisk. Among these files are: Medos binaries and source code. Modula-2 compiler binaries with source code. Lilith system utilities with source code. Bootfiles and system files. Lilith microcode source and assembler. Also available are hardware docu and some screenshots."
Page Six an IRC-bot written entirely in Modula-2 has got a new home temporarily.
A little program available in a lot of different programming languages seems to need improvement.
Two documents (Generics In Modula-2: ISO/IEC 10514-2 and Object Oriented Modula-2: ISO/IEC 10514-3) are now available from the Modula-2/Oberon-2 Sources Store (scroll down in the download-section). I could not open one of the files but the other one still was and is very interesting lecture. Maybe some of you are interested.
More and more interesting facts (for those interested in the history of Modula-2) about Modula-GM, the Modula-2 dialect used and developed by General Motors and Delco Electronics are published at the GMnext Wiki. One example is an article about the Development of Modula-GM, another one sums up the Development of Electronics for Indy 500 cars and engines.
Recent messagess to the GNU Modula-2 mailing list document interesting changes to the GNU Modula-2 compiler. Exception handling seems to work now and some examples are there to help you getting started. This is a major step towards ISO compliance.
A new project was started at SourceForge.net. It is called Modula2Plugin and still in a very early planning stage. Description from the project page: "The goal of this project is to provide an IDE for Modula-2 in the form of a plug-in for Eclipse and/or an add-in for Visual Studio (2008). It will be integrated with the XDS Modula-2 compiler."
Tom Breeden published a beta version of Aglet Modula-2, a compiler generating native PPC code he developed for Amiga OS4. Beta means please help in testing.
A special version of Rowley Modula-2 is now available from the languages section of Ram Meenakshisundaram's Transputer Home Page at classiccmp.org. While I knew there were versions of this compiler for OS-9/68K this seems to be a version for the Transputer HeliOS system. I didn't manage to open the archive so anyone out there who knows more?
Gaius Mulley reports recent changes to GNU Modula-2 to the gm2 mailing list: "With these fixes and additions the examples in gm2/examples/swig work. Specifically it now allows users to create shared libraries given an implementation module. The examples/swig/strio will now flush the buffers during the FINALLY statement sequence. Thus users should be able to implement Python modules using GNU Modula-2, so long as the top level definition module uses base types."
Some messages to the GNU Modula-2 mailing list document recent changes to the GNU Modula-2 compiler. There is also a message requesting your opinion about the implementation of shared library support. Finally basic Swig support is now available. "This allows scripting languages (perl, python and tcl) to access Modula-2 implementation modules." (Information about Swig).
The sources of Medos have recently been announced and are now available. Medos was the operating system of the Lilith workstation, the famous computer designed by Niklaus Wirth.
An updated version of the QDTools package by P. Guiochon is available from the download area.
And the latest changelog of GNU Modula-2 was posted to the mailing list.
Two recent messages by Gaius Mulley to the GNU Modula-2 mailing list document a lot of changes to the compiler. New data types and support for exceptions are only two examples from a long list of changes. Some explanations and clarifications can be found in another message.
Files needed for Modula-2 syntax highlighting with Notepad++ are now available from the download-area. A short readme is included in the archive. Thanks a lot for providing your work!
I just built GNU Modula-2 using the Cygwin Layer on a Windows Vista Laptop [UPDATE: download the build (~19MB)]. It compiled and installed out of the box (using the latest archive gcc-4.1.2+gm2-cvs-latest.tar.gz). I built a simple hello world program just to test functionality: GM2 and Vista - impressive (more information).
Some Modula-2 enthusiasts may be interested in a bunch of documents related to the Lilith personal computer. Chris Burrows found them and they are available from Bitsavers.org.
Some of you may also be interested in a syntax highlighter for Notepad++ which can be requested via email.
Looking around I found a page entitled Objective Modula-2 1.00 (Reference Implementation). Another infunctional link can be found at Softpedia. Both links were added in july 2007 and are broken at the moment (old infunctional adress). "Objective Modula-2 is an extension to Modula-2 which follows the Objective-C object model and retains the bracketed Smalltalk message passing syntax introduced in Objective-C. Like Objective-C, Objective Modula-2 is a reflective, object oriented programming language with both static and dynamic typing. It is intended as a safer alternative to Objective-C for Cocoa and GNUstep software development. It retains most of Modula-2's features, most importantly data encapsulation with nested modules, explicit import and export lists and strict type checking" (description taken from Wikipedia). Does anybody have more information? Who is the developer mentioned at the listed sites?
Interesting news from the GNU Modula-2 mailing list. Gaius Mulley uploaded some screen-casts to show you the complete process of building the GNU Modula-2 compiler. "If anyone is wanting to build GNU Modula-2, but is a little unsure how to go about it then this is how I build it on a Debian Etch 64bit machine."
David Moreno, developer of Modulipse, sent a message to the GNU Modula-2 mailing list describing howto build the compiler on a computer running Microsoft Windows using a Cygwin environment. Please note that some of the steps he describes are no longer necessary as they were applied to the sources of the compiler already.
Last but not least you may be interested in the latest changes to the gm2 compiler.
Modulipse, the Modula-2 IDE based on the Eclipse platform, got a homepage now.
GNU Modula-2 now supports constant literal constructors conforming to the ISO Modula-2 standard. Gaius Mulley reported this and a lot of other recent changes to the GNU Modula-2 mailing list. The archive of the mailing list also contains a thread called Modula-2 IDE which informs about Modulipse and the Alpha editor family. The latter provides a powerful Modula-2 mode and recently added support for GNU Modula-2.
Modulipse 0.0.2 was released last friday. The changelog informs about the following changes: procedure folding now works correctly for nested procedures, there is an overlay icon to distinguish Modula-2 projects now, code templates for procedure definitions were added, the user guide has been updated and reorganized, and unnecessary classes and icons were removed.
Click here to visit the News Archive.