Memory safety depends entirely on GC ?

deadalnix via Digitalmars-d digitalmars-d at puremagic.com
Tue Feb 24 13:04:51 PST 2015


On Tuesday, 24 February 2015 at 19:20:37 UTC, Andrei Alexandrescu 
wrote:
>> Compared to what ?
>
> There is no comparison involved. The proposal is too 
> complicated for what it does. -- Andrei

There is always a comparison involved. Comparison options 
includes:
  - Not solving some of the issues we have and call it a day.
  - Add simpler solution dedicated to each of these problems.

The problems we are talking about are:
  - safe RC
  - fast GC by using type qualifier guarantee.
  - less reliance on GC by producing less garbage.
  - enforcing type qualifier constraint.
  - enabling more code to be @nogc (especially exception)
  - being able to delegate the memory management policy to the 
user.
  - immutable and shared building.
  - manipulating object of limited lifetime (DIP25 solve this 
partially).
  - `unique` message passing .
  - safe parallelism on graph of object instead of only value 
types.
  - lock on graph of objects (shared containers).

Now it is clear that we can come up with simpler solution for 
some of these problem than whatever all encompassing solution 
would be. It is also clear that is is not possible to get a set 
of simpler solution that is, as a whole, simpler than an all 
encompassing solution. That means that some of the above 
mentioned point must be acknowledged as not going to be fixed.

It is also to be noted that these above mentioned problems are 
not orthogonal. For instance, getting various GC optimizations in 
that take advantage of type qualifiers guarantee require that 
these guarantee are enforced. To get these constraints enforced, 
you need to be able to build immutable and/or shared in a way 
that don't break these constraints, and so on.


More information about the Digitalmars-d mailing list