On Wednesday, 2 August 2023 at 17:55:12 UTC, Nick Treleaven wrote:
On Wednesday, 2 August 2023 at 17:52:00 UTC, Nick Treleaven
wrote:
Now I'm wondering why those functions are marked `pure` - they
must affect the GC's bookkeeping state.
I guess it was because the GC's internal state is not supposed to
be observable outside internal GC functions. I find it harder to
accept some of those than `GC.malloc` being pure, because
GC.disable and GC.enable will affect how long future allocations
will take. That latency can be significant and observed by the
program. Also conceptually they are changing GC state.