gm2
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gm2] new release of gm2 available


From: Gaius Mulley
Subject: [Gm2] new release of gm2 available
Date: Thu, 02 May 2002 17:17:51 +0100

Hi,

I've finished some changes/restructuring gm2. A number of modules have
been rewritten, replaced and the directory structure has changed
radically.

Internal alterations
====================

Internally many (but not all yet) data structures are now dynamic. The
biggest change in this area was to use the new Strings module which
allows for dynamic strings.  This single alteration touched nearly
every compiler module.

Many of the references to StrIO and NumberIO have been replaced with
M2Printf using the new String data type.

GM2 now uses a flex built lexical analyser and a machine built parser.

The Makefile structure has been altered to remove many recursive makes
and all symbolic links. (Hence the directory alterations).

p2c has been improved to handle opaque types and simple set types.

gm2m and gm2l are now built from ebnf specifications and are called by
the front end `gm2' program.

User level alterations
======================

GM2 now parses preprocessed source and generates debugging line
numbers to the original source.

-Wcpp now runs the C preprocessor on definition modules and
implementation modules.

-Wmakeall generates an internal makefile and runs make on it.  This
allows a user to build a project by specifying the top level
module. (See gm2/examples/map and gm2/examples/hello for simple
examples of its usage).

DEFINITION FOR "C" is now implemented, so users can write wrappers for
C libraries. C wrappers can contain varargs.  GM2 converts arrays and
constant strings into addresses when calling a procedure declared
inside a DEFINITION FOR "C" module. See gm2/examples/callingC for a
printf example of hello world.

I've tested the compiler under GNU/Linux (Debian) Woody and Debian
stable. The compiler compiles itself reliably and I use it when
developing etc. However the code is still definitely alpha..

The gm2/examples/map example builds a random maze (it takes some time
to run - say 30 seconds on an Athlon 1400 Mhz). It is included as a
simple example to show linking via the -Wmakeall method.

I believe all modifications have been checked into CVS
and there is also a tarball of gcc-3.0.4 + gm2 available.
See the GM2 homepage
<http://floppsie.comp.glam.ac.uk/Glamorgan/gaius/web/GNUModula2.html>
for details.

Enjoy, and feedback is very welcome..

Gaius




reply via email to

[Prev in Thread] Current Thread [Next in Thread]