April 22, 2026   
-----------

This is the beta version 0.3.1 of the Iron Spring PL/I Preprocessor (ISPP).
ISPP is intended to be a backward-compatible version of the IBM 2.3
preprocessor, with some features borrowed from IBM Enterprise PL/I and
other sources.

Contents
--------

 1. ppread.me - this file
 2. ispp      - the Linux executable for the preprocessor
 2. ispp.exe  - the OS/2 executable for the preprocessor
 4. Iron-SpringPLIPreprocessor.pdf - Preprocessor reference
 5. samp      - directory containing a sample program and output
    . preproc_test.pli   - sample program to exercise all preprocessor 
                           features
    . preproc.sh         - command to preprocess the sample
    . preproc_test.ins   - the "insource" listing of the sample, showing all
                           statements
    . preproc_test.dek   - the preprocessed output of the sample
    . preproc_win.LST    - the "insource" listing of the sample, processed
                           by IBM PL/I for Windows V2.R1.07
    . preproc_win.DEK    - the preprocessed output of the sample, processed
                           by IBM PL/I for Windows V2.R1.07

Modifications
-------------
Changes for 0.3.1
  . The PARMSET builtin returned incorrect results.                  
  . Order of appearance causes problems if one preprocessor procedure
    call another.                                                         
  . Output margins not honored for preprocessor output.              

Changes for 0.3.0
  . The major change to version 0.3.0 is to clean up parsing problems
    with the  ability to differentiate preprocessor statements from 
    input text. Problems with IF-Statement logic have been fixed (again). 

Changes for 0.2.1
  . Bugs parsing IF-statements have been fixed. Currently a comment
    between the %Then-unit and the %ELSE statement will still cause
    an error.
  . Bugs in preprocessor call, return, and handling of omitted arguments
    have been fixed. The PARMSET builtin now functions correctly for
    omitted positional arguments.
  . %NOTE statement with a severity of 16 causes immediate termination
    of the preprocessor. 

Changes for 0.2.0
  . A bug has been fixed where blank input lines sometimes confused the
    parser, causing it to drop text.
  . Incorrect name may be generated for INSOURCE file.
  . %DECLARE not diagnosing illegal attributes. 
  . Preprocessor not setting return code or displaying on errors.
  . The command-line option -ed instructs the preprocessor to display
    error and warning messages on stderr as well as print them on
    the insource listing. 
  . Previous preprocessor versions did not accept bit constants. These
    have been added, including hexadecimal and octal bit constants, and
    hexadecimal character constants, and other PL/I  fixed-point numeric 
    constants such as hexadecimal binary. Break characters ('_') are 
    allowed in numeric constants to improve readability.   
  . A new heap storage manager has been created for OS/2, replacing the 
    system heap storage management functions. This is a simpler
    version than the current Linux heap manager, while providing 
    roughly equivalent performance. It is expected that this will be
    migrated to the Linux version of the preprocessor, and to the 
    compiler, in the future.
       
Changes for 0.1.6
  . IF-statements might incorrectly execute both the THEN and the ELSE paths.
  . % in multi-line comments or character strings in input text treated as 
    preprocessor statement.
  . Added display messages for invalid command switches.
  . Corrected problems converting and using bit constants.
  . Name of output insource file truncated.

Changes for version 0.1.5
  . Improvements to the input scanner and text storage. 
  . OS/2-specific fixes.
Other enhancements include:
  . Include files may now optionally be preprocessed when encountered.
  . Input and output margins may be specified
  . The SYSPARM builtin is now implemented
  . Numerous bug fixes and tweaks

ISPP can be downloaded from:
  http://www.Iron-Spring.com/download/

Bugs should be reported to:
  mailto:bugs@iron-spring.com?Subject=ISPP
(success reports welcomed also)

Thanks to all who have submitted code for testing.
