Iron Spring PL/I

Release date: 
Wednesday, 8 November, 2017



Authors/Port authors:

Compiler for the PL/I programming language, although it is currently missing some features.

PL/I is a powerful programming language suitable for a wide range of problems. PL/I has been used to write operating systems and compilers, simulations, real-time programs, mathematical software, spreadsheets, GUI programs, business applications, and much more.

 PL/I is a more secure programming language.

  • Karger and Schell, in their retrospective on Multics Security say:

    “a PL/I programmer would have to work very hard to program a buffer overflow error, while a C programmer has to work very hard to avoid programming a buffer overflow error.”

  • PL/I is widely used on mainframes and midrange systems today, but since the demise of Digital Research, Inc. has not been readily available on personal computers.

    Ian Hayes of Clarity Consulting says:

    “PL/I is heavily used by about 25 percent of all IS organizations around the world, and many additional organizations have at least several mission-critical PL/I applications.”

This software is distributed as compressed package. You have to download and manually install it; if prerequisites are required, you will have to manually install them too.

Manual installation

Program is distributed as ZIP package: download to temporary directory and unpack to destination folder. Read the included readme_os2.html file. See below for download link(s).

Following ones are the download links for manual installation:

Iron Spring PL/I v. 0.9.10a (8/11/2017) Readme/What's new
Changes Changes in the current version Added ROUND builtin. Added compiler option "-N" to generate line number information for debugging. Changes in version 0.9.10a Bug number Fixed in version Description - * 404 0.9.10a RETURN statement should be invalid in ON-Unit - * 403 0.9.10a SIZE builtin returns incorrect value for structures - * 401 0.9.10a KEY and INTO keywords incirrectly disgnosed on READ - * 398 0.9.10a Incorrect conversion of CHAR to UNSIGNED - * 397 0.9.10a STORAGE of some adjustable strings causes compiler trap - * 395 0.9.10a Some CONTROLLED variables initialized incorrectly - * 394 0.9.10a Some expressions in WHEN statements cause errors at runtime
Iron Spring PL/I v. 0.9.10 (9/10/2017) Readme/What's new
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, see the readme file for your system for a listing.
Iron Spring PL/I v. 0.9.9b (23/7/2017) Readme/What's new
Changes in the current version Added ROUND builtin. Added compiler option "-N" to generate line number information for debugging. Bug number/Fixed in version/Description 373 0.9.9b Compiler error for PLIFILL with expression as second argument 372 0.9.9b 'S' picture item prints ' ' instead of '+' 371 0.9.9b SEARCH returns incorrect result with multi-character first argument 368 0.9.9b REVERSE of VARYING string returns incorrect length string 367 0.9.9b RUNTIME error with expressions in INITIAL attribute 365 0.9.9b Runtime error with compound expressions using INDEX 361 0.9.9b Empty source file crashes compiler 356 0.9.9b Multiple data items not allowed in TYPE3-DO list 354 0.9.9b Compiler trap with ",," in structure declaration 353 0.9.9b Compiler error converting FLOAT constant to FIXED BINARY 351 0.9.9b Incorrect conversion of FLOAT constants 348 0.9.9b Compiler trap on DO statement with STEP clause 347 0.9.9b Nested DO loop fails to loop 346 0.9.9b Runtime trap for FLOAT to FIXED conversion in DO statement 345 0.9.9b DO loop tests incorrectly if increment is variable 343 0.9.9b Error compiling some inbedded subscripts in locator qualification 342 0.9.9b Compiler error with expression in SELECT statement 340 0.9.9b Runtime error with INITIAL CALL 339 0.9.9b Storage overlay problems 338 0.9.9b Complex bit expressions may return incorrect result 337 0.9.9b STRING builtinpasses incorrect length when used as procedure argument 336 0.9.9b Listing lines truncate after 100 characters 335 0.9.9b Compiler trap on SUBSTR with STRINGRANGE enabled and the length argument omitted 328 0.9.9b Error compiling subscripted statement labels 312 0.9.9b Error compiling type3-DO in GET/PUT 309 0.9.9b Compiler not correctly derefeencing arrays of structures 303 0.9.9b Compiler prematurely detects EOF in source 191 0.9.9b LIKE attribute not recognized in parameter declarations
Iron Spring PL/I v. 0.9.9a (15/12/2016) Readme/What's new
Bug number/Fixed in version/Description 333 0.9.9a Character '7F'x should print as '.' in dumps 332 0.9.9a Array of structures padded incorrectly 331 0.9.9a Some format retetition factors raise ERROR at runtime 330 0.9.9a Non-positive argument to delay raises ERROR at runtime 329 0.9.9a FIXEDOVERFLOW not raised for fixed decimal operations 328 0.9.9a Error compiling subscripted statement labels 327 0.9.9a Format with non-integer widths raises ERROR at runtime 324 0.9.9a Sort sequence problems in plistrd 323 0.9.9a plisrtd has undocumented minimum record length requirement 321 0.9.9a Structures not padded to size of alignment 320 0.9.9a LBOUND/HBOUND incorrect for adjustable arrays 317 0.9.9a ZERODIVIDE only raised once 316 0.9.9a CONVERSION raised for GET LIST at EOF 315 0.9.9a SELECT with substring argument fails to match 312 0.9.9a Compiler error compiling stream do iteration 311 0.9.9a Runtime trap passing adjustable string arg tp adjustabls parameter 308 0.9.9a Error compiling subscripted entry references 307 0.9.9a DO loop doesn't iterate after GOTO 306 0.9.9a Fixed binary divide returns incorrect results 305 0.9.9a Compiling PUT DATA(array_elem) gets error 701 304 0.9.9a Invalid intrinsic call at runtime converting FLOAT to CHAR 303 0.9.9a Compiler prematurely detects EOF 302 0.9.9a Incorrect result length for AFTER builtin
Iron Spring PL/I v. 0.9.9 (15/9/2015) Readme/What's new
Bug number/Fixed in version/Description 297 0.9.9 (OS/2) Read format F CRLF file raises RECORD condition 296 0.9.9 PUT DATA(<minor structure> generates incorrect output 295 0.9.9 Assignment of string constant to pictured data causes error 294 0.9.9 Compiler error initializing too many FIXED DECIMAL array elements 293 0.9.9 SIZE check for FIXED DECIMAL generates incorrect code 292 0.9.9 Compiler error if second argument to IAND or IOR has precision<=15 291 0.9.9 Incorrect code generated to assign scalar to structure 290 0.9.9 Error in assignment of structures containing pointers 289 0.9.9 Incorrect alignment adding and subtracting constants 288 0.9.9 Incorrect scale factor for the result of the ROUND builtin
Record updated last time on: 21/05/2018 - 17:06


English Dutch French German Korean Russian Swedish

Add new comment