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 debugger supports breakpoints and single step (restriction: not available in version 8.1). Breakpoints are simply set by mouse clicks in the source window and single step is a special menu command.
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 the complete Macintosh interface as defined in the "Universal Interfaces" from Apple. To each file from the latest version of the Universal Interfaces corresponds a similar Modula-2 definition file.
Additional data structures (upward compatible) are added to these files in central places where Modula-2 offers more powerful language features than Pascal or C.

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.
The p1 Modula-2 compiler package includes an additional MPW startup file which defines an edit menu with support for several Modula-2 syntax constructs (PROCEDURE, IF, WITH, WHILE, ...).


Prices and Shipment:

Prices Euro
p1 Modula-2 V8.4500,00
Upgrade from V8.0, V8.1 to V8.4250,00
Upgrade from V8.2 to V8.4150,00
Upgrade from V8.3 to V8.4free
Upgrade from V7.3 or V8.4350,00
p1 Modula-2 V7.3410,00
p1 Modula-2 V7.3 and V8.4please ask

The prices do not include taxes and shipment. For payment we accept paypal orders and commonly used credit cards (please ask for details). All products can be ordered directly from p1 GmbH.


Release Notes:

Release Notes Version 8.4

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