1 This file describes recent user-visible changes in gm2. Bug fixes are
2 not described. There are more details in the man and info pages.
4 gm2 is now in the GCC tree and therefore these version numbers are
10 * More subexpressions tokens are created and accuracy of error positions
11 within subexpressions has been improved.
12 * the GCC switch -fanalyzer can be used with Modula-2.
17 * More GCC error routines utilized for error messages, erroneous
18 subexpressions are more accurately reported.
19 * Complete type checking now performed.
24 * GCC error routines utilized for error messages.
25 * complete whole number runtime range error detection finished.
26 * improved m2-plugin which analyzes the call graph and will issue
27 warnings if the compiler detects a exported procedure will cause
28 a range error. The plugin will issue an error if the range error
29 will be called from the module constructor/deconstructor.
34 * New improved more accurate source/line correlation in debugging output.
35 * -fm2-g generates nops to further improve debugging single stepping.
36 * -fm2-whole-program whole program optimization available.
37 * works with gcc-5.2.0 under x86_64, x86_32, arm 64 bit and arm 32 bit.
42 * Bug fixes to release 1.0
47 * All ISO libraries are complete.
48 * All ISO language implemented.
49 * All regression tests pass on both x86_64 and x86_32 Debian GNU/Linux
55 * more ISO library modules are implemented.
56 * many errors are much more informative and indicate what the
57 compiler has seen and what it expects.
62 * many ISO library modules are implemented.
63 * Exception handling is complete and it can coexist with swig.
64 * all errors now include column information. Also added -fxcode
65 option which issues errors in Apple Xcode format.
66 * shared libraries are now implemented, to link against the shared
67 libraries use the new option -fshared. Likewise to generate a
68 shared library use the -fshared option.
69 * the keyword FINALLY is now implemented and both the initialization
70 and finalization blocks map onto GNU/Linux shared library
71 constructor and deconstructors.
72 * the PIM libraries are built with -O0, -O2, -O2 -fshared, -fshared.
73 * a new option -fswig automatically generates a swig interface file
74 corresponding to the definition module being compiled.
75 This allows Python and other scripting languages to call Modula-2
77 * new options, -fobject-path, allows users to specify the path for
78 all objects whereas -I specifies the path for the library sources.
79 * -fmakeinit option introduced which will generate a file
80 _m2_modulename.c in the current directory.
81 * introduced fixed sized types in the SYSTEM module.
86 * all language options changed to -f. Warning options are
87 still -W. Introduced memmove to Builtins.def.
88 * Introduced gm2/gm2-libs-pim/BlockOps.{def,mod}
89 * gm2/gm2-libs-pim/BitByteOps.{def,mod}: added.
90 * -O now works on compiler and passes make gm2.paranoid.
95 * builds when grafted onto gcc-4.1.2
100 * tagged ready for branch for gcc-3.3.6 so that the head
101 can be developed with gcc-4.1.0
106 * all regression tests pass on LP64 and i386 GNU/Linux
108 * declaration of variables at particular addresses is now implemented.
109 Now gm2 is a full PIM Modula-2 compiler and hence the formal release.
114 * all regression tests pass on LP64 and i386 GNU/Linux, i386, Mac OS X.3 G5
116 * gm2-harness 0.7 will download, patch and build gcc, gdb, gm2 with the
117 SET and TYPE enhancements below. gm2-harness-0.7 also honours the
120 * Much better dwarf-2 debugging support and when used with
121 a patched gdb-6.3 the programmer can display RECORDs,
122 ARRAYs, SETs, subranges and constant char literals in
125 * it currently complies with Programming in Modula-2 Edition 2, 3 and 4.
126 Users can switch on specific mutually exclusive features by using
129 * gm2 supports full PIM Modula-2 (except variables located at
130 particular addresses).
132 * profiling (-p) option is now available.
134 * module priorities now implemented.
136 * Logitech compatible libraries: Break.def, CardinalIO.def,
137 Conversions.def, DebugPMD.def, DebugTrace.def, Delay.def, Display.def,
138 ErrorCode.def, FloatingUtilities.def, InOut.def, Keyboard.def,
139 LongIO.def, Random.def, RealConversions.def, RealInOut.def,
140 Strings.def, Termbase.def, Terminal.def, TimeDate.def have been implemented.
142 * all Ulm libraries are available.
147 * supports sets of any ordinal size (memory permitting).
149 * implements ISO Modula-2 SYSTEM which can be switched on via: -Wiso.
151 * easy interface to C, and varargs can be passed to C routines.
153 * University of Ulm libraries are installed together with the compiler
154 and can be accessed via: -Wlibs=ulm
156 * some Logitech libraries have been implemented and can be accessed via:
159 * coroutines have been implemented in the PIM style and these are accessible
160 from SYSTEM. A number of supporting libraries (executive and file descriptor
161 mapping to interrupt vector libraries are available through the
162 -Wlibs=pim-coroutines switch).
168 * MinGW cross compilation port released.
169 Please see http://floppsie.comp.glam.ac.uk/Glamorgan/gaius/web/gm2-mingw.html
170 for building details.
175 * native sparc port passes make gm2.paranoid and make check-gm2
177 * native i386 port passes make gm2.paranoid and make check-gm2
179 * passes all 1350 regression tests
181 * builds with gcc-3.3.2
186 * brought GM2 up to date with gcc-3.3.1
188 * many, many bug fixes and no patch is now required in the garbage collection
191 * builds under Redhat 9.0 and Suse 9.0
193 * added the LONGCARD data type.
195 * LENGTH is now mapped onto M2RTS.Length if the parameter is not a constant
198 * standard procedures can be called inside constant expressions.
200 * introduced examples/pthread
202 * introduced a tool, h2def, to aid production of DEFINITION MODULE FOR "C" modules
205 * added MathLib0 module, added svga example.
207 * added access to thirty one gcc built-in functions.
213 * implemented large sets.
215 * implemented ISO compliant sets.
217 * when gm2 is invoked with -gstabs a patched gdb will
218 display set contents. This also works well with SET OF CHAR.
220 * definition modules no longer have to explicitly export
226 * gm2 can be built as a native or as a strongarm cross compiler.
228 * the C preprocessor can be invoked and it processes both definition and
229 implementation modules.
231 * error reporting understands preprocessed Modula-2 source.