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.0500,00
Upgrade from V9.3 and V9.4 to V10.0200,00
Upgrade from V9.0, V9.1, or V9.2 to V10.0300,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:

Utilities

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

Library

Debugger

Utilities

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

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

Library

The library contains a new module:

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

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

Library

The library contains several new modules and features:

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

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

Library

Debugger

Tools

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

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.

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

Library

Debugger


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

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

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:

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

Library

Besides some bug fixes in the Universal Definition files several new moduls / API interfaces have been added:

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

Library

The HIToolbox definition files have been added to the MacOS APIs:

Debugger

The debbuger is now available also for tools.

Restrictions:

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.

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

Release Notes Version 8.1.2

Release 8.1.2 fixes two bugs in the compiler.
All known bugs are fixed.

Compiler

Release Notes Version 8.1.3

Release 8.1.3 fixes a bug in the compiler.
All known bugs are fixed

Compiler

Release Notes Version 8.1.4

Release 8.1.4 fixes a bug in the compiler.
All known bugs are fixed

Compiler


Release Notes Version 8.0.x:

p1 Modula-2 Debugger

Release Notes Version 8.0.1

Release 8.0.1 fixes a bug in the compiler.
All known bugs are fixed.

Compiler

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

Library

Release Notes Version 8.0.4

Release 8.0.4 fixes a bug in the compiler.
All known bugs are fixed.

Compiler

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

Release Notes Version 8.0.6

Release 8.0.6 fixes a bug in the compiler.
All known bugs are fixed.

Compiler

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


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

Library

Debugger

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

Library

Sample Programs

Release Notes Version 7.3.2

Release 7.3.2 fixes a bug in the compiler.
All known bugs are fixed.

Compiler

Release Notes Version 7.3.3

Release 7.3.3 fixes four bugs in the compiler.
All known bugs are fixed.

Compiler

Release Notes Version 7.3.4

Release 7.3.4 fixes three bugs in the compiler.
All known bugs are fixed.

Compiler

Release Notes Version 7.3.5

Release 7.3.5 fixes a bug in the compiler.
All known bugs are fixed.

Compiler

Release Notes Version 7.3.6

Release 7.3.6 fixes a bug in the compiler.
All known bugs are fixed.

Compiler

Release Notes Version 7.3.7

Release 7.3.7 fixes a bug in the compiler.
All known bugs are fixed.

Compiler

Release Notes Version 7.3.8

Release 7.3.8 fixes five bugs in the compiler.
All known bugs are fixed.

Compiler

Release Notes Version 7.3.9

Release 7.3.9 fixes a bug in the compiler.
All known bugs are fixed.

Compiler

Release Notes Version 7.3.10

Release 7.3.10 fixes two bugs in the compiler.
All known bugs are fixed.

Compiler


Known problems in Version 7.3.10:

Compiler runs out of memory if CASE-statements have a huge range of case label values.

Top of pagep1 home page address of p1 GmbH