> This makes it non deterministic because objects in OCaml can destruct at different times in your program depending on the inputs.
There's clearly a different notion of deterministic there! If your program using ref counting gets a different input, the same object might be released at a different time as well, or am I misunderstanding?
> "OCaml's automatic memory management guarantees that a value will eventually be freed when it's no longer in use, either via the GC sweeping it or the program terminating"
> So, it can guarantee your object will be freed... but only when the program terminates? That's not a very strong promise.
”A or B imply C” is not the same as ”B implies C”. There's a logic mistake there.
I think illumen is referring to the concept of "deterministic destruction", which exists in refcounted languages but not in GC'd ones. It's not quite the same as "determinism".
There's clearly a different notion of deterministic there! If your program using ref counting gets a different input, the same object might be released at a different time as well, or am I misunderstanding?
> "OCaml's automatic memory management guarantees that a value will eventually be freed when it's no longer in use, either via the GC sweeping it or the program terminating"
> So, it can guarantee your object will be freed... but only when the program terminates? That's not a very strong promise.
”A or B imply C” is not the same as ”B implies C”. There's a logic mistake there.