comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Adacore joins with Ferrous Systems to support Rust
Date: Mon, 14 Feb 2022 17:25:54 -0600	[thread overview]
Message-ID: <sueoe3$7i2$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: su8ts8$fej$1@dont-email.me

"Alejandro R. Mosteo" <alejandro@mosteo.com> wrote in message 
news:su8ts8$fej$1@dont-email.me...
> On 12/2/22 6:22, John Perry wrote:
...
>> I haven't played with Ada's task & rendezvous mechanisms in a long time. 
>> Do they guarantee an absence of data races?
>
> Not for global variables, yes for task-local ones. For any decent design 
> you'd encapsulate any shared data in a protected object or task, which 
> would give the same assurance as the bit you quoted for Rust. Then there's 
> Pragma Detect_Blocking, but that will only work for protected operations, 
> and two tasks getting in a mutual deadlock needs not to involve protected 
> operations.

Ada 2022 has "conflict checking" to detect and reject bad uses of global 
variables. It's especially important for the parallel constructs (for which 
you don't have the syntactic guardrails that you get with tasks. It doesn't 
prevent every data race, but it eliminates most of them. (You can still get 
in trouble with accesses to multiple objects; that isn't necessarily safe 
even if accesses to the individual objects are.)

But, so far as I know, GNAT doesn't implement it yet.

                                  Randy.


  parent reply	other threads:[~2022-02-14 23:25 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-02  8:57 Adacore joins with Ferrous Systems to support Rust Paul Rubin
2022-02-02 13:04 ` Luke A. Guest
2022-02-02 15:29   ` Marius Amado-Alves
2022-02-02 16:36     ` Luke A. Guest
2022-02-04 17:51       ` Stephen Leake
2022-04-18 16:01       ` Rene
2022-02-02 20:07     ` G.B.
2022-02-03 23:29     ` John McCabe
2022-02-11 17:40     ` amo...@unizar.es
2022-02-11 19:24       ` Luke A. Guest
2022-02-12 17:34         ` Alejandro R. Mosteo
2022-02-12  5:22       ` John Perry
2022-02-12 10:08         ` Marius Amado-Alves
2022-02-12 18:24         ` Alejandro R. Mosteo
2022-02-13  8:10           ` J-P. Rosen
2022-02-14 23:25           ` Randy Brukardt [this message]
2022-02-15  4:29             ` Paul Rubin
2022-02-12 23:59         ` John Perry
2022-02-18 13:24     ` Kevin Chadwick
2022-02-02 20:06   ` Paul Rubin
2022-02-03  1:34     ` Luke A. Guest
2022-02-03  2:20       ` Paul Rubin
2022-02-03  2:52         ` Luke A. Guest
2022-02-03  4:22           ` Paul Rubin
2022-02-03  9:54             ` Björn Lundin
2022-02-04  3:38             ` Randy Brukardt
2022-02-04  5:19               ` Paul Rubin
2022-02-03 11:30           ` Simon Wright
2022-02-03 12:51             ` Luke A. Guest
2022-02-04  3:20               ` Randy Brukardt
2022-02-04 10:28                 ` Luke A. Guest
2022-02-04 17:51                   ` Andreas ZEURCHER
2022-02-05  4:31                   ` Randy Brukardt
2022-02-02 16:19 ` Stephen Leake
2022-02-02 18:48 ` Gautier write-only address
2022-02-02 20:03   ` Paul Rubin
2022-02-02 20:45     ` Dennis Lee Bieber
2022-02-12  4:42 ` 25.BZ943
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox