|
p1
Modula-2 |
|
Modula-2 compiler for Apple Macintosh supporting Mach-O as command line tool or Classic under MPW.
Implementing ISO standards IS 10514-1,2,3
Contents:
Detailed Product Description:
The Language
The language implemented by p1 Modula-2 is based on the ISO Standard IS 10514.
Besides the base languaged (IS 10514-1) it implements both existing extensions: IS 10514-2 (Generics)
and IS 10514-3 (Object Oriented Modula-2).
Furthermore it implements language extensions like special types for the Macintosh or dynamic arrays.
p1 Modula-2 is a full multi pass compiler and does not have language restrictions which were introduced
with single pass compilers (e.g. no need for FORWARD declarations).
p1 Modula-2 supports a very powerfull pragma system. Pragmas allow for conditional compilation (depending on command
line options, compiler switches, etc.), Language mixing (interfacing to C / C++ / assembler /
other languages suporting Mach-O conventions), check instruction generation, etc.
The Debugger
p1 Modula-2 includes a complete debugging environment at source level, i. e. all variables
are displayed with name and value according to their declared type. The last statement executed by
the interrupted coroutine is displayed in the source window with highlighting.
Vor applications navigating through your data and code is as simple as you would expect it from any Macintosh software:
You select the various objects with the mouse and you open complex structures by double clicking.
Lists, trees and other pointer or object connected structures can be easily traversed forward and backward
by simple mouse clicks. Double clicking a coroutine variable switches to its coroutine context.
You never need to remember and type any names. For command line tools the same features are supported,
nmavigation is done by the arrow keys and key sensitive menus.
For special cases you can even have a direct view on your Mac's memory in various formats.
Double clicking is also used to specify memory addresses:
Following a handle or a memory address is accomplished by just two double clicks.
The debugging features are always available, there is no need to recompile the sources with
a special debug option. The necessary symbolic information is kept in special files and
the debugger code must be only linked to the application.
The debugger cooperates with the built in exception handling mechanism of p1 Modula-2. A special
dialog allows to specify which exceptions should be intercepted by the debugger before delivering
them to the programmed exception handler.
The Library
The compiler package includes the powerful and flexible ISO Standard Library with modules for I/O,
string handling, conversions and more. This package allows machine independent software development.
Special Modules enlarge the standard Libray to provide for additional file system functionality,
Input / Output of additional data types, special API access etc.
The Macintosh Interface
p1 Modula-2 provides for a great part of the Cocoa Macintosh interface as defined in the "Core Interfaces"
from Apple. To each file of the Core Interfaces corresponds a similar Modula-2 definition file;
missing features may be added without the need of glue code etc.
Additional data structures (upward compatible) are added to these files in central places where
Modula-2 offers more powerful language features than C.
Central parts of the Unix header files are also mapped by Modula-2 definition files.
The Utilities
Two utilities, "GenMake" and "M2Cross", are provided to manage large software projects.
GenMake automatically creates a "MakeFile" for your p1 Modula-2 programs. Starting with the main module,
GenMake analyses the import lists of all used modules and generates dependency rules for your MakeFile.
In most cases this file can be passed as input the the "make" utility without any
manual changes
M2Cross also analyses module dependencies and creates a global cross-reference listing with
all exported names.
Prices and Shipment:
Prices | Euro |
p1 Modula-2 V10.0 | 500,00 |
Upgrade from V9.3 and V9.4 to V10.0 | 200,00 |
Upgrade from V9.0, V9.1, or V9.2 to V10.0 | 300,00 |
The prices do not include taxes and shipment. For payment we accept
commonly used credit cards (please ask
for details). All products can be ordered directly from p1 GmbH.
Attention: please note that payment via credit card is temporarily not available.
Release Notes:
Release Notes Version 10.0
Release 10.0 is the first version of p1 Modula2 to support native Arm 64-bit code. This includes support for
generating iOS apps.
There are no
changes to the language features as compared to version 9.0.x. and above. The library functionality has been
slightly enhanced. Some minor functionality has been added too as well as some minor bug fixes.
All 32-bit support has been dropped, especially the code generation for Ppc and Intel 32-bit platforms and support for the Carbon interface.
Compiler
The compiler is now able to emmit 64-bit Arm assembler code; support for Ppc-32 and Intel-32 has been dropped.
Thus supported architecures are Arm-64 and Intel-64.
INTEGER/CARDINAL are 64 bit now on every supported architecture, so the types SYSTEM.INT64 and SYSTEM.CARD64 are now mere
aliases of INTEGER resp. CARDINAL. Supported floating point types are REAL (32-bit) and LONGERAL (64-bit).
Library
Tool Library and Foreign Interface Library are universal as well as their counterparts for the C back end.
The iOS Foreign Interface Library is universal too, as the simulator on Intel machines runs Intel x86_64 code.
Some interfaces to the Unix libraries (e.g Unix.DEF, Signal.DEF, ThreadStateInfo.DEF) have been added or enhandced.
Support for the special INT64 and CARD64 IO-modules on 32-bit platforms has been dropped (no longer needed) as well
as the support for LONGDOUBLE (not existing on Arm platforms).
Debugger
The debugger is now available for Arm code too.
Restrictions:
- The debugger is available only for tools, support for application is planned.
Utilities
- GenMake and M2SymfileDump have been redesigned with respect to the new back end.
Manual
The manual has been reworked to reflect the new features and working with Xcode 12.x and above. Several typos have been corrected.
Examples
The examples (tools and applications) have undergone complete redesign.
Library Sources
As started with version
6.0 the distribution kit contains the sources of the p1 Modula-2
library. This allows the user to compile debug versions of the
library etc. Please keep in mind that p1 may change the sources
without announcement. See according ReadMe file for further
information.
Release Notes Version 9.4
Release 9.4 is a maintainance release that contains fixes for several changes necessary for newer versions of Xcode.
The core intefaces have been reworked and reflect now the header files for MacOS X 10.12.
Too larger examples of how to use Modula-2 code in Cocoa based applications are now completed.
Compiler
- Fixed bugs when using C calling conventions for returning special records (CodeDefs, UniversalDefs).
- Fixed an alignment issue for 64-bit code.
- Fixed a bug in comparison of small sets.
- Fixed a bug that could lead to compiler crashes / programm crashes when procedrue constants are used within larger structured constants.
- Several smaller bugs are now fixed, that could cause bus errors under rare circumstances.
Library
- Fixed a problem in 32-bit code that could cause TRANSFER to fail when linked on newer systems.
Debugger
- Fixed a bug where the debugger could crash when reading reference files (32-bit only).
Utilities
- GenMake has been fixed to emmit linker flags necessary for Xcode 8
- Fixed a bug that could cause M2SymfileDump to crash when dumping x86_64 symbol files.
Manual
The manual has been reworked to reflect the changes since 9.3. Several typos have been corrected.
Examples
The following examples have been conpleted and show many more fetures
- how to use Ojective C together with Modula-2 (Application Examples: PlotFun).
- how to use Swift together with Modula-2 (Application Examples: Dungeon).
- how to use Core APIs in more complex situations (Application Examples: Dungeon, PlotFun).
Library Sources
Folder contents and make file reflect the changes and enhancements made to the library.
Release Notes Version 9.3
Release 9.3 introduces several new features for better interfacing to Swift and / or Objective C to build Cocoa applications.
The core text intefaces have been added an the core foundation and core graphics interfaces have been
reworked and are now according to the header files for MacOS X 10.10.
Too larger examples are now given of how to use Modula-2 code in Cocoa based applications.
Compiler
- Several smaller bugs are now fixed (mainly related to 64 bit code).
Library
The library contains a new module:
- The module ByteArrayFile allows to treat a memory buffer the same way as a sequential file. This allows e.g. for
easily storing document data together with Cocoa specific information as a directory structure in one single document file.
Debugger
no changes
Utilities
no changes
Manual
The manual has been reworked to reflect the new features and working with Xcode 6.x. Several typos have been corrected.
Examples
New examples have been introduced to demonstrate
- how to use Ojective C together with Modula-2 (Application Examples: PlotFun).
- how to use ByteArrayFile (Application Examples: PlotFun).
- how to use Swift together with Modula-2 (Application Examples: Dungeon).
- how to use Core APIs in more complex situations (Application Examples: Dungeon, PlotFun).
Library Sources
Folder structure and make file reflect the various changes and enhancements made to the library.
Release Notes Version 9.2.x:
Release 9.2 introduces many new features to the library. Preemptive threading by use of the modules Processes and Semaphores is now
available as well as support for TCP connections through the module NetFile. The core foundation and core graphics interfaces have been
reworked and are now available for 64 bit code too.
A first example is now given of how to use Modula-2 code in Cocoa based applications.
Compiler
- The C back end is now 64 bit ready.
- Several smaller bugs are now fixed (mainly related to 64 bit code).
Library
The library contains several new modules and features:
- The modules Processes and Semaphores are now implemented and support use of preemtive threads.
- As a concequence, the module Processes within the universal interfaces has been renamed to ProcessesCarbon.
- The module NetFile offers use of TCP connections through the front end modules of the standard
library (client and server side).
- The module LineFile supports for access to serial lines (including those connected to virtual terminals)
through the front end modules of the standard library.
- The interfaces for the core foundation and core graphics framework have been moved from the UniversalDefs
into a folder of their own. Core graphics is fully adapted to MacOS X 10.8, core foundation in parts. All
interfaces are available for 64 bit code too.
- The Unix interface modules Unix and BasicTime have been enhanced, the modules BasicNet and BasicThread newly introduced.
- The procedure GetFileDescriptor has been added to the module MacMisc.
- Two smaller bugs in SetTypeAndCreator and in the Low... modules have been fixed.
- A new library libm2libforeign.a is now available without main entry and C callable procedures (available through M2Foreign.h)
for module initialization and finalization.
Tools
GenMake now allows to specify the sysroot folder for library / include file serach and the folder for tools like gcc etc. for
the easy use of older SDKs.
Manual
The manual has been reworked to reflect the new features and working with Xcode 4.x. Several typos have been corrected.
Examples
New examples have been introduced to demonstrate
- how to use the module NetFile (Tool Examples: ClientServer).
- how to use preemtive threads (Tool Examples: ProducerConsumer).
- how to use Modula-2 parts within a Cocoa based application (Application Examples: D3Cocoa).
Library Sources
Folder structure and make file reflect the various changes and enhancements made to the library.
Release Notes Version 9.1.x:
The most important new feature of version 9.1 is the native code generation for the 64-bit Intel architecture.
Further improvements add better support for 64-bit whole numbers. The GenMake utitliy has been
enhanced to give a better handling for multiple architecture applications.
Compiler
- The compiler is now able to emmit 64-bit Intel assembler code. The supported architecures are now ppc-32, Intel-32, and Intel-64.
- The types SYSTEM.INT64 AND SYSTEM.CARD64 are now fully supported by the predefined procedures and functions;
they may occur as parameters to standard functions in constant expressions.
- Code generation for 32-bit Intel code has been improved.
Library
- Moduls have been edded to the IO-libraery for the types SYSTEM.INT64, SYSTEM.CARD64, and SYSTEM.LONGDOUBLE
similar to the corresponding modules in the standard library.
- Some interfaces to the Unix libraries (esp. Signal.DEF, ThreadStateInfo.DEF) have been enhandced for Intel x86_64 architecture.
Debugger
- The debugger is now available for Intel 64-bit code too.
- 64-bit whole number values are now displayed in native form for all architectures.
Tools
- All tools are now universal binaries
- GenMake has been fully redesigned to allow generation of make files for universal binaries with one run of GenMake.
Examples
The exmaples have been largely reworked to build universal binaries and to show the use of the new GenMake features.
Release Notes Version 9.0.x:
The main goal of version 9.0 is to provide for native Intel code generation. Smaller
improvements have been made to the compiler, the library, the debugger, and the examples.
Compiler
- native Intel code is available
- constants of type INT64 and CARD64 are now accepted by the compiler
- search paths for symbol files are automatically expanded with "ppc" resp. "i386" depending on the target architecture
- the types SYSTEM. SET64 and SYSTEM. WORD64 add universal 64 bit types
- the SYSTEM procedure ASSEMBLER allows to incorporate assembler statements into Modula-2 code
Library
Library files (native code and code via C back and) are now universal files.
Some Unix and runtime specific modules have been added to the library.
- StackDump: offers a textual representation of the procedure stack at the point of call.
- ThreadStateInfo: offers information procedures for access to the state of a given stack.
Debugger
The debugger is now available for Intel code too. Problems with missing reference files
when debugging command line tools have been fixed.
Tools
All tools are now universal binaries and have been enhanced to support ppc vs. Intel as well as native vs. C back end.
Examples
The exmaples have been largely reworked to build universal binaries.
Release Notes Version 9.0.2
Release 9.0.2 fixes some fpu related bugs in the compiler and improves library features.
All known bugs are fixed.
Compiler
- Remove bug the caused wrong results when casting set constants.
- Remove bugs the caused wrong results in very complex floatimng point expressions.
Library
- Enhanced handling of floating point exceptions so that individual exception mask settings in fpu status are saved accross exceptions.
Debugger
- Reset character attributes after leaving the debugger.
- Removed bugs in instruction size calculation that caused wrong error line displays.
Release Notes Version 8.4.x
The main goal of version 8.4 is to support the new linker conventions introduced with Xcode 3.0
(available as a choice with Xcode 2.5).
Compiler
- By default the new linker conventions for Xcode 3.0 and above are observed. This
also generates position independant code.
- An issue with double declaration in C back end is fixed.
Examples
A new application example ("Pl0") is added to the examples folder.
Release Notes Version 8.3.x:
The main goal of version 8.3 is to give better support for universal binaries and cross
development. For this purpose new features have been added to the GenMake tool. All
tools are universal binaries themselves.
Compiler
- INT64 and CARD64 are now fully supported
- C back end got several improvements
- search path for library symbol files supports pc and i386 branch
Library
The library files for use with the C back end are now universal files.
Tools
The following features have been added to the GenMake tool:
- the new option -ARCH arch defines the target architecture ("ppc", "i386")
- the new option -SYSLIBROOT path adds "-syslibroot path" to the linker command to sepcify
the system library version you want to link against.
-
- the default file accepts the new line start 'U', which tells GenMake that this target is part of an
universal executable. Suboptions are
- P tells GenMake that PowerPC code is to be generated (overrides -ARCH)
- I tells GenMake that Intel code is to be generated (overrides -ARCH)
- C tells GenMake that the C back end is to be used (may be used with both architectures)
If 'U' ist specified in the default file, "ppc" resp. "i386" ist added to the
target name and a lipo command is generated that optionally combines both parts to the final
target.
Examples
The exmaples have been reworked to show the new features for building universal binaries.
Release Notes Version 8.2.x:
Release 8.2 reactivates and completes the C back end to allow compilation of universal binaries.
There are also several minor enhancements described in the according places below. For details
please refer the manual.
Compiler
- The C back end is available again. C sources are produced using the command line option -coutput.
- New command line option -arch to specify the target architecture. For assembler sources only ppc is valid.
- New pragma variable ARCH that reflects the current target architecture.
- Two new types are added to module SYSTEM:
- INT64: 64 bit integer values.
- CARD64: 64 bit cardinal values.
Both types are not yet fully implemented; only the operations +, -, and * are available. Convertions
to and from INTEGER and CARDINAL are done via VAL. These types are intended for use with huge files
and as a bootstrap basis for a full implementation in the next release.
Library
Besides some bug fixes in the Universal Definition files several new moduls / API interfaces have been added:
- CFLocale.DEF is a new API file to reflect CFLocale.h
- Module FSSeqFile is a brother to SeqFile for Carbon Applications. It uses FSSpecs (as returned from the file
dialogs) instead of name strings to identify files and is bases upon the MacOS file system calls instead
of the Unix calls used by SeqFile.
- Module FSRndFile file is a brother to RndFile like FSSeqFile above.
- Several bugs in CFStrings.DEF have been fixed (UniCharPtr instead of VAR CHAR).
- The Print Manager APIs (PM…) are now compiled for session mechanism.
Examples
Several examples including LibSoucres have additional Xcode projects to show how to build
Universal Carbon applications. See the readme files for detailed lists of necessary changes / considerations.
Release Notes Version 8.1.x:
Release 8.1 completes missing items that had to be newly introduced for working with Mac OS X.
In first place is the debugger for tools, but there are also several other additions.
Compiler
- The syntax of the error messages is now compatible with Xcode. Xcode is now able to process
the error messages and automathically position to the erraneous source line.
- Two new constants are added to module SYSTEM:
- SOURCEFILE: mirrors the name of the source file for this compilation unit.
- SOURCELINE: mirrors the actual line of code.
Library
The HIToolbox definition files have been added to the MacOS APIs:
- HIArchive.DEF
- HIGeometry.DEF
- HIObject.DEF
- HIShape.DEF
- HITextUtils.DEF
- HITheme.DEF
- HIToolbar.DEF
- HIView.DEF
Debugger
The debbuger is now available also for tools.
Restrictions:
- The use of break points and single step is not yet available.
Utilities
The scripts for linking, building simple tools etc. are extended for linkig tools with debugger.
Runtime
For tools, the signals "term" and "int" are caught and processed.
- term is mapped to HALT so the tool terminates regularely with the possibility to do any necessary shut down actions.
- int is processes iff the debugger is present. It is treated like a call to BREAK.
Examples
Several examples including LibSoucres have additional Xcode projects to show the Xcode capabilities of p1 Modula-2.
Release Notes Version 8.1.1
Release 8.1.1 fixes a bug in the compiler.
All known bugs are fixed.
Compiler
- For sets with a size of n*4 + 3 bytes compare operations produced wrong results.
Release Notes Version 8.1.2
Release 8.1.2 fixes two bugs in the compiler.
All known bugs are fixed.
Compiler
- Wrong instructions were used for storing procedure parameters when the stack frame exceeded 16-bit addressing.
- The frame pointer adress was calculated incorrectly when the stack frame exceeded 16-bit addressing.
Release Notes Version 8.1.3
Release 8.1.3 fixes a bug in the compiler.
All known bugs are fixed
Compiler
- HIGH (<someVar: POINTER TO ARRAY OF SomeType>) might run out of registers.
Release Notes Version 8.1.4
Release 8.1.4 fixes a bug in the compiler.
All known bugs are fixed
Compiler
- A compiler assertion error was erroneously raised.
Release Notes Version 8.0.x:
p1 Modula-2 Debugger
- Restriction: the debugger does not yet support breakpoints and single step.
- Restriction: the debugger is not yet available for commandl ine tools.
Release Notes Version 8.0.1
Release 8.0.1 fixes a bug in the compiler.
All known bugs are fixed.
Compiler
- Files with UNIX-end-of-line characters are processed corretly.
Release Notes Version 8.0.3
Release 8.0.3 fixes two bugs in the compiler and a bug in the library.
It also adds some new features.
All known bugs are fixed.
Compiler
- Huge constants in symbol files caused a compiler crash when reading these files.
- The static link register for nested procedures was set / restored incorrectly when
the stack space of the surrounding procedure exceeded 32k.
- Some error messages are made more explicit.
- "CASTREGISTER" is now available as command line option.
Library
- Fixed a bug in SysClock. GetClock that returned wrong offset to GMT.
- The module Terminal now implements noecho-mode.
Release Notes Version 8.0.4
Release 8.0.4 fixes a bug in the compiler.
All known bugs are fixed.
Compiler
- Using dynamic ARRAY OF CHAR as parameter to inline procedures could cause an assertion
error because of not released registers.
Release Notes Version 8.0.5
Release 8.0.5 fixes a bug in the compiler and enlarges a limitation.
All known bugs are fixed.
Compiler
- The bug fix made in 8.0.4 introduced a new bug. This is now fixed.
- The maximum number of importetd modules is set to 299.
Release Notes Version 8.0.6
Release 8.0.6 fixes a bug in the compiler.
All known bugs are fixed.
Compiler
- Using class declarations in generic modules could lead to name conflicts. This is now fixed.
Release Notes Version 8.0.7
Release 8.0.7 fixes two bugs in the compiler and improves error management.
All known bugs are fixed.
Compiler
- The compiler is now aware of illegal types caused be previous errors when parsing paramter structures.
- Exception handlers in destructors of untracede classes could cause compiler crashes. This is now fixed.
- When sending assembler output via pipe to the assembler, the compiler now sents an illegal assembler statement
instead of a (correct) empty file in case of compilation errors. So the assembler will not generate new object
files which would fool the make utility.
Release Notes Version 7.3.x
There are three new main features in this version. First, support for generating Carbon applications
is fully integrated (including an adapted debugger library). Second, it supports universal interfaces
version 3.4.2 (newest finaly version). Third, the AltiVec instruction set available on G4 processors is
supported by the compiler.
All known bugs are fixed.
Compiler
- Vector data types to be used with the AlitVec instruction set on G4 processors may be defined
with "VECTOR OF <ElementType>". Variables / Constants of vector types are used for
the AltiVec instruction set. Altivec instructions are generated for several standard operations
like "+", "-" etc. The full set is available through functions / procedures to
be imported from module "VECTORS" (see compiler manual for details).
- The new introduced pragma "FixedSubrangeSize" allows to control the size of subrange types:
if "FixedSubrangeSize" has the value "FALSE", subrange types have minimal
size (default, current semantics),
if "FixedSubrangeSize" has the value "TRUE", subrange types have the size of the
parent type, i. .e. if a type identifier preceeds the subrange, the size of the type deno-ted by this
identifier, otherwise 4 bytes for INTEGER / CARDINAL subranges, 1 byte for character subranges, and
the size of the enumeration type for subranges of enumeration types (for compatibility with the
Stony Brook compiler).
The default may be changed by specifying "-FIXEDSUBRANGESIZE" as command line option.
Library
- The library is extended by files for Carbon support.
- A new funcion "OFFS" was added to "SYSTEM", which returns the offset of a
record field given as argument:
PROCEDURE OFFS(<recordtype>.<field> {.<field>}): zz-type;
- Garbage collection is redesigned and improved.
- support for debugging shared libraries is added.
Debugger
- There is a new debugger library for Carbon applications.
- The debugger is aware of G4 specific extensions (vector registerts, displaying vector data etc.).
Sample Programs
The sample program "PlotFun" is newly introduced (formerly in PreRelease) to show porting to
universal interfaces 3.4.2, especially porting for Carbon. Besides lots of details it uses the new
print manager interface. "Struktogramm" is ready for Carbon too. "Dungeon" is not
yet ready for Carbon, though part of the changes is already done and the program may be started under MacOS X.
Manual
The new features, especially the vector extensions, are described in details.
Release Notes Version 7.3.1
Release 7.3.1 fixes a bug in the compiler, contains corrected library source files and adds
a new sample programm showing the use of vector instructions.
All known bugs are fixed.
Compiler
- a severe bug in the C backend caused wrong code. This is now fixed (C backend).
Library
- The folder "LibSources" contains updates for corrupted library source files.
Sample Programs
- The folder "AltiVec-Demo" contains sources for a 3-d-drawing program to show the use
(and benefit) of vector instructions available on G4 processors.
Release Notes Version 7.3.2
Release 7.3.2 fixes a bug in the compiler.
All known bugs are fixed.
Compiler
- in case a module contains more then 32,768 bytes of constant data, constants above 32,768 were
addressed incorrectly. This bug is now fixed.
Release Notes Version 7.3.3
Release 7.3.3 fixes four bugs in the compiler.
All known bugs are fixed.
Compiler
- "FROM SomeModule IMPORT * EXCEPT SomeItem" did not work in case the import was made in an
implementation module and "SomeItem" was defined in the according definition module.
- a bug in the exception handler entry of a method cause the program to crash if some other
method was called within the exception handler (PPC backend).
- a bug in the register optimization causes meaningless compiler assertion errors in case a
destructor of an untraced class had an exception handler whereas the constructor had not (PPC backend).
- record parameters for C procedures where passed on the stack instead of registers. This caused e. g.
those procedures of module CFString to crash that have parameters of type CFRange (PPC backend).
Release Notes Version 7.3.4
Release 7.3.4 fixes three bugs in the compiler.
All known bugs are fixed.
Compiler
- In very seldom situations, registers were not correctly releaded after use in address calculation
for parameter loading (PPC backend).
- addressing of variables with offsets larger than 32k might request more registers than
available (PPC backend).
- Wrong use of register r0 in load and store operations (PPC backend / assembler files).
Release Notes Version 7.3.5
Release 7.3.5 fixes a bug in the compiler.
All known bugs are fixed.
Compiler
- When proceures with dynamic frame (i. e. value open array parameters with CopyReference=TRUE)
do not make any acces to the parameters on stack (e. g. because of optimizing all parameters into
registers), the register used for parameter access might not be saved and therefore incorrect after
leaving the procedure (PPC backend).
Release Notes Version 7.3.6
Release 7.3.6 fixes a bug in the compiler.
All known bugs are fixed.
Compiler
- Destroying an object of an untraced class might fail if the call to DESTROY is made in an procedure
which containes a nested leaf procedure and the destructor of the class is not empty (PPC backend).
Release Notes Version 7.3.7
Release 7.3.7 fixes a bug in the compiler.
All known bugs are fixed.
Compiler
- Huge constants in symbol files caused a compiler crash when reading these files.
Release Notes Version 7.3.8
Release 7.3.8 fixes five bugs in the compiler.
All known bugs are fixed.
Compiler
- the static link register for nested procedures was set / restored incorrectly
when the stack space of the surrounding procedure exceeded 32k (PPC backend).
- Using dynamic ARRAY OF CHAR as parameter to inline procedures could cause an
assertion error because of not released registers (PPC backend).
- Using class declarations in generic modules could lead to name conflicts. This is now fixed.
- The compiler is now aware of illegal types caused be previous errors when parsing paramter structures.
- Exception handlers in destructors of untracede classes could cause compiler crashes.
This is now fixed (PPC backend).
Release Notes Version 7.3.9
Release 7.3.9 fixes a bug in the compiler.
All known bugs are fixed.
Compiler
- For sets with a size of n*4 + 3 bytes compare operations produced wrong results.
Release Notes Version 7.3.10
Release 7.3.10 fixes two bugs in the compiler.
All known bugs are fixed.
Compiler
- Wrong instructions were used for storing procedure parameters when the stack frame exceeded 16-bit addressing.
- The frame pointer adress was calculated incorrectly when the stack frame exceeded 16-bit addressing.
Known problems in Version 7.3.10:
Compiler runs out of memory if CASE-statements have a huge range of case label values.