Comment by amedvednikov

2 years ago

> Static analysis (autofree) with reference counting, by itself, cannot theoretically free all of the objects during the runtime of the program.

It can't, that's what it says on the home page. Stuff that can't be freed during compile time is handled via GC.

What's the issue again? What's the impossible claim?

> It can't, that's what it says on the home page. Stuff that can't be freed during compile time is handled via GC.

The documentation I've quoted and posted a source to specifically says that all objects are freed either by 1) autofree or 2) reference counting.

> What's the impossible claim?

The impossible claim is that all objects are freed either by 1) autofree or 2) reference counting. As I've mentioned, neither static analysis (which is what autofree is) nor reference counting is capable of completely freeing all unreachable objects at runtime - reference counting is in particular unable to handle cyclic references.

> What's the issue again?

The issue is you vehemently claiming that V has never, ever promised a feature that was impossible - which is false, as I've demonstrated and cited with reference to archive.org of V lang documentation. So can you stop doing that, please?

  • You pointed to an old version of the documentation. RC was changed to tracing GC. Things can change in the design.

    V never promised autofree without GC or RC.

    • > You pointed to an old version of the documentation

      Yes, because that version of documentation specified a feature that was impossible, which is exactly what we're discussing.

      > V never promised autofree without GC or RC

      First of all, I never mentioned "autofree without RC". I am strictly speaking about "autofree without GC".

      Second of all, V documentation has had the "autofree frees 90% of objects, RC frees everything else" segment, which clearly implies no GC. So the documentation has clearly specified that feature, which was an impossible feature.

      Even the next paragraph says:

          The developer doesn't need to change anything in their code. "It just works", like in Python, Go, or Java, except there's no heavy GC tracing everything or expensive RC for each object.
      

      So yeah, V promised autofree without GC.

      8 replies →