Hacker News new | past | comments | ask | show | jobs | submit login
On-The-Fly Garbage Collection: An Exercise in Cooperation (1978) [pdf] (lamport.azurewebsites.net)
51 points by mpweiher on Aug 10, 2017 | hide | past | favorite | 12 comments


And still relevant. Some things don't change.

One of the professors at the University I graduated from used to say: "Basically everything in this(IT) industry was invented during the seventies. It's only now that we're able to use all that knowledge."

> It's only now that we're able to use all that knowledge.

This remark at least partly justifies the current situation - a lot of the things people invented in the 70s was too computationally expensive to do in practice then, but only becomes feasible to do now.

On the one hand that's kind of cool, but also really sad. We should do better.

It's more that progress has become more incremental, while most of the low-hanging fruit has already been picked (as in other disciplines). But progress has not stopped.

For example, contrast what the 1996 and 2011 editions of the Garbage Collection Handbook have to say on (hard) real-time garbage collection. Real-time GC has seen a lot of progress since 2000.

And there have been also plenty of discoveries in other areas. For example, Monte-Carlo tree search, as used by Go-playing programs, is about a decade old [1].

[1] https://hal.inria.fr/inria-00116992/document

There was a lot of progress on GC in the nineties, a couple advances in type theory, a new way to organize databases, and at least two new families of compression algorithm. It's not all downhill.

I'm not aware of the GC progress. Generational with compacting young and mark-sweep old has been around since Smalltalk irrc. Was it making it concurrent?

Every issue of SIGPLAN in the late nineties had a new paper on improvements or alternatives to generational collectors. Off the top of my head, page marking, to reduce old generation collection, then we had pretenuring and that expanded into escape analysis in 99 or the '00s

Superpipelining interpreters and inlining polymorphic dispatch are some of my favorites for the '00s.

The first cycle collectors for reference counting too, so backup tracing wasn't required.

> a new way to organize databases

Is this referring to graph databases, or something else?

Log structured merge tree.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact