Memory allocation purity
David Nadlinger via Digitalmars-d
digitalmars-d at puremagic.com
Thu May 15 15:30:55 PDT 2014
On Thursday, 15 May 2014 at 15:09:32 UTC, Steven Schveighoffer
wrote:
> But in this case, you have ignored the rules, […]
Which rules exactly? My point is mainly that this area of the
language is underspecified.
> This means format("%x", ptr) isn't allowed to be pure?
The short answer would be: Yes. The alternatives seem to be:
- Disallowing memory allocations in pure code (not workable)
- Bidding farewell to the idea that pure + no mutable
indirections means FP-sense purity.
> What about calculating index offsets? Note that pointer math
> between two pointers on the same block of memory is perfectly
> legitimate.
Taking offsets within the same block are fine. Even in the light
of GC allocations being pure, this doesn't lead to any
non-determinism, as there isn't any mechanism for the relative
offset between whatever you are considering to change without any
outside input.
> I would expect that someone could be able to write a type
> equivalent to a slice, and it should be allowed to be pure.
Yes.
David
More information about the Digitalmars-d
mailing list