228 lines
8.1 KiB
Plaintext
228 lines
8.1 KiB
Plaintext
|
|
Logitech Modula-2 Release 3.40 March, 1990
|
|
----------------------------------------------------------------------------
|
|
|
|
This file documents the major differences in the compiler, linker, and
|
|
utilities between Release 3.03 and Release 3.40.
|
|
|
|
|
|
Compiler
|
|
========
|
|
|
|
The Modula-2 Compiler included in Release 3.40 has undergone extensive
|
|
work since Release 3.03. This section documents some of the changes
|
|
that have been made.
|
|
|
|
* The compiler now provides 21-28% faster compilation.
|
|
|
|
* Mixed-language support has been greatly improved. Some of the
|
|
changes include:
|
|
|
|
- Procedures called from C or Pascal will restore registers
|
|
DS, DI, and SI.
|
|
|
|
- Before calling a C or Pascal procedure DS will be loaded
|
|
with the segment descriptor of DGROUP.
|
|
|
|
- The RTS has been updated to allow you to debug programs
|
|
that contain C or Pascal procedures, or that have main
|
|
programs written in C.
|
|
|
|
See the examples in the EXAMPLES\MOD-C and EXAMPLES\C-MOD
|
|
directories for more information.
|
|
|
|
* The default options of the compiler have been changed. Tests
|
|
are now off by default, and all optimizations are on.
|
|
|
|
* For debugging, use "/DEBUG". The /DEBUG option now forces the
|
|
"/SYM" option.
|
|
|
|
* The default options for the compiler must now be set with an
|
|
environment variable, M2COPT (the M2C.CFG file is no longer
|
|
used). For example, to set the tests on by default, use:
|
|
|
|
SET M2COPT=/T+/R+/S+/F+
|
|
|
|
* LONGINT constants can now be specified by a trailing "L". For
|
|
example,
|
|
|
|
var := VAL(LONGINT, 1234);
|
|
|
|
may now be specified as
|
|
|
|
var := 1234L;
|
|
|
|
* The compiler now supports non-standard priority levels (levels
|
|
greater than 7). See the Priority Levels section at the end
|
|
of this document for information about modifying the RTS for
|
|
greater priority level support.
|
|
|
|
* All known bugs in the compiler have been fixed.
|
|
|
|
|
|
Compiler Implementation Notes
|
|
-----------------------------
|
|
|
|
* After installing Release 3.40, you should recompile and relink
|
|
your program. Release 3.40 is completely source and library
|
|
compatible with Release 3.0 (so no source modifications have
|
|
to be made). Note: Release 3.40 is also completely compatible
|
|
with Release 3.0 .SYM files, so it is not necessary to recompile
|
|
your definition modules.
|
|
|
|
* In this version of the compiler, two-dimensional arrays are
|
|
always allocated on even boundaries.
|
|
|
|
|
|
Linker
|
|
======
|
|
|
|
The M2L linker included in Modula-2 Release 3.40 has undergone extensive
|
|
enhancements since Release 3.03. This section documents the changes that
|
|
have been made.
|
|
|
|
* Support for Microsoft languages
|
|
The M2L linker can now be used to link Microsoft C and
|
|
Microsoft MASM code, as well as Logitech Modula-2. It also
|
|
supports the linking of mixed Modula-2 and C programs as
|
|
described in Chapter 6 of the User's Manual (as well as
|
|
demonstrated in the example programs provided with Release
|
|
3.40).
|
|
|
|
* Other enhancements
|
|
* M2L now supports GROUP definitions and references, the
|
|
ORG statement, absolute symbols, absolute segments, and
|
|
external near self-relative fixups, as well as many
|
|
previously unsupported Microsoft record types and object
|
|
format extensions.
|
|
|
|
* M2L can link programs that are up to 40% larger than
|
|
than could be linked with the Release 3.03 linker, and
|
|
when linking programs it can operate up to 30% faster
|
|
than M2L 3.03.
|
|
|
|
* If M2L terminates with an error, it now sets the DOS
|
|
ERRORLEVEL code to 3. In the case of an "insufficient
|
|
memory" error it is set to 2.
|
|
|
|
* M2L options changes and enhancements
|
|
|
|
* M2L now understands an environment variable, M2LOPT. It
|
|
reads and processes this environment variable before it
|
|
processes the rest of the command line. This is useful
|
|
for setting default link options. For example:
|
|
|
|
SET M2LOPT=/o/p
|
|
|
|
will set the default options to optimize and pack the
|
|
output executable file.
|
|
|
|
* Several new options have been introduced, and some defaults
|
|
have been changed:
|
|
|
|
* The output of M2L V3.03 and previous versions was quite
|
|
verbose. A new option, /VERBOSE (or /V) has been added
|
|
to M2L to enable the output of this linker information.
|
|
By default the output is not verbose.
|
|
|
|
* A new switch, /DEBUG (or /DEB) has been added. This
|
|
switch corresponds to the compiler /DEB option. When
|
|
linking a program for debugging, specify the /DEBUG
|
|
option on the command line (or in the M2LOPT environment
|
|
variable).
|
|
|
|
* MAP files are no longer generated by default. Use the
|
|
/MAP (or /DEBUG) option to generate a .MAP file.
|
|
|
|
|
|
Utilities
|
|
=========
|
|
|
|
All of the utilities have undergone extensive user-interface changes
|
|
and improvements. The look and operation of these programs may be
|
|
somewhat different than that described in the Toolkit manual, but
|
|
the overall result of the program's operation is the same.
|
|
|
|
|
|
M2Vers
|
|
------
|
|
|
|
The M2Vers 3.40 version utility now operates 20-30% faster than
|
|
M2Vers 3.03. A new option, /I, controls the display of version
|
|
change statistics information. If "/I+" is selected, the statistics
|
|
information is displayed. The default is "/I-". In addition, line
|
|
numbers are displayed for errors and warnings, to allow you to more
|
|
easily locate the problem in the source file.
|
|
|
|
|
|
M2Decode
|
|
--------
|
|
|
|
The M2Decode utility now generates mixed source by default, and will
|
|
automatically generate a decode backup file (.DBK) instead of prompting
|
|
for different output files. The decode output is now combined in one
|
|
single .DEC output file. Several enhancements have been made to the
|
|
overall look and operation of M2Decode; included is a "percentage of
|
|
completion" counter that comes in quite handy when decoding large
|
|
object modules.
|
|
|
|
|
|
M2Make
|
|
------
|
|
|
|
M2Make now supports automatic building of overlays with a new command
|
|
syntax. To completely build a program that uses overlays, you specify
|
|
it with a syntax similar to M2L. For example, if you had a program
|
|
"Base", and it contained two overlays, "Ovl1" and "Ovl2", and "Ovl2"
|
|
contained an overlay "Ovl3", you could easily "make" the entire program
|
|
by using this command:
|
|
|
|
M2Make Base(Ovl1+Ovl2(Ovl3))
|
|
|
|
This command generates a CMDFILE.BAT that will automatically compile and
|
|
link the files necessary to build the entire application (including the
|
|
overlays).
|
|
|
|
Note: The syntax for generating overlays with M2Make is similiar to but
|
|
reversed from the syntax for generating overlays with M2L.
|
|
|
|
|
|
M2Check
|
|
-------
|
|
|
|
M2Check now supports a batch-mode option, "/B". If you want to
|
|
execute M2Check from a batch file, specify "/B+" after the file
|
|
name argument. For example:
|
|
|
|
M2Check TEST.MOD/B+
|
|
|
|
The default setting of the "/B" option is "/B-".
|
|
|
|
|
|
Libraries
|
|
=========
|
|
|
|
All known bugs in each of the libraries have been fixed.
|
|
|
|
|
|
The Debuggers and the POINT Editor
|
|
==================================
|
|
|
|
For information on the changes to the Run-Time and Post-Mortem Debuggers,
|
|
refer to the file DEBUGGER.DOC. For information on changes to the POINT
|
|
Editor, refer to the file POINT.DOC.
|
|
|
|
|
|
Priority Levels Enhancement
|
|
===========================
|
|
|
|
The compiler now supports the compilation of programs containing priority
|
|
levels greater than seven (a maximum of 16 levels are now supported). The
|
|
supplied RTS, however, only supports a maximum priority level of seven.
|
|
If you wish to use the greater number of priority levels, you must modify
|
|
the RTS so that it can properly support the larger priority levels.
|
|
Logitech Modula-2 Technical Support can not provide you with any support
|
|
regarding any modifications you make to the RTS. For more information,
|
|
see the file RTSREAD.ME in the M2LIB\RTS directory.
|
|
|