This file describes recent user-visible changes in gm2.  Bug fixes are
not described.  There are more details in the man and info pages.

VERSION 1.9.4
=============

* More GCC error routines utilized for error messages, erroneous
  subexpressions are more accurately reported.
* Complete type checking now performed.

VERSION 1.9.3
=============

* GCC error routines utilized for error messages.
* complete whole number runtime range error detection finished.
* improved m2-plugin which analyzes the call graph and will issue
  warnings if the compiler detects a exported procedure will cause
  a range error.  The plugin will issue an error if the range error
  will be called from the module constructor/deconstructor.

VERSION 1.2.0
=============

* New improved more accurate source/line correlation in debugging output.
* -fm2-g generates nops to further improve debugging single stepping.
* -fm2-whole-program whole program optimization available.
* works with gcc-5.2.0 under x86_64, x86_32, arm 64 bit and arm 32 bit.

VERSION 1.0.4
=============

* Bug fixes to release 1.0

VERSION 1.0
===========

* All ISO libraries are complete.
* All ISO language implemented.
* All regression tests pass on both x86_64 and x86_32 Debian GNU/Linux
  platforms.

VERSION 0.68
============

* more ISO library modules are implemented.
* many errors are much more informative and indicate what the
  compiler has seen and what it expects.

VERSION 0.63
============

* many ISO library modules are implemented.
* Exception handling is complete and it can coexist with swig.
* all errors now include column information.  Also added -fxcode
  option which issues errors in Apple Xcode format.
* shared libraries are now implemented, to link against the shared
  libraries use the new option -fshared.  Likewise to generate a
  shared library use the -fshared option.
* the keyword FINALLY is now implemented and both the initialization
  and finalization blocks map onto GNU/Linux shared library
  constructor and deconstructors.
* the PIM libraries are built with -O0, -O2, -O2 -fshared, -fshared.
* a new option -fswig automatically generates a swig interface file
  corresponding to the definition module being compiled.
  This allows Python and other scripting languages to call Modula-2
  modules.
* new options, -fobject-path, allows users to specify the path for
  all objects whereas -I specifies the path for the library sources.
* -fmakeinit option introduced which will generate a file
  _m2_modulename.c in the current directory.
* introduced fixed sized types in the SYSTEM module.

VERSION 0.62
============

* all language options changed to -f.  Warning options are
  still -W.  Introduced memmove to Builtins.def.
* Introduced gm2/gm2-libs-pim/BlockOps.{def,mod}
* gm2/gm2-libs-pim/BitByteOps.{def,mod}:  added.
* -O now works on compiler and passes make gm2.paranoid.

VERSION 0.61
============

* builds when grafted onto gcc-4.1.2

VERSION 0.52
============

* tagged ready for branch for gcc-3.3.6 so that the head
  can be developed with gcc-4.1.0

VERSION 0.51
============

* all regression tests pass on LP64 and i386 GNU/Linux

* declaration of variables at particular addresses is now implemented.
  Now gm2 is a full PIM Modula-2 compiler and hence the formal release.

VERSION 0.50
============

* all regression tests pass on LP64 and i386 GNU/Linux, i386, Mac OS X.3 G5

* gm2-harness 0.7 will download, patch and build gcc, gdb, gm2 with the
  SET and TYPE enhancements below. gm2-harness-0.7 also honours the
   --prefix= option.

* Much better dwarf-2 debugging support and when used with
  a patched gdb-6.3 the programmer can display RECORDs,
  ARRAYs, SETs, subranges and constant char literals in
  Modula-2 syntax.

* it currently complies with Programming in Modula-2 Edition 2, 3 and 4.
  Users can switch on specific mutually exclusive features by using
  -Wpim or -Wpim2.

* gm2 supports full PIM Modula-2 (except variables located at
  particular addresses).

* profiling (-p) option is now available.

* module priorities now implemented.

* Logitech compatible libraries: Break.def, CardinalIO.def,
  Conversions.def, DebugPMD.def, DebugTrace.def, Delay.def, Display.def,
  ErrorCode.def, FloatingUtilities.def, InOut.def, Keyboard.def,
  LongIO.def, Random.def, RealConversions.def, RealInOut.def,
  Strings.def, Termbase.def, Terminal.def, TimeDate.def have been implemented.

* all Ulm libraries are available.

VERSION 0.49
============

* supports sets of any ordinal size (memory permitting).

* implements ISO Modula-2 SYSTEM which can be switched on via: -Wiso.

* easy interface to C, and varargs can be passed to C routines.

* University of Ulm libraries are installed together with the compiler
  and can be accessed via: -Wlibs=ulm

* some Logitech libraries have been implemented and can be accessed via:
  -Wlibs=logitech

* coroutines have been implemented in the PIM style and these are accessible
  from SYSTEM. A number of supporting libraries (executive and file descriptor
  mapping to interrupt vector libraries are available through the
  -Wlibs=pim-coroutines switch).


VERSION 0.42
============

* MinGW cross compilation port released.
  Please see http://floppsie.comp.glam.ac.uk/Glamorgan/gaius/web/gm2-mingw.html
  for building details.

VERSION 0.41
============

* native sparc port passes make gm2.paranoid and make check-gm2

* native i386  port passes make gm2.paranoid and make check-gm2

* passes all 1350 regression tests

* builds with gcc-3.3.2

VERSION 0.40
============

* brought GM2 up to date with gcc-3.3.1

* many, many bug fixes and no patch is now required in the garbage collection
  of gcc-3.3.1

* builds under Redhat 9.0 and Suse 9.0

* added the LONGCARD data type.

* LENGTH is now mapped onto M2RTS.Length if the parameter is not a constant
  at compile time.

* standard procedures can be called inside constant expressions.

* introduced examples/pthread

* introduced a tool, h2def, to aid production of DEFINITION MODULE FOR "C" modules
  from C header files.

* added MathLib0 module, added svga example.

* added access to thirty one gcc built-in functions.


VERSION 0.33
============

* implemented large sets.

* implemented ISO compliant sets.

* when gm2 is invoked with -gstabs a patched gdb will
  display set contents. This also works well with SET OF CHAR.

* definition modules no longer have to explicitly export
  identifiers.

VERSION 0.32
============

* gm2 can be built as a native or as a strongarm cross compiler.

* the C preprocessor can be invoked and it processes both definition and
  implementation modules.

* error reporting understands preprocessed Modula-2 source.
