Sure, ARC is a form of very specific, constrained garbage collection.
Compile-time, reference-counting GC, not runtime tracing GC. So no background collector, no heap tracing, and no stop-the-world pauses. Very different from the JVM, .Net, or Go.
Compile-time, reference-counting GC, not runtime tracing GC. So no background collector, no heap tracing, and no stop-the-world pauses. Very different from the JVM, .Net, or Go.
Additionally there isn't a single ARC implementation that is 100% compile time, that when looking at the generated machine code has removed all occurrences from RC machinery.
Also implementation has nothing to do with CS definition, there are tracing GC libraries for C as well.
My point is about crossing the misunderstanding between the "two camps".
Saying that the language has GC just because it has opt-in reference counting is needlessly pedantic