InFeeo
Global
All
New
Language
Channel

c/technology

Technology

Owner @master@master · 4595 posts · 1 joined · Status active · Posting permission: Every logged-in user can post

German government approves new gas power plant auctions to back up wind andsolar(bundeswirtschaftsministerium.de)
Skip to main content News 13 May 2026, 15:00 Julian Wettengel Germany German government approves new gas power plant auctions to back up wind and solar Gas Image by Uniper. The German cabinet has signed off on a law to subsidise new gas-fired power plants through auctions, aiming to guarantee electricity supply as the country phases out coal and expands renewables. The first tenders are planned for late 2026, with the new plants expected to later switch to green hydrogen – but industry warns the timeline is tight, and environmentalists say the plan risks locking in fossil fuels for decades. [CORRECTS in second paragraph: annual costs for 2032-2045 up to 2.3 billion euros, not 2.4 billion euros as previously stated.] The German government has approved a new draft law to introduce auctions for government support for new gas-fired power plants and other electricity capacity to guarantee supply security as the country rapidly builds out wind and solar power and exits coal. The government expects the plans to cost up to 3 billion euros in the year 2031 – when all tendered capacity is set to be up and running – and up to 2.3 billion euros annually from 2032 to 2045. It plans to introduce a levy in 2031 to finance the plans, in line with EU rules. "Anyone who is serious about expanding renewable energy and phasing out coal must start building flexible power stations and new capacity now," said economy and energy minister Katherina Reiche in a press release. The draft law will now be debated in parliament. Auctions for state support Germany’s government plans to initially hold two sets of auctions for new backup power plants with a combined capacity of 11 gigawatts (GW), said the draft. Of these, the first tenders (8 September and 22 December 2026), covering 9 GW, are aimed at so-called ‘long-term capacity’, which is capable of supplying electricity continuously over an extended period, ensuring that even prolonged periods without sufficient renewable energy generation can be covered. It is likely that only gas-fired power plants will be successful in these auctions. Successful bidders receive remuneration for having electricity available once a facility is built, providing the financial incentive needed to invest in the first place.These plants must be 'hydrogen-ready'. According to the draft, this means a power plant that "is designed and constructed in such a way that the capability to operate on 100 percent hydrogen can be achieved by modifying plant components or the operation of the power plant." All power plants subsidised under the planned law must be climate-neutral by 2045 at the latest.The initial auctions will be followed by a further tender for new capacity totalling 2 GW without a long-term criterion (18 May 2027), giving batteries a chance. Further tenders will be held in 2027 and 2029, said the ministry. In addition to generation capacity such as power stations and storage facilities, flexible consumers will also be able to apply, and existing plants will be eligible alongside new ones. All tenders combined are intended to secure the total domestic demand for guaranteed capacity for the year 2031.In 2027, tenders will be held for the conversion of power stations to run on hydrogen. Furthermore, a bill to implement a comprehensive capacity market to secure supply from 2032 onwards will be presented in 2027, said the economy ministry. The new gas plants are seen as crucial to enable Germany to phase out coal as planned. Germany aims to bring the renewables share in power consumption to 80 percent by 2030. After the completion of the coal phase-out, the aim is to achieve greenhouse gas neutrality in the electricity supply. As the country exits the most climate-damaging form of fossil fuel electricity generation and rapidly expands renewable energies as part of its efforts to build a climate-neutral society by 2045, the country must ensure supply security. It aims to build up alternative capacity which it can switch on at times when intermittent wind and solar energy are insufficient to meet demand – so-called “controllable capacity”.Germany has decided that gas-fired units will play a major role during a transitional period, to later be converted to run on green hydrogen. Flexibility options such as large-scale batteries or demand management will also play a role. The government also plans to introduce a capacity market by 2027 to ensure supply security from 2032, beyond the earlier auctions.The government argues that there has been only hesitant investment – or, in recent years, a complete lack of investment – in essential infrastructure such as power plants. "In view of these obstacles and the observable wait-and-see attitude, a comprehensive investment and incentive framework is necessary to ensure security of supply at the usual high level," said the law reform draft. The introduction of a capacity market is therefore intended to incentivise investment in the secure supply of electricity, specifically in guaranteed capacity.Talks have been going on for years, and the plans for auctions were delayed several times, also due to the breakup of Germany’s previous coalition government. The European Commission gave the preliminary green light based on state aid rules at the start of 2026. It will have to approve the final design once the legislation has passed parliament. Industry urges swift parliamentary process Energy industry representatives have previously warned that it would take at least five years to connect new gas plant to the grid after the auctions. An international law firm in autumn last year already said it expects the auction to be delayed until the end of 2026. The business case for the new gas plants can only be guaranteed with additional state support because they would only run seldomly, when wind and solar power output are insufficient.The energy industry welcomed that the government finally adopted the new law, and urged a swift parliamentary process. “To ensure that this capacity is available by 2031, the schedule must be kept to,” said industry association BDEW head Kerstin Andreae. “The draft should now move swiftly through the parliamentary process so that the first tenders can be launched before the end of 2026.” Local utility association VKU called for changes, saying the current draft favoured a small group of large energy companies. “Disproportionately high financial guarantees, impractical contractual penalties and costly technical requirements pose significant obstacles for small and medium-sized enterprises,” said a spokesperson. “This puts municipal utilities at a disadvantage, even though they play a vital role in ensuring a secure local electricity supply.” Environmentalists warn of fossil fuel lock-in The environmental and development organisation Germanwatch said the draft is "a dangerous perpetuation of dependence on fossil fuels," adding that "it relies one-sidedly on the promotion of fossil gas-fired power stations and systematically disadvantages climate-neutral solutions such as battery storage and flexible demand." It added that 'hydrogen-ready' is defined "in the vaguest possible terms," leaving it unclear how and by whom this hydrogen compatibility must be demonstrated. "In effect, this means that any fossil fuel-fired power station could be awarded a contract in the tendering process," it said. Environmental NGO WWF Germany also criticised the planned law, arguing that new fossil fuel-fired power stations “will lock us into a path-dependent future for decades to come — financed by a levy whose amount and duration are not specified in the draft.” The organisation called on parliament to revise the draft to ensure better conditions for battery storage facilities, introduce a science-based definition of ‘hydrogen-ready’, and set out a plan for the ramp-up of hydrogen. News 16 Jan 2026, 11:21 Julian Wettengel Germany says new gas power plants will be online by 2031 following EU deal News 22 Apr 2026, 12:10 Joey Grostern Germany plans to hold first gas power plant tender by September, cut small solar support All texts created by the Clean Energy Wire are available under a “Creative Commons Attribution 4.0 International Licence (CC BY 4.0)”. They can be copied, shared and made publicly accessible by users so long as they give appropriate credit, provide a link to the license, and indicate if changes were made. Share: Ask CLEWResearching a story? Drop CLEW a line for background material and contacts.Get support Reporting News Factsheets Deep dives Country guides Training Research tours Masterclasses All opportunities Connecting CLEW network Network map From the network Journalism grants Tools Get support Find an expert EU agenda Germany agenda Journalism for the energy transition Up
Modula-3 History Collection on Computer History Museum(softwarepreservation.computerhistory.org)
Paul McJones, editor paul@mcjones.org https://mcjones.org/dustydecks/ This is an annotated collection of documents, source code, and other materials concerning the birth, development, and use of the Modula-3 programming language. Modula-3 is a programming language designed in the late 1980s by Luca Cardelli, Jim Donahue, Mick Jordan, Bill Kalsow, and Greg Nelson (the defining report was written by Lucille Glassman and Greg Nelson). It is intended to be both safe and efficient for a wide range of systems and application programming: from low-level code like device drivers to program development tools to scientific or business applications. Safety means the runtime state of a program is guaranteed to be faithful to the language semantics. Modula-3 was also intended to be as simple as possible given these goals; the designers exceeded their 50-page budget for the language definition by only six lines of text plus the syntax summary. The language features include interfaces, objects, generics, threads, isolation of unsafe code, garbage collection, exceptions, and subtyping. Many of these have become more widespread by 2025, but in 1990 [Nelson1991] it was much less common, especially in a language supporting non-heap allocated data structures. Modula-3's existence stems from a suggestion by Maurice Wilkes to Niklaus Wirth that Modula-2+ be revised and standardized as Modula-3. (Modula-2+ extended Wirth's Modula-2 with threads, garbage collection, and exceptions based on previous experience at Xerox PARC with Mesa and Cedar. See Software Preservation > Mesa and Modula-2+.) A committee of people from Digital Equipment Corporation Systems Research Center (Cardelli, Kalsow, and Nelson) and Olivetti Research California (Donahue and Jordan) published the initial Modula-3 design in August 1988 [Cardelli1988a], as implementations began at both labs. Experience from writing Modula-3 compilers in Modula-3 led to a few revisions and generalizations in November 1989 [Cardelli1989a]. A final set of revisions were completed by December 1990 [Nelson1990]. In 1991, the book Systems Programming with Modula-3 introduced the language to a wider audience [Nelson1991]. Chapter 1 ("Introduction") of [Nelson1991] provides additional details about the history of the design processs and the nature of the language. Chapter 8 ("How the language got its spots") is a fictional dialogue exposing a number of issues faced by the designers. Implementations began at both companies immediately after the initial language definition was published. Olivetti Modula-3 was used inside Olivetti for a time, but died out after Olivetti Research California was abruptly shut down in February 1991. All subsequent Modula-3 development (except a short-lived GNU project at UMass Amherst) was based on DEC SRC Modula-3. Olivetti Modula-3 was implemented by Mick Jordan, Trevor Morris, David Chase, Steve Glassman, and Marion Sturtevant. [Jordan1990, Nelson1991] The compiler was based on a general Abstract Syntax Tree (AST) mechanism called M3AST. Tools based on M3AST included the compiler front-end (parser, semantic analyser, and a control module), a code generator that produced C source code, the pre-linker (which dealt withglobal information such as determining module initialization order and checking for consistent compilation of interfaces and modules), and a "pickle" (object serialization/deserialization) stub generator [Jordan1990]. The first public release was October 1989 [Donahue1989]. After Olivetti Research California (ORC) shut down in February 1991, Mick Jordan and Steve Glassman moved to DEC SRC; Jordan brought the AST-based toolkit with him. SRC Modula-3 was implemented by Bill Kalsow and Eric Muller [Nelson1991]. It was bootstrapped via SRC's existing Modula-2+ language and compiler. The original version generated C and invoked GCC to compile it, but starting with version 3.0 it was modified to produce an intermediate language that could drive different backends. The most widely used backend was a small program that read a textual version of the intermediate language and called the GCC code generation libraries. For more details, see [Kalsow 1994, 1995a, 2021]. Bill Kalsow left SRC in July 1995, and development of the compiler at SRC shifted to maintenance mode. Nevertheless, other than the Olivetti compiler, all subsequent Modula-3 compilers and distributions were based on the SRC Modula-3 code base, with contributions from a variety of people. For a full history of releases 1.0 through 3.5.3 (release 3.6 was minor changes to 3.5.3), see [Heydon1997]. Prime Time Freeware for UNIX, Volume 3.1B via archive.org In the late 1980s, Eliot Moss at the University of Massachusetts Amherst became interested in integrating programming language and database features by adding persistence to programming language datatypes. He and his research group designed the Mneme persistent object store and then used it to prototype Persistent Smalltalk and Persistent Modula-3 [Moss1990]. Persistent Modula-3 [Hosking1990] was based on a new Modula-3 compiler, since they began before DEC SRC Modula-3 was released [Hosking1991]: "We have chosen the GNU C compiler as a base on which to build, its portability meeting the first of our requirements, and its optimization phase allowing us to attack the problem of performance. Our implementation effort involves the construction of a Modula-3 front end to the compiler, along with the necessary modifications to the back end to support persistence and garbage collection." The compiler generated assembly language and tables to allow the locally-developed garbage collector to precisely locate all collectible objects [Diwan1992, Hudson1991]. The Caltech Mosaic C Multicomputer was based on single-chip nodes with a two-dimensional interconnect. [Seitz1993] Rustan Leino designed Modula-3D, a distributed extension of Modula-3 for the Mosaic, for his Master’s thesis [Leino1992, 1993]: "I think [the Mosaic] had 256 cores (or maybe that was the eventual goal), each of which had 64 KB of word-addressable (16-bit words) RAM. My runtime system, with garbage collector, interprocess communication, and network objects used 32 KB of that memory on each core." [Leino, personal communication, 2021] Abstract: In this note, we extend an object-oriented language to support programming fine-grain multicomputers. The new constructs have a simple semantics and provide a nice way to write distributed programs. The semantics of the constructs are independent of how a program is distributed. We also show a set of simple conditions under which even the outcome of a program is independent of how its control and data are distributed. We show some strengths and weaknesses of the programming model, and describe and critique our implementation of the language. Mary F. Fernández investigated the runtime overhead of extra indirections due to the interaction between Modula-3's opaque types and separate compilation. She developed link-time optimizations to avoid this overhead: "We describe opportunities for link-time optimization of Modula-3 and present two link-time optimization techniques. Data driven simplification is a new technique. Using a program’s type hierarchy, it recovers completely the cost of opaque types and reduces the runtime overhead of methods. It also reveals other opportunities for optimization, such as constant and type propagation ancl procedure inlining and cloning. Profile-driven optimization uses profile data to transform those procedures that can benefit most from optirnizations made possible by data-driven simplification. Moreover, our techniques make it as easy to optimize procedures in libraries as those in applications." [Fernandez1995b] To test these ideas, she ran benchmarks on a modified version of DEC SRC Modula-3 version 2.11, whose backend generated C source code. She used her mlcc and mld, a machine-independent C compiler and a retargetable, optimizing linker. She only needed to make modest changes to the Modula-3 compiler, adding 87 new lines of code. Running benchmarks, she found: "This is a version of Modula-3 running on a plain DOS-PC. It is mainly addressed to students of undergraduate programming courses and other Modula-3 programming beginners. It was developed on the Department of Informatics, University of Klagenfurt. We use it in our introduction into programming courses. The system implements version 2.09 of the Digital Systems Research Centers Modula-3 implementation. ... The projects were supervised by László Böszörményi." [Weich1996] "I cross-compiled from a DEC-Station to the DOS-Extender of DJ Delorie, which was a platform for the GNU C Compiler on MS-DOS." [Preschern2026] Klaus Preschern, who had been an intern with Bill Kalsow at DEC SRC in 1992, developed an alternative Modula-3 PC system, called EX32 after leaving the University of Klagenfurt. His first release was 27 March 1994 and was based on SRC M3 Version 2.11 [Preschern2026]. The final release was based on SRC M3 Version 3.1: After completing the MS-DOS port, Preschern carried out a port of DEC SRC Modula-3 3.6 to IBM's OS/2. There were two different variants for thread scheduling: one used a virtual timer (like a Unix signal) and the other used native threads. The first variant worked on OS/2 3.0 (Warp) and OS/2 4.0 (Merlin) and the second one, which used the x86 backend for code generation, supported native threads on Merlin. Both variants supported building of DLLs. With the help of XFree86 for OS/2 Trestle was available for both variants and the Merlin version included the Zeus algorithm animations. Preschern recalls [Preschern2026]: "The Modula-3 runtime system required suspending threads during garbage collection. As far as I remember, the Windows system calls for suspending other threads became available for Merlin, because IBM provided a toolkit to support porting of Windows software to OS/2, in an attempt to keep OS/2 alive. With the system calls, provided with Merlin for this Windows compatibility layer, it was then possible to implement calls like "SuspendOthers()" in RTThread.i3 for OS/2 threads, to suspend all threads in a process, except the caller." Farshad Nayeri learned Modula-3 as a graduate student at UMass Amherst under Eliot Moss. Later, Nayeri and his group at GTE Laboratories used Modula-3 to build a Distributed Object Manager [Nayeri1994]. Nayeri met Geoff Wyant through comp.lang.modula3; when they realized both worked in the Boston area they got together for lunch. Wyant was using Modula-3 for a series of distributed systems projects at Sun Microsystems Laboratories [Wyant1994, Waldo1995, Wollrath1995]. With encouragement from Wyant, Nayeri and his wife Lauren Schmitt founded Critical Mass in Cambridge, Massachusetts. In August 1995 they visited DEC SRC with a proposal for a cooperative partnership whereby Critical Mass would create a family of products based on SRC technologies and offer them with commercial support. The products were to include: Each of these products would be a family, with core, team, and enterprise versions. By fall 1995 the plan for Photon had evolved to a web-based user interface, "allowing the user to readily browse, build, and manage large projects locally or over a network" [Schmidt1995]. Bill Kalsow joined Critical Mass in early 1996 and contributed greatly to the system. Among other things, support of the Windows NT platform was improved [Kalsow1997]. Michel Dagenais at Positron Industries was an early support customer for Positron's Power911 system. In late 1996, Critical Mass released Reactor, a web-based fast-turnaround environment for Modula-3 programming. In the early days, the possibility of Geoff Wyant joining Critical Mass had been discussed, but on 16 June 1996 a tragic accident in a light plane claimed Wyant's life [Sproull1996]. As Java emerged on the scene, Critical Mass built several products to take advantage of its increasing popularity. The first was JVM, a Java virtual machine written in Modula-3 that could be embedded in an application (coded in C, C++, or Modula-3), allowing Java to be used as an extension language. Raygun was a final, unreleased, product: a flexible web-based cross-referencing tool that extended Reactor (which in turn extended m3browser [Kalsow1995b]) to additional languages including Java. By 1998, Critical Mass had terminated active development of Modula-3. They open-sourced the code base in 2001. Support and development was taken over by Elego Software Solutions in Berlin. The source code for Reactor (now called CM-IDE) was open-sourced in June 2008. Unless otherwise noted, the HTML files below are from cmass.com via archive.org. [Kalsow1997] describes the compiler and runtime changes made by Critical Mass up through April 1997. Here's a brief summary: [Source: About CM3 at modula3.github.io] "With release 3.6, in early 1996, DEC SRC Modula-3 reached a mature state. Bill Kalsow, responsible for the compiler, left DEC SRC around that time and later joined Critical Mass, a commercial Modula-3 vendor. Since then, a number of advanced Modula-3 projects at DEC SRC continued in areas such as 3D animation, static verification, constraint based geometrical editor, and distributed applications. In many other areas, including the compiler and base libraries, few updates were made at DEC SRC. Moreover, these updates are available separately from the release and must be integrated manually. At the same time, several contributions appeared from Modula-3 programmers around the world and included several bug fixes, enhancements, and new libraries or tools such as a more platform independent version of Pickle, an integrated code generator for Linux ELF, a simplified single process version of m3build-m3-quake, a port of SRC Modula-3 to NT386 using gnu-win32, and several new packages such as CVSsup, M3COCO, and M3 TXL. After consultations with several key academic Modula-3 programmers with similar needs, including Peter Klein, Blair McIntyre, and Richard Watts, it was decided to create a new distribution based on SRC Modula-3. The new distribution is under CVS version control and is accessible to remote maintainers. The first public release of PM3 included SRC release 3.6 with all patches applied, a fast integrated Linux ELF code generator, a simplified m3build-m3-quake with accordingly simplified templates for platform customization, m3cc and m3gdb based on newer versions of gcc and gdb, full platform support for NT386GNU through gnu-win32, a simplified bootstrap and build process, a directory hierarchy to organize the 130+ packages, SGML/HTML based documentation, and an automated release procedure to produce updated sources, bootstraps and binaries every week." [Dagenais, history.html, pm3 version 1.1.15 of 5 Sep 2000] "... I began taking care of the comp-lang-modula3 FAQ in 1993 and stopped in 2002. From September 1995 to August 1996, I was Director of Software Development at Positron Industries, in a team building their next generation 911 Emergency Call system in Modula-3. We used the services of Critical Mass (Farshad Nayeri and Bill Kalsow) to get the incremental garbage collector ported to Windows NT. I later maintained the Polytechnique Montréal distribution of Modula-3 (PM3), with some documentation and minor tools added. In 1996-1997 I wrote an online book draft, Building Distributed OO Applications: Modula-3 Objects at Work [Dagenais1997] and used it a few years in a course on Object Oriented programming. In 2002, coming back from a sabbatical, I gave up on Modula-3 (and PM3 and the FAQ) to concentrate on tracing and performance analysis tools for Linux." [Michel Dagenais, personal communication, 30 August 2025] After Dagenais gave up on PM3, Elego Software Solutions maintained it from 2001-2012, then maintenance moved to GitHub (https://github.com/modula3/pm3). The snapshots and diffs of versions 1.1.0 through 1.1.15 were provided by Michel Dagenais. SPIN is an extensible operating system whose extensions run in the kernel; protection of the kernel from the extensions and between extensions is implemented through software (both compile-time and runtime) rather than hardware mechanisms. The kernel and the extensions are written in a version of DEC SRC Modula-3 (perhaps version 3.1?) with some additions and changes [Hsieh1996]: As a graduate student, Antony Hosking had worked with Eliot Moss on a Persistent Modula-3 based on their GNU Modula-3, Mneme persistent object store, and language-independent garbage collector toolkit. Hosking then joined the faculty at Purdue University, continuing his work on persistence, this time exploring orthogonal persistence: objects are persisted because they can be reached from a client-specified database root, rather than being declared at compile time to be an element of a persistent type. Persistent Modula-3 made no changes to the compiler. "We track the Polytechnique Montréal Modula-3 release (version 0.x.y of Persistent Modula-3 corresponds to version 1.x.y of Polytechnique Montréal Modula-3), which is itself based on SRC Modula-3 release 3.6" [Hosking2003]. The main additions are the new packages database/GRAS3 and database/persistence; these have also been merged into https://github.com/modula3/pm3. Most of the distributions seem to include only executables for the compiler/build/IDE, but include source for the libraries. There are full source distributions and patches in the old/ subdirectory: "Cambridge Modula-3 is a variant of SRC Modula-3 developed at the University of Cambridge Computer Laboratory. It includes an updated build system with configuration file support (no more having to rebuild the distribution whenever you move it), language additions to allow debugging, NT386GNU support for gcc on Windows 95 and NT, a number of extra packages, and Blair MacIntyre's portable pickle package version 2.0. Its main aims are: "Cambridge Modula-3 was developed to have an updated build system with better configuration file support. It extends SRC M3 with a few extra packages, and includes some other enhancements including pragmas. Most, if not all, of the Cambridge Modula-3 enhancements have been folded into the Polytechnique Montreal Modula-3 system. I believe that CAM3 is slowly being phased out, but I could be wrong. Currently, the web pages and software distribution of CAM3 don't seem to be accessible by the public, if they still exist at all. (The link was https://www.cl.cam.ac.uk/m3doc/linux/cambridge.html)." [Olaf Wagner, modula3.org/implementations, July 1998] "Ezm3 is a simpler, more portable distribution of the Modula-3 compiler and runtime libraries. It is designed for people who would like to install CVSup on their systems as quickly and as painlessly as possible. Ezm3 is derived from the robust and comprehensive PM3 release of Modula-3. Only the components and features which are needed by CVSup were retained. Features which made the package harder to port and install were removed. The goal of Ezm3 is for you to be able to install Modula-3 on your system in one try, without any patching or false starts." [Polstra, EZM3: An Easier Modula-3 Distribution, 2001] For a number of years, FreeBSD development was based on the CVS revision control system, using the program CVSup to replicate CVS repositories. CVSup was written in Modula-3, and its author, John D. Polstra, maintained the EZM3 distribution of Modula-3. EZM3 was based on Polytechnique Montréal Modula-3 (perhaps version 1.1.15?). Elego is a software product and services company in Berlin. After Critical Mass open-sourced CM3 in 2000, Elego began providing the infrastructure for website, repositories, continuous integration, and bug tracking. In March 2002 Elego also took over the repository of the other active Modula-3 distribution, PM3, which had been maintained by Michel Dagenais at Polytechnique Montréal. After more than a decade, all Modula-3 based projects at Elego had been terminated, and it was no longer possible to justify the resources being expended. All the development activity moved to github.com. [Olaf Wagner, personal communication, 1 September 2025] "CM3 5.1 is the first open source release of the Modula-3 compiler and bundled software from Critical Mass, Inc. It does currently not contain other products that were created by Critical Mass. The CM3 graphical user interface is called CM3-IDE. It is based on the original Reactor product produced by Critical Mass." [https://www.cs.purdue.edu/homes/hosking/m3/] "PM3—Polytechnique Montréal Modula-3 is the largest incarnation of the free Modula-3 development environments. It builds upon the SRC M3 base and includes enhancements from Cambridge Modula-3. With over 15,000 files of source code, there is a large and solid existing base of software to develop upon. Fortunately, there are binaries available for the most popular platforms. In 2002, the server at Polytechnique Montréal has been shut down; CVS repository and web services for PM3 are now continued at the server of elego Software Solutions GmbH, Berlin, Germany. Lately, Antony Hosking has merged the newer compiler from the CM3 distribution, and contributed all the persistence work done in his University research projects." [https://www.modula3.org/implementations/] During the Elego era, Antony Hosking converted the CM3 thread library to use native threads on POSIX platforms (the Win32 version had always used native Win32 threads). He also updated the garbage collector to use a mostly-concurrent, mostly-copying algorithm [Hosking2006]. The best overall description of CM3 during the elego years (2001-2012). Documentation is comprehensive. Download has a number of old releases. Resources>CM3 Change log itemizes all source changes, year by year. After Elego Software Solutions could no longer justify dedicated support for Modula-3, the cm3 and pm3 CVS repositories were moved to github.com/modula3 by Antony Hosking. The pm3 repository combines Polytechnique Montréal Modula-3 and Purdue Persistent Modula-3. This distribution is based on a merge of the Polytechnique Montreal Distribution of Modula-3 with the public release of CM3, plus enhancements for persistence by Antony Hosking, Jiawan Chen and Adam Welc at Purdue University, and packages (libraries, programs and documentation) from other sources. The Polytechnique Montreal Distribution of Modula-3 is based on DEC SRC Modula-3 release 3.6 with enhancements by Louis Dubeau, Jerome Collin and Michel Dagenais, and several packages (libraries, programs, and documentation) from other sources. The online documentation may be accessed before the build by pointing your favourite WWW browser to intro/src/index.html." https://modula3.github.io replicates some of the information previously located at https://modula3.elegosoft.com, https://www.modula3.org, and https://www.opencm3.net. For earlier versions, see [Birrell1987, 1989] in Software Preservation > Modula-2+. "This manual describes a collection of interfaces defining abstractions that SRC’s programmers have found useful over a number of years of experience with Modula-3 and its precursors. We hope the interfaces will be useful as a ‘starter kit’ of abstractions, and as a model for designing and specifying abstractions in Modula-3" [Horning1993]. [The first time Jim saw the cover of the printed report he told me, "For the rest of your life you'll regret not putting your name first ." Now is the time to acknowledge that error.—PMcJ] These interfaces were released in version 3.1 of DEC SRC Modula-3. [*] Fingerprints are short tags for larger objects. They have the property that if two fingerprints are different then the corresponding objects are certainly different and there is only a small probability that two different objects have the same fingerprint The latter event is called a collision. Trestle is an object-oriented window system based on the abstraction of a Virtual Bitmap Terminal (VBT) [Manasse1991, Manasse1992]. An earlier version of Trestle was built using Modula-2+. Nearly 30 complete Modula-3 programs are presented to illustrate Trestle. VBTkit is a user interface toolkit based on Trestle. It provides a library of "widgets" and the support software that makes it easy to customize these widgets and to construct more widgets [Brown1993a]. VBTkit was influenced by an earlier system written in Modula-2+. See [Cardelli1987, 1988b] in Software Preservation > Modula-2+. FormsVBT is a system for building graphical user interfaces. It consists of a language for describing an application’s user interface, a stand-alone application for constructing the user interface, and a runtime library for communicating between an application’s code and its user interface. It extends Trestle and VBTkit [Brown1993b]. It is based on the design of an earlier Modula-2+ version: see FormsVBT in Software Preservation > Modula-2+. JVideo extends Trestle, FormsVBT, and Obliq to support VideoVBTs that can display video in a window, using the J-Video hardware that was available for DEC Alpha-based workstations running Digital Unix, circa 1995. This work was done to support the Argo application, but was available for general use. WebVBT is a VBT that displays an HTML page from the World-Wide Web. The page may contain oblets. Oblet is an active object that is distributed over multiple machines. Oblets are written in Obliq, an object-oriented scripting language for distributed computation. The high-level support provided by Oblets makes it easy to write collaborative and distributed applications. ANIM3D is a 3D animation library targeted at visualizing combinatorial structures; it is particularly useful for algorithm animation.