|
Subject: Specifying GC behaviour Newsgroups: gmane.lisp.steel-bank.devel Date: 2007-04-09 09:04:28 GMT (1 year, 21 weeks, 4 days, 12 hours and 19 minutes ago) Howdy! Following up discussions at ILC and #lisp.. Franz have an exciting new concept called "zero-cons" programming. This is the result of looking frankly at what we know about the garbage-collected heap and following it to its logical conclusion: In Lisp we can't rely on any characteristics of the heap what-so-ever, therefore we have to avoid it as much as possible to get efficient and/or predictable behaviour. This is patently absurd, but it highlights an important point. If you don't know how the heap behaves then you can't write efficient programs that use it, any more than you could write efficient programs on a sequence that may be a list or may be a vector. So suppose that a nebulous and ill-defined heap is next to useless. Do we conclude that heap-free programming is the way forward? FUCK NO! Instead I'd conclude that we need to start defining and explaining the chracteristics of our heap so that we can use it unashamedly. I reckon that SBCL can lead the Lisp world forward by nailing down the performance characteristics of the pervasive garbage-collected heap. This jrm post shows a glimpse of what loveliness can be ours: http://groups.google.com/group/comp.lang.lisp/msg/a61cc0b9c525391a If I had a hundred million dollars to direct Lisp development I'd: 1. Write down the performance characteristics of gencgc in a document for average (and also below-average) Lisp hackers to understand. 2. Find the parts that are embarrassing or confusing and use them improve the garbage collector. For example the constant-factor of filling the heap with zero's would perhaps be eliminated here. 3. Say "here's how the heap works, you can depend on it!" Watch my users present papers at Lisp conferences showing programs that cons copiously but deliberately and thrash the pants off Franz's revoltingly contorted programs for reasons simple enough to shout out from the audience. 4. Consider innovative ways to add new and useful properties to the garbage collector. e.g. macros to say "most of the stuff I'm allocating here will be garbage when this form returns so please try not to promote it to the next generation". My $0.02 |
|
|