January 4th, 2007

new skippy, plus some graphics

New Skippy 1.3. Notable changes:

  • No more plain errors and warnings, everything's a specific subtype
  • More defensive programming to survive broken GIFs (thanks to Eric Marsden for getting me plenty of broken GIF samples)
  • Re-use compression and decompression data structures for data streams with multiple images

The last doesn't make much of a speed difference, but it has a pretty substantial consing difference. Before:

(time (skippy:load-data-stream #p"/tmp/red.gif"))

Evaluation took:
  0.056 seconds of real time
  0.048003 seconds of user run time
  0.008001 seconds of system run time
  [Run times include 0.004 seconds GC run time.]
  0 calls to %EVAL
  0 page faults and
  10,487,552 bytes consed.
#<SKIPPY::DATA-STREAM geometry 100x100, 601 images {B2E35F1}>

After:

(time (skippy:load-data-stream #p"/tmp/red.gif"))

Evaluation took:
  0.045 seconds of real time
  0.044003 seconds of user run time
  0.0 seconds of system run time
  0 calls to %EVAL
  0 page faults and
  650,896 bytes consed.
#<SKIPPY::DATA-STREAM geometry 100x100, 601 images {A684061}>

Also, Frederic Jolliton (cods on #lisp) has ported an antialiasing algorithm from AGG to Lisp. It's not quite finished (it's still pretty slow and memory-hungry), but it's a lot of fun to experiment with the possiblities. Here's some text I drew by taking curves from zpb-ttf and drawing them with Frederic's code.

Also, I think that the musically talented attendees at ILC2007 should start a band, and this should be the logo. I would appreciate a free t-shirt for coming up with this idea.

That is all.