Assets 6

Version 1.4.07 for .NET has several improvements to the way in which gpcp interfaces with the .NET libraries. It also has significant improvements to the features of the foreign language symbol file compiler, PeToCps. For foreign libraries the html interface browser files have pop-up help.


The semantics of GPBinFiles.readByte at EOF have been harmonized between JVM and .NET platforms. This may be a breaking change for JVM-hosted programs that expect to catch an EOFException.

Assets 6

Version 1.4.07 for JVM has several improvements to the way in which gpcp interfaces with the JVM libraries. It also has significant improvements to the features of the foreign language symbol file compiler, j2cps. For foreign libraries the html interface browser files have pop-up help.


The semantics of GPBinFiles.readByte at EOF have been harmonized between JVM and .NET platforms. This may be a breaking change for JVM-hosted programs that expect to catch an EOFException. See the ChangeLog for details.

@k-john-gough k-john-gough released this Feb 24, 2018 · 1 commit to master since this release

Assets 6

Gardens Point Component Pascal v1.4.06 for .NET

This version has a new implementation of PeToCps which uses the System.Reflection library to read PE-files, rather that the binary PE file reader/writer PERWAPI. PERWAPI has now been removed from the distribution.

In the absence of this library gpcp-NET will create PE-files by writing MSIL assembly language files and then calling ILASM. The next release will build on the current changes by using the System.Reflection.Emit library to create its output files.

@k-john-gough k-john-gough released this Feb 24, 2018 · 1 commit to master since this release

Assets 6

Gardens Point Component Pascal v1.4.06 for JVM

This version is now unified with the .NET version v1.4.06 for NET. It has a number of bug fixes, as described in the Change Log.

Assets 6

Version 1.4.05 is an interim release of the .NET-hosted implementation of Component Pascal.

Release Notes

This release incorporates all of the target-agnostic changes and bug-fixes in gpcp-JVM v1.4.04. It is the first step in the process of eliminating the use of the PERWAPI PE-file-writer from gpcp-NET. For this version all PE-files are generated by emitting an msil assembly language file and invoking Microsoft's ILASM utility. Future versions will allow the use of ilasm or directly write files using System.Reflection.Emit

All of the example programs distributed with historical releases of gpcp have been restored, under the documentation directory.

The layout of the distribution has been changed from previous versions, and is aligned with that of the JVM-hosted version v1.4.04.

There is a new utility MakeIndex that creates an index file "index.html" in the symbol-browse directory. This allows all of the browse files in the system to be accessed from the index.

Standard library ProgArgs contains a new procedure ExpandWildcards that allows .NET programs hosted on
Windows to behave in the same way as the JVM-version. A use case for this facility is shown in gpcp.cp itself, which now behaves the same way on the two hosts when give the command line argument gpcp *.cp

The default target version of the .NET runtime is now version 4.5, and the binaries in this release are built for that version.

Note

The use of the PERWAPI library is now deprecated, as it has become too difficult to track the evolution of the .NET PE-file format. Thus, in this version all binaries are produced using ILASM.
However, the binaries of PERWAPI, QUT.PERWAPI.dll and QUT.SymbolRW.dll are still included in this distribution since they are still required for the PeToCps utility. This utility will use System.Reflection in the next version and PERWAPI will go to the home for retired software.

@k-john-gough k-john-gough released this Aug 18, 2017 · 9 commits to master since this release

Assets 6

Version 1.4.04 is a major revision of the JVM-hosted implementation of Component Pascal.

Release Notes

The default class-file writer is now based on ASM, and uses the new class-file verification framework. There are also a small number of fixes of issues discovered during the testing of the new code emitter. The old emitter is still included, invoked by the -legacy option.

There are some changes to the distribution layout, and the default method of launching the tools. The tools: gpcp, CPMake, Browse and J2cps are now distributed as executable jar files, which are launched by one-line script/batch files.

Browse has changes of functionality, including a number of new command-line options. In addition Browse now works correctly with multiple file arguments, including "browse *.cps".

J2cps has a number of new options, including the possibility of producing symbol files for all the packages in a jar-archive. It also successfully processes java class files with the latest binary format version.

Documentation has been updated to reflect these changes. In particular, a new section "Rebuilding the tools from the Sources" is included. This covers three methods of bootstrapping the tools: Using Apache Ant (the recommended path); manually compiling using gpcp-JVM; cross-compiling the sources using gpcp-NET.

@mguntli mguntli released this Aug 14, 2017 · 16 commits to master since this release

Assets 7

Mirrored release of CodePlex v1.3.16

Release Notes

Version 1.3.16 has a number of bug fixes. These include issues with the localization of real numbers in the intermediate code files, functions returning anonymous types, and anonymous procedure types on the JVM platform.

New functionality extends the standard ASH builtin function to the LONGINT type, a new overloaded builtin function LSH, and a generic builtin function ROT.

The LSH function performs logical shifts, and applies to 32- or 64-bit integer types.

The ROT function performs bitwise rotations on its argument, which may be any integer type including 8, 16, 32 and 64-bit integers.

These new functions, and the new version of ASH, all perform range checking on their shift-amount argument. All give semantically correct values for out-of-range shifts or rotates.