Gmane
From: Luke Gorrie <luke.gorrie <at> synap.se>
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 :-)

P.S. If "zero-cons programming" really takes off I'm going to be too
     embarrassed to admit being a Lisp hacker at parties.

P.P.S. My impression is that the AllegroCache team at Franz don't know
       what properties the allegro GC is supposed to have and
       furthermore don't trust that it would really work as intended.
       (Maybe because it has bugs or maybe it's something deeper, like
       that conservative GC is a lose in gigabytes of heap?)

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV