15 Apr, 2024: Iron Spring PL/I compiler 1.3.0 released
The principal enhancement with this release is the implemention of iSub defined arrays.

-----Older news-----
15 Nov, 2023: Iron Spring PL/I compiler 1.2.0 released
The principal change with this release is the implementation of the AREA storage class, including offset variables and the builtins EMPTY, OFFSET, and POINTER.
Changes to filesystem calls have been made which should allow this version to run on Windows' WSL2.
This release also contains several minor enhancements and bug fixes, see the readme file for your system for details.

20 Jun, 2023: Iron Spring PL/I compiler 1.1.0 released
This version corrects several problems with arrays and structures of unaligned bit strings, and problems with aggregate operations on nested arrays of structures. The builtins ALL, ANY, and CONJG have been added, as well as a new builtin IBSW to swap bytes in an integer value. Conversion of arithmetic data to bit has been corrected to correspond with the standards.

1 Feb, 2023 (nominal date) due to a bug in handling self-defining structures, version 1.0.1 replaces 1.0.0. The new version contains a fix for this and one other minor issue. The documentation has not been updated from 1.0.0, only the executables have been changed.
1 Feb, 2023: Iron Spring PL/I compiler 1.0.0 released
The major new feature in this release is support for self-defining structures (REFER attribute).

The array builtins SUM, PROD, and POLY have been added.

Minor enhancements include edit-directed format codes bx (alias b4) and b3 for bit-string data. OPTIONS(IBM) can now be specified at the structure level to apply to all FIXED DECIMAL elements in that structure. The %CONTROL preprocessor listing statement from the IBM Checkout compiler is recognized and ignored.

This release also contains several bug fixes, see the readme file for your system for details.

15 May, 2022: Iron Spring PL/I compiler 0.9.10e released
This version adds builtins CENTERLEFT, CENTERRIGHT, LEFT, and RIGHT from IBM Enterprise PL/I. It also adds the builtins ACOS and ATANH to complete the set of mathematical builtins.

The REPLY option of the DISPLAY statement is now supported.
OCTAL bit constants as '377'b3 for 'FF'bx (or 'FF'b4) are now permitted. Procedures OSGetProcInfo, mktime, and gmtime have been added to the library.

Several fixes for outstanding bugs are included.

4 May, 2022: Beta version 0.1.5 of the Iron Spring PL/I Preprocessor released.
The Iron Spring PL/I preprocessor is intended to be a replacement for the IBM 2.3 PL/I preprocessor. This beta version is released for anyone with an interest in testing it, but should not be relied on for production use.

This version contains bug fixes and usability enhancements

See the "Download" page for information.

03 Apr, 2021: PL/I beta version 0.9.10d released.
This version includes more support for UNSIGNED data including the SIGNED and UNSIGNED builtins, and corrected operation of comparisons involving SIGNED and UNSIGNED data.
Structure declarations with factored level numbers are now parsed correctly.

It also contains bugfixes and performance enhancements, See the readme file for your system for a listing.

20 Feb, 2021: Pre-alpha version of the Iron Spring PL/I Preprocessor released.
The Iron Spring PL/I preprocessor is intended to be a replacement for the IBM 2.3 PL/I preprocessor. This pre-alpha version is released for anyone with an interest in testing it, but should not be relied on for serious use.

See the "Download" page for information.

15 Sep, 2020: PL/I beta version 0.9.10c released.
.This release adds an optional aggregate map (-lg).
.The definition of the result of the STRING builtin and pseudovariable has changed. See the Programming Guide for additional information.
.Procedures may now return arrays.
.Error messages may now be written to stderr in addition to appearing in the program listing.
.It also contains bugfixes and performance enhancements, See the readme file for your system for a listing.

1 Jul, 2019: PL/I beta version 0.9.10b released.
This release contains bugfixes and performance enhancements.

7 Nov, 2017: PL/I beta version 0.9.10a released.
This release contains fixes for several problems.

9 Oct, 2017: PL/I beta version 0.9.10 released.
This is a major release that provides support for INDEXED files, similar to IBM ISAM files or VSAM KSDS. At the present time this is only available on Linux systems. Several bugs have also been fixed in this release.

22 Jul, 2017: PL/I beta version 0.9.9b released.
This is a maintenance release that contains a number of bugfixes.
See the readme files for a complete listing.

We have moved our OS/2 system to ArcaOS (Blue Lion). This appears to provide a more stable and usable environment than eCS.
Arca Noae website

15 Dec, 2016: PL/I beta version 0.9.9a released.
This is a maintenance release that contains a number of bugfixes.
6 Nov, 2015: Move to new website complete. Please report any website problems.

15 Sep, 2015: PL/I beta version 0.9.9 released.
This version adds support for displaying a source line number in run-time error messages, and adds the ROUND builtin.

15 Jun, 2015: PL/I beta version 0.9.8 released.
This version adds support for an input/output data list to contain a type-3 DO, as in:
put skip list( ((a(i,j) do j=1 to 5) do i=1 to 2) );
It adds the builtins PRECISION, ATAN, and ATAND, and fixes some problems with with handling OVERFLOW.

22 Jan, 2015: PL/I beta version 0.9.7 released.
This version adds the builtins REVERSE, AFTER, BEFORE, TRIM, LTRIM, RTRIM, and SEARCH. It also adds the ability to do array assignments of adjustable arrays, and optimizes assignments of arrays with matching attributes to a block move.

