tree-optimization/112450 - avoid AVX512 style masking for BImode masks
[official-gcc.git] / gcc / m2 / NEWS
blob469f99f0ec96afe76a32346f0042e5bd45ce9b88
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
5 historical.
7 VERSION 1.9.5
8 =============
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.
14 VERSION 1.9.4
15 =============
17 * More GCC error routines utilized for error messages, erroneous
18   subexpressions are more accurately reported.
19 * Complete type checking now performed.
21 VERSION 1.9.3
22 =============
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.
31 VERSION 1.2.0
32 =============
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.
39 VERSION 1.0.4
40 =============
42 * Bug fixes to release 1.0
44 VERSION 1.0
45 ===========
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
50   platforms.
52 VERSION 0.68
53 ============
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.
59 VERSION 0.63
60 ============
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
76   modules.
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.
83 VERSION 0.62
84 ============
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.
92 VERSION 0.61
93 ============
95 * builds when grafted onto gcc-4.1.2
97 VERSION 0.52
98 ============
100 * tagged ready for branch for gcc-3.3.6 so that the head
101   can be developed with gcc-4.1.0
103 VERSION 0.51
104 ============
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.
111 VERSION 0.50
112 ============
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
118    --prefix= option.
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
123   Modula-2 syntax.
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
127   -Wpim or -Wpim2.
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.
144 VERSION 0.49
145 ============
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:
157   -Wlibs=logitech
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).
165 VERSION 0.42
166 ============
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.
172 VERSION 0.41
173 ============
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
183 VERSION 0.40
184 ============
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
189   of gcc-3.3.1
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
196   at compile time.
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
203   from C header files.
205 * added MathLib0 module, added svga example.
207 * added access to thirty one gcc built-in functions.
210 VERSION 0.33
211 ============
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
221   identifiers.
223 VERSION 0.32
224 ============
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.