comp.lang.ada
 help / color / mirror / Atom feed
From: Optikos <optikos@verizon.net>
Subject: Re: Implementing Rust's borrow checked pointers
Date: Tue, 24 Sep 2019 04:23:28 -0700 (PDT)
Date: 2019-09-24T04:23:28-07:00	[thread overview]
Message-ID: <cc19a301-1198-4213-b746-ae2bc1078be8@googlegroups.com> (raw)
In-Reply-To: <ea369318-97cb-434f-9ba1-844d83db5f61@googlegroups.com>

On Tuesday, September 24, 2019 at 4:05:45 AM UTC-5, Lucretia wrote:
> Hi,
> 
> Been talking to someone on Telegraph and he was saying Ada should implement this, just wondering
> whether Ada could? I posed a slight change to access type specification to do this, what do people
> think?
> 
> type P is restricted access X;
> 
> Restricted in this case would mean that once assigned it cannot be re-assigned into or out of with out
> some sort of move operation, which could be implemented as an attribute on the access type.
> 
> A : P := L'Access;
> B : P := A'Move; --  A cannot no longer be used.
> 
> begin
>    A.all ... ; -- raises exception.

No, to be as useful as Rust's borrow checker, instead of raising exception, it needs to be a compile-time error.  The compiler needs to maintain a whole-program directed graph at compile-time, not defer a detection-based localized analysis to run-time.

> I don't know enough about all this to put a complete proposal together, but I think I've got the basics
> understood.
> 
> Luke.

  parent reply	other threads:[~2019-09-24 11:23 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-24  9:05 Implementing Rust's borrow checked pointers Lucretia
2019-09-24  9:57 ` Dmitry A. Kazakov
2019-09-24 11:23 ` Optikos [this message]
2019-09-24 12:02   ` Lucretia
2019-09-24 14:08     ` Optikos
2019-09-24 18:56     ` Simon Wright
2019-09-24 19:13     ` Keith Thompson
2019-09-24 20:15       ` Optikos
2019-09-24 20:31         ` Keith Thompson
2019-09-24 20:40           ` Optikos
2019-09-24 20:53             ` Keith Thompson
2019-09-24 22:09       ` Lucretia
2019-09-24 22:24         ` Keith Thompson
2019-09-25  4:36         ` J-P. Rosen
2019-09-25 15:04           ` Simon Wright
2019-09-24 12:23 ` Lucretia
2019-09-25 17:21   ` Stephen Leake
2019-09-24 16:24 ` Jeffrey R. Carter
2019-09-25 16:26   ` Florian Weimer
replies disabled

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