6 ms·
Iron Spring PL/I Compiler
- pdw 1y agoAccording to their news page, they started development on OS/2... in 2007... Amazing. > 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.
- OhMeadhbh 1y agowhy?
- skissane 1y agoInteresting that it is available for OS/2 and not Windows. If you are already supporting Linux and OS/2, it isn't much more work to support Windows too–and will likely attract many more users than OS/2 support will The FAQ [0] says: > Iron Spring PL/I is free for non-commercial and hobbyiest use. The price of the commercial version has not yet been determined, but will be approximately two orders of magnitude less than IBM's compiler for Windows. Academic, Government, and Volume licenses will be available. A CD will be available at additional cost. I'm sceptical the commercial version is ever going to happen now. This is a very small and shrinking market, 20 years ago selling it would have been a tough gig but you might have had some success, the same success today is going to be orders of magnitude harder. If you had a time machine to take this product back to the 1990s, it probably would have done much better, though even there it would have been a decisively niche product. > The compiler is currently closed-source. I wonder why people do this – I get why you want to keep your software closed source if you have realistic plans to commercially exploit it – but if you don't, why not just let people have the source code? I've heard before stories about solo closed source developers who suddenly and unexpectedly die, and they'd left the source code on an encrypted disk, and even if their family gives some technical friend permission to try to retrieve it, turns out to be impossible because nobody knows the password. Open source, not an issue. [0] http://www.iron-spring.com/faq.html http://www.iron-spring.com/faq.html
- Pet_Ant 1y ago> I've heard before stories about solo closed source developers who suddenly and unexpectedly die, and they'd left the source code on an encrypted disk, and even if their family gives some technical friend permission to try to retrieve it, turns out to be impossible because nobody knows the password. Open source, not an issue. I feel we need more code escrows for that reason. Keep it commercial till you die, fine, but let it live on afterwards.
- glhaynes 1y agoBest guess: that's because no organizations are writing their first PL/I apps in 2025; and there aren't many PL/I-using organizations who weren't big IBM customers, who largely migrated from OS/2 to Linux. So I wouldn't be shocked if a Windows version wouldn't bring in enough money to make even a relatively easy port worth it. Next-to-best guess: author was an OS/2-head, many of whom have been hating M$ Windoze for 30 years at this point! Ah, those were good days.
- skissane 1y ago> So I wouldn't be shocked if a Windows version wouldn't bring in enough money to make even a relatively easy port worth it. True, but I’m sceptical the Linux or OS/2 versions have ever brought in any money either. This looks to me suspiciously like a hobby project masquerading as a commercial venture
- Koshkin 1y ago./plic advent.pli (ERR999)No valid statements in source program (Goes back to reading an article about Common Lisp.)
- rep_lodsb 1y agoYou need to specify margins for advent.pli (because the text outside them is not part of the source code), and an output file name: ./plic '-m(2,72)' -oadvent.o advent.pli Then link with this command: ld --oformat=elf32-i386 -melf_i386 -z muldefs -Bstatic -e main -lprf -L ./lib -o advent advent.o That gets you a binary which will run, unfortunately something still doesn't work right when loading the advent.dat file: Initializing... Reading section # 1 Fatal error # 0 (the one included in the zip file does work however, so it's likely another missing option rather than a problem with the compiler?)
- fortran77 1y agoThis was my first programming language. CS 101 was taught in PL/I, on punch cards, when I went to college. We actually used a Cornell dialect called "PL/C" While it's called "Pee el one" it's rendered PL/I. So the title is wrong; the article has it correct. Please fix it! See: https://en.wikipedia.org/wiki/PL/I https://en.wikipedia.org/wiki/PL/I
- bilegeek 1y ago> it's rendered PL/I Fixed.
- mdaniel 1y agoTook 'em a while to get to the "what does this thing look like?" part https://en.wikipedia.org/wiki/PL/I#Hello_world_program https://en.wikipedia.org/wiki/PL/I#Hello_world_program
- Polizeiposaune 1y agoIn the context of Multics it was generally spelled "PL/1" rather than "PL/I" (the latter being IBM usage); source files named xxx.pl1, compiled with the "pl1" command. See for instance https://www.multicians.org/pl1-raf.html https://www.multicians.org/pl1-raf.html
- SoftTalker 1y agoSame, first CS class used PL/I though we used terminals not punch cards.
- _zagj 1y agoPL/I is still used on IBM Z (formerly zSeries) mainframes, along with COBOl and JCL (JCL = Job Control Language. DEC had their own version called DCL: https://en.wikipedia.org/wiki/DIGITAL_Command_Language https://en.wikipedia.org/wiki/DIGITAL_Command_Language).
- kjellsbells 1y agoI dont sense much love in the comments, but I find this kind of computing niche kind of useful. There is more to life than arguments over Rust. Computer systems can have lifetimes measured in multiple generations. Etc. It is interesting to see what is going on elsewhere in the galaxy, so to speak. These guys seem passionate about what they do in the same way that other niche companies are, e.g. Isode with X.400 or Arca Noae on OS/2. Good luck to them. The blurb for their lead guy claims he's been involved in PL/I since 1965. I'm estimating that would make him 80 now. If he is still cranking out compiler code at 80 I hope this is a golden years/fun project for him.
- shrubble 1y agoThere is MULTICS, which was released as open source a while ago, and an emulator was written for it also. Since MULTICS had a high quality PL/I compiler, you can install the emulator to play with the language. The "shell" is different from Unix but shares some similarities. About 3/4 of the way down this page, is the PL/I source code: https://multicians.org/pl1.html https://multicians.org/pl1.html
- dfawcus 1y agoThere is also a CP/M PL/I compiler, and apparently also CPM-86 and DOS versions. Simply because some of the source file (1 or 2) for CPM are written in PL/1, rather than the majority having been written in PL/M, then eventually translated to assembler. Here we go: http://www.cpm.z80.de/binary.html http://www.cpm.z80.de/binary.html PLI-80 BINARY : 146K This is the PLI compiler. It is very compatible with the IBM PLI compiler used on the 360. The only functions I found missing were DATE and TIME, which were easy to fake out. (Apparently this is version 1.0). PLI-80 version 1.3 : 111K Here is the PLI-80 version 1.3 compiler and libraries. PL/I-80 version 1.4: 188K - version 1.4 including quite a few example files
- trealira 1y agoThere are some books at my university about how to program on PL/1. So, I've wanted to write some code with it out of sheer curiosity for some time (especially given a lot of the "interesting features" I've heard about that modern languages don't all have). I only lacked a compiler to use. Thanks for finding one, OP.
- palmotea 1y ago> (especially given a lot of the "interesting features" I've heard about that modern languages don't all have) Such as?
- pjmlp 1y agoBounds checking in strings and arrays in a well known systems language, 10 years younger. :)
- trealira 1y agoI remember reading this link that went through them, but the link is dead now: https://minnie.tuhs.org/pipermail/tuhs/2021-November/024695.html https://minnie.tuhs.org/pipermail/tuhs/2021-November/024695.... But a couple interesting things I remember hearing (though I'm not sure if they were in the linked page) were passing alternate return address labels to functions, and resumable exceptions (although Lisp and Ruby do have this). Also, not that unique, but that no keywords are reserved, and so you can have variables named "if" and such.
- jll29 1y agoI also wrote a language in which keywords are not reserved, called Leazy, during high school ( https://github.com/jochenleidner/leazy https://github.com/jochenleidner/leazy ), but just for fun. It`s arguably a good idea to treat keywords as reserved, in order to avoid confusion and to write faster compilers. No-one should (be able to) write confusing code like: if if = then then then = else else else = end end if It's good to have a PL/1 compiler available to those that hwve legacy needs and that want to learn about the language, but it has been said it was overly complex (what I read about it sound like it was "the C++ of its time"). Since then, many language designers, at least the good ones (e.g. Wirth, Gosling), have recognized that less is more.
- vincent-manis 1y agoI haven't written a PL/I program since about 1985, but I still have a certain affection for the language. It was a genuine attempt to create a new language that would be better than Fortran and Cobol (and Algol, for that matter). The designers bit off way more than they could chew; it has the equivalent of threads, but threads weren't understood at all in those days. Even procedures were not understood: because of the multitasking, on procedure entry, the original IBM PL/I (F) compiler used a system call (GETMAIN) to allocate a stack frame, which was freed on exit. This led to the hilarious advice in the (F) Programmers' Guide: “Do not use procedures, they are expensive.” The preprocessor was another problem. Its language was Turing-complete, but programs that used it were essentially undebuggable.You had to look at the preprocessor output (which was generally unreadable) to fix even the smallest mistake in using it. Finally, the language designers followed the Cobol principle of making every pre-defined facility a statement. So there are record I/O statements, stream I/O statements, and on and on. This would all have been much better done with comprehensive library facilities, which were not well-understood in those days. With all of that said, if I were to find myself required to write PL/I code nowadays, I would find it a tolerable matter. I'm glad, even if it's only for legacy code, that the Iron Spring compiler exists. (And I even managed to get this comment done without mentioning the time that the PL/I (F) compiler produced a box of printer paper, saying “ERROR: COMPILER IS UNABLE TO ABORT”, over and over, double-spaced, for 2000 pages, accompanied by a nasty letter explaining that I was “abusing” Computing Centre services. That really was a rocky time for PL/I programmers.)
- pjmlp 1y agoIt is one of my favourite languages, but somehow I think C++ has gotten beyond the complexity level PL/I was famous for among language designers, and you kind of refer to. Apparently, we always end up having to reboot language design after a certain threshold of putting features into them.