| This file describes recent user-visible changes in gm2. Bug fixes are |
| not described. There are more details in the man and info pages. |
| |
| gm2 is now in the GCC tree and therefore these version numbers are |
| historical. |
| |
| VERSION 1.9.5 |
| ============= |
| |
| * More subexpressions tokens are created and accuracy of error positions |
| within subexpressions has been improved. |
| * the GCC switch -fanalyzer can be used with Modula-2. |
| |
| 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. |