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,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 2002:a05:620a:632:: with SMTP id 18mr11956781qkv.205.1565230402626; Wed, 07 Aug 2019 19:13:22 -0700 (PDT) X-Received: by 2002:a9d:6289:: with SMTP id x9mr10100145otk.82.1565230402381; Wed, 07 Aug 2019 19:13:22 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!b26no10566176qtq.0!news-out.google.com!y1ni154qtn.0!nntp.google.com!b26no10566162qtq.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Wed, 7 Aug 2019 19:13:21 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=70.109.61.2; posting-account=QF6XPQoAAABce2NyPxxDAaKdAkN6RgAf NNTP-Posting-Host: 70.109.61.2 References: <01e1fc91-a20e-4b48-a10e-57d3935cd06c@googlegroups.com> <0d4e46d4-c227-4d7a-aafa-44492c6e1d41@googlegroups.com> <871ryop74h.fsf@nightsong.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Microsoft is considering moving to Rust; potential opportunity for Ada2020 From: Jere Injection-Date: Thu, 08 Aug 2019 02:13:22 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader01.eternal-september.org comp.lang.ada:57007 Date: 2019-08-07T19:13:21-07:00 List-Id: On Wednesday, August 7, 2019 at 5:09:06 AM UTC-4, Alejandro R. Mosteo wrote: > On 6/8/19 19:49, Brad Moore wrote: > > > I believe it is also not just related to concurrency. For example, if you pass a pointer to an object into a function which deletes the object, the compiler will detect that use of that pointer after calling the function is not allowed. > > Yes; concurrency safety (in a limited sense) is the side-effect, not the > main point, I'd say. I think at some point before the language was first stabilized (2015), both were actively pursued. Here are some musings from the original main developer back in 2013ish [1]. Later on, another Mozilla developer also talked about a similar topic [2]. [1]: http://smallcultfollowing.com/babysteps/blog/2013/06/11/on-the-connection-between-memory-management-and-data-race-freedom/ [2]: https://manishearth.github.io/blog/2015/05/17/the-problem-with-shared-mutability/ It is interesting that both of them kind of hint at the idea of a large single threaded program having similar challenges to a multithreaded program, at least when considering how undefined behavior, data invalidation, and data races occur.