Tuesday, May 24, 2011

One liner

Someone gave this to me today. On Linux, compile the following viznut.c:

#include <math.h>

main(v,i,z,n,u,t){for(v=-1;;)for(n=pow(1.06,"`cW`g[`cgcg[eYcb^bV^eW^be^bVecb^"[++v&31]+(v&64)/21),i=999;i;putchar(128+((8191&u)>i?0:i/8)-((8191&(z+=n))*i-->>16)))u+=v&1?t/2: (t=v&6?t:n/4);}

like this: gcc viznut.c
-lm -o viznut.

Then, execute ./viznut >/dev/dsp.

Friday, May 20, 2011

VM memory management update

As some of you know, I've been working on VisualWorks' memory policies and garbage collectors for a while. I gave a talk on the subject at Smalltalks 2010 (see here), and I was quite happy to report significant performance improvements: faster allocation, faster code execution, and faster (e.g.: 2.5x) real applications.

For the next release (after VW 7.8), I added a time-constrained, self-adjusting IGC mechanism to the memory policies. Also, I added the possibility to turn off the IGC on demand, which is useful for performance considerations. And now, I have a working prototype for a more efficient GC. For example, in a reasonably configured image with about 30mb of perm space and 100mb of old space, the new GC runs 35% faster. Although the new code has not gone through all the testing necessary for a GC yet, the 35% performance improvement should hold barring major surprises. There are a few things to do that should help edge case performance further.

Moving along...

Monday, May 09, 2011

Impressive hardware...

A workable computer running Linux and OpenGL, basically as large as a USB flash drive, for $25. Impressive... now if we could mostly write equally impressive software to solve problems worthy of our attention...