30 Aug 2000 emk   » (Master)

Consulting

My client is looking to hire a server-side Java guy. Through a freak co-incidence, one of the candidates is not only familiar with one of the libraries we're using, but was also the library's first major user. Score!

The candidate is also an open source developer, so I tracked down one of his projects and spent a few minutes reading through his code. Looks pretty good...

My Favorite Toy Language

I spent some time last night thinking about MFTL. The basic data model is starting to shape up, but I still don't know how I want to handle numeric types.

LISP implementations have traditionally used tag bits to label object types. All data values (integers, object references, etc.) are represented by a single word, and you have to look at specific bit patterns to infer the type. For example, you might use the two least-significant-bits as a tag:

xx00: 30-bit signed integer
xx11: 30-bit object reference (mask low-order bits to zero and use as a pointer)

Addition and subtraction are easy (think about it). Multiplication and division require some extra shifting. Looking up objects is easy, too--just mask with 0xFFFFFFFC and indirect normally.

The big win: You can generate acceptably fast code, and your data model is easy to make thread safe. The big loss: Nobody wants to use 30-bit integers, not even in a scripting language. So I'll spend some more time thinking.

Personal

Everybody's leaving for school again! It's going to be lonely up here in the northern woods.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!