From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Path: eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Brian Drummond Newsgroups: comp.lang.ada Subject: Re: is there a version of unix written in Ada Date: Tue, 6 Oct 2020 23:54:11 -0000 (UTC) Organization: A noiseless patient Spider Message-ID: References: <00cd3aaa-d518-43a2-b321-58d6fae70aebo@googlegroups.com> <57eb7a65-51ea-4624-b9dc-9c4dda0fee59n@googlegroups.com> <5f70fd3b$0$13541$426a74cc@news.free.fr> <87wo0d3iac.fsf@nightsong.com> <87sgb02l7b.fsf@nightsong.com> <875z7vyy1u.fsf@nightsong.com> <87362wl3rr.fsf@nightsong.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Tue, 6 Oct 2020 23:54:11 -0000 (UTC) Injection-Info: reader02.eternal-september.org; posting-host="b0007342bef94f16f7ae04891aafe0f3"; logging-data="30772"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19eX44rCk/tAHBPDgVYDEyXN1Y1pJaSsTw=" User-Agent: Pan/0.145 (Duplicitous mercenary valetism; d7e168a git.gnome.org/pan2) Cancel-Lock: sha1:ooOdMY3D94WKTM9+qsMvKKdAQAs= Xref: reader02.eternal-september.org comp.lang.ada:60412 List-Id: On Fri, 02 Oct 2020 14:24:56 -0700, Paul Rubin wrote: > Brian Drummond writes: >> The Rekursiv's own language, Lingo... prove[d] that type safety and >> dynamic binding are not mutually exclusive, and that hardware support >> enforcing at runtime a lot of correctness [1] that Ada-95 did later at >> compile time, was possible. > > 1) I don't know if the Rekursiv predated the Lisp machine, but maybe > that did about the same? Lisp machines were around the same era; the Symbolics one probably earlier. Less ambitious in their aims but broadly in the same direction. I don't know even know if they made it from the trays of TTL stage to LSI logic. > 2) Runtime checks don't really "count" for critical applications. They > just ensure an orderly runtime crash if a type error manifests, but Ada > is designed for writing applications that are simply not allowed to > crash. The "orderly crash" could lead to recovery actions in an interactive system, but otherwise, yes... One of the aims of runtime checks, though, was to offload work from the compiler(!!!) ... it's easy now to forget how complex and heavyweight a compiler was, on machines of that era - and how simple those same compilers would look today - but requiring less from the compiler was a serious and worthy design goal at the time, hence the emphasis on "orthogonality" in (CISC) instruction sets, to minimise the number of oddball rules a code generator had to understand. > 3) I wonder where the iAPX-32 comes into this. I think it was designed > to run Ada, but I don't know much more about it. It turned out to be > complicated enough that it had to be spread across 3 chips using the > process technology of the time, and the inter-chip communication made it > too slow to use. I still have a (typewritten!) iAPX432 CPU handbook. Don't know fi it was explicitly aimed at Ada, though it was definitely aimed at providing hardware support for (imperative) HLL languages. But it was a chip too far. It attempted to support any size of instruction, even 5 bits, and squeezed its microcode infinitely slowly through a 16-bit toothpaste tube, thanks to pin count limitations on those three chips... > But I wonder, these days, if a single chip > implementation would take as large a speed hit vs. conventional > architectures as the 3 chip version did. For sure. Even just the Rekursiv's 128 bit microcode bus (talking to about 40 execution units) added to the 432 would have eliminated a lot of the speed bottlenecks. But 299 pin packages almost a decade earlier would probably not have met Intel's budget! -- Brian