15 Dec, 2014: PL/I beta version 0.9.6 released
This version adds the builtin sort subroutine PLISRTD, and the builtin functions IAND, IEOR, INOT, IOR, ISLL, and ISRL compatible with IBM Enterprise PL/I. It also adds the capability to handle IBM "packed decimal" format FIXED DECIMAL data.

(The compiler and library show the date 5 Nov, 2014). A late breaking bug causes the incorrect handing of a floating picture character (such as $) when it is to be placed on an insertion character such as comma.

4 Oct, 2014: PL/I beta version 0.9.5 released
This version contains various fixes for STREAM INPUT, pictured data and CONTROLLED storage, as well as other bugfixes.

22 Jan, 2014: PL/I beta version 0.9.4 released.
This version fixes a number of bugs with CONTROLLED structures and others. A procedure map listing option will now print a listing of line numbers and offsets for all statements in a compile unit.

15 Aug, 2012: PL/I beta version 0.9.3 released.
This version contains a limited version of CONTROLLED storage. Modifications are included to simplify running PL/I programs interactively, including the L format-item and the environment option INTERACTIVE. The OPEN statement will now recognize title strings of the form "DD_string" as pointers to an envionment variable "DD_string" whose value will be actual name of the file. The DO statement now allows multiple iteration specifications, such as DO i=1,3,5,7 TO 15; In addition this version includes numerous fixes dealing with adjustable arrays.

5 Aug, 2011: PL/I Linux beta version 0.9.2a refresh.
This is a minor refresh of 0.9.2 fixing a problem causing the compiler and PL/I programs linked with the 0.9.2 library to trap during termination of the MAIN procedure when running on Linux kernels prior to 2.6. Linux users not experiencing these symptoms, and all OS/2 users, should disregard this refresh.

13 Jul, 2011: PL/I beta version 0.9.2 released.
This version includes multitasking support, including the TASK and EVENT and PRIORITY options of the CALL statement, the EVENT attribute, the COMPLETION and STATUS builtins and pseudovariables, and some callable procedures providing mutex semaphore support.

11 Aug, 2010: PL/I beta version 0.9.1 released.
New features in 0.9.1 include the PACKAGE statement, the CALL option of the INITIAL attribute, floating-point pictures (output only), and the CS, SINH, COSH, and TANH builtins.

23 Mar, 2010: PL/I beta version 0.9.0 released.
Linux is here! 0.9.0, besides using a new version numbering scheme, now supports Linux as both a native and a cross-compiler.
Additionally, the ERF, ERFC, and EXP builtins are supported.

17 Oct, 2009: PL/I beta version 0.8c released.
(0.8b was never publicly released). This version adds the ADD, MULTIPLY, DIVIDE, and HEXIMAGE builtins, and allows the single-argument forms of HBOUND. LBOUND, and DIM. CURRENTSTORAGE works correctly for unaligned bit strings and adjustable arrays and structures. Static unaligned bit string array and structure members can now have the INITIAL attribute.
This version fixes a bug that prevented generation of ELF output.

21 May, 2009: PL/I beta version 0.8a released.
This version adds list-directed input, the DISPLAY statement, and the condition-handling builtins ONCHAR, ONCODE, ONCOUNT, ONFILE, ONKEY, ONLOC and ONSOURCE. A cross-reference listing can now be produced, and subscripted label constants are supported.
ELF object files can now optionally be generated in addition to the standard OMF.

15 Feb, 2009: PL/I alpha version 0.7b released.
This release fixes the bug in 0.7a and includes some other cleanup and code improvements.
The following builtin functions are now available: BOOL, COS, COSD, LOG, LOG10, LOG2, SIN, SIND, SQRT, TAN, and TAND. The UNION attribute was implemented.

05 Feb, 2009: Do not use 0.7a.
A severe bug has just surfaced in PL/I version 0.7a. Floating-point divide was not working correctly with the new code generator. Unfortunately this is a "HIPER" bug affecting FIXED DECIMAL scaling, exponentiation and other functionality.

Version 0.7b will be available shortly with the fix for this problem and various other fixes and enhancements.

23 Dec, 2008: PL/I alpha version 0.7a released.
This is a major revision including a completely rewritten code generator that generates object files directly, without requiring an intermediate assembler step.

09 Jun, 2008: PL/I alpha version 0.6a released.
This version implements the %REPLACE preprocessor statement, adds the FROMALIEN procedure option to allow calls to PL/I from other languages, and packages the runtime library as a DLL and import library in addition to the previously distributed static object library.

25 Apr, 2008: PL/I alpha version 0.5e released.
Enhancements include conversion between scaled fixed binary and decimal, PUT DATA, except for arrays of structures, SKIP and COLUMN format.

30 Jan, 2008: PL/I alpha version 0.5d released.
Enhancements include allowing factored declarations including the INITIAL, BASED, and DEFINED attributes; also allow alternate characters for NOT and OR.

20 Dec, 2007: PL/I alpha version 0.5c released.
Major enhancements include E format output and the listing control statements %PAGE, %SKIP[(n)], %PRINT, and %NOPRINT.

5 Nov, 2007: Iron Spring Software announces the availability of the first alpha version of their new PL/I compiler. The alpha runs on the OS/2 operating system only. To download a free copy choose "Download" in the menu or here.

For information contact us at

[Home]  [News]  [About]  [Download]  [Links]  [Documentation]  [Frequently Asked Questions]  [Free Stuff]