From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!nntp-feed.chiark.greenend.org.uk!ewrotcd!newsfeed.xs3.de!io.xs3.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED.a109-49-159-46.cpe.netcabo.pt!not-for-mail From: Jacob Sparre Andersen Newsgroups: comp.lang.ada Subject: Re: Why are Ada compilers difficult to write ? Date: Sun, 24 Jun 2018 15:41:13 +0200 Organization: JSA Research & Innovation Message-ID: <874lhsnvye.fsf@adaheads.home> References: <584564c2-9f64-4965-b045-535cdaf899c0@googlegroups.com> <7cb22c58-3009-47f0-8fe7-62f3cd61785d@googlegroups.com> <2d617160-ac33-40e6-a06a-97cc0b53062d@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: franka.jacob-sparre.dk; posting-host="a109-49-159-46.cpe.netcabo.pt:109.49.159.46"; logging-data="26734"; mail-complaints-to="news@jacob-sparre.dk" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) Cancel-Lock: sha1:w5nbI3aFIghgA2Yrb8VvT1P0B2U= Xref: reader02.eternal-september.org comp.lang.ada:53278 Date: 2018-06-24T15:41:13+02:00 List-Id: "Dan'l Miller" writes: > On Saturday, June 23, 2018 at 12:56:43 AM UTC-5, J-P. Rosen wrote: >> Well, it is an attempt at making pointers safer, and this is >> inherently difficult. Other languages didn't even try... > > Except Rust nowadays, and hopefully Ada2020 will catch up The problem with Rust is that the language isn't well specified (a "reference implementation" doesn't count as a specification). At Ada-Europe 2018, Maroua Maalej presented a paper with the title "Safe Dynamic Memory Management in Ada and SPARK". It explains how you can implement borrowing access types in Ada quite trivially (I had figured out the basics myself beforehand). The challenge is that borrowing access types are behaviorally incompatible with existing Ada access types, so you have to select the behaviour per access type. - And this still doesn't solve all the problems related to anonymous access types (i.e. "the heart of darkness"). Greetings, Jacob -- "Logic, my dear, merely enables one to be wrong with authority!"