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.rrsoftware.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: How to get Ada to "cross the chasm"? Date: Fri, 4 May 2018 18:55:01 -0500 Organization: JSA Research & Innovation Message-ID: References: <1c73f159-eae4-4ae7-a348-03964b007197@googlegroups.com> <661b1ce8-f4e4-4a4b-9a07-ebe36d75f010@googlegroups.com> Injection-Date: Fri, 4 May 2018 23:55:03 -0000 (UTC) Injection-Info: franka.jacob-sparre.dk; posting-host="rrsoftware.com:24.196.82.226"; logging-data="26151"; mail-complaints-to="news@jacob-sparre.dk" X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 Xref: reader02.eternal-september.org comp.lang.ada:51996 Date: 2018-05-04T18:55:01-05:00 List-Id: "Jere" wrote in message news:661b1ce8-f4e4-4a4b-9a07-ebe36d75f010@googlegroups.com... ... >Basically, in Rust it forces you to use synchronization primitives >on any variable being used in a thread (task equiv), which would be >similar to if Ada required all variables in a thread to be protected >types or fulfilled some other task safe context. This is essentially what Ada 2020 is requiring(*) for parallel execution. (Tasks are of course unchanged for compatibility reasons, and one can turn off the checks for parallel execution if you think you know what you're doing.) (*) This has changed a lot and it is still is mostly imaginary (little wording to date) so I surely hope this remains true. If not, I'll recommend delaying Ada 2020 until it is true, I don't see any point in yet another way to screw up with no compiler help. The formal definition is that only subprograms that are globally synchronized and nonblocking can be called from a parallel construct. Both global synchronization and nonblocking are statically checked. Randy.