Isolated by example
via Digitalmars-d
digitalmars-d at puremagic.com
Fri May 2 12:29:12 PDT 2014
On Friday, 2 May 2014 at 18:32:13 UTC, Dylan Knutson wrote:
> Correct me if I'm wrong here, but this seems really similar to
> how Rust does owned pointers and move semantics. Or is there a
> large conceptual difference between the two that I'm missing?
>
Yes, there are some parallels, although there's no "merging of
islands" in Rust, AFAIK.
> I believe that the issues that people are bringing up with bad
> interaction with UFCS, and losing isolated data after passing
> it to a function, are managed in Rust with the notion of a
> borrowed pointers. Perhaps something analogous to this could
> accompany the `isolated` idea?
This will definitely need more thought. I also don't think that
UFCS is special; methods should probably be just treated like
free functions with a hidden parameter, just as they are for pure.
Purity might be one part of the solution here: pure functions can
for example take isolated arguments without consuming them, iff
their parameters and the isolated variable have "incompatible"
types in that it mustn't be possible to store a reference to one
in the other. (The same is true for scoped variables: they cannot
escape their scope, even if the pure function's params are not
marked as scope.)
Another option are scope/in parameters.
All of this purity, isolated, scope, uniqueness business is
closely intertwined... there just needs to be an elegant way to
make it all fit together.
More information about the Digitalmars-d
mailing list