3 ms·
Thankyou. I didn’t know about Inkscape, or anything about Common Lisp. Javascript (in V8) also has special detection & processing for very short lived objects.
by josephg 5y ago
Thankyou. I didn’t know about Inkscape, or anything about Common Lisp. Javascript (in V8) also has special detection & processing for very short lived objects. I appreciate the links!
But I was specifically responding to / confused by this claim in the GP comment:
> GC-based languages all ended up adding special syntax to add that level of control for objects when the programmer wants fine-grained control over the destructor.
(Emphasis mine)
And as you say, Java, V8 and Go do this with heuristics, not syntax. And I’m not sure if Ruby or Python do this sort of escape / generational analysis at all. On the flip side, it looks like Lua has added something like this, and C# has stack-allocated structs.
Lua + C# + CommonLisp falls very short of the “all GC languages” claim.
- masklinn 5y ago> And I’m not sure if Ruby or Python do this sort of escape / generational analysis at all. It would almost certainly be implementation specific (as it is with js really, v8 is not a langage). I would assume pypy does escape analysis, I’m almost certain cpython does not.
- veltas 5y agoOkay I have edited the post so it does not say "all".