Log in

Categories 0.2

Categories 0.2 is released. You can download a snapshot from here, or you can clone it from its public git repository:


Categories 0.2 includes implementations of the object system in R5RS Scheme, in Gambit-C-specific Scheme, and in Clojure. There are minor differences of syntax among the implementations, and the major difference that the Scheme implementations don't protect against mutation as assiduously as the Clojure version does.

The -flat- and -c3- domains are included in this release, along with a couple of pages of simple examples using each. You should know going in that this implementation of C3 is inefficient. Strike that; it's prodigal. Strike that; it's SPECTACULARLY wasteful. I chose to implement the semantics and leave porting the caching code for afterward, so every method dispatch on a C3 function wastes colossal amounts of time and memory unnecessarily recomputing precedence lists. There are other inefficiencies to fix, too, but that's the one that's likely to make your eyes bug out.

Categories is in the public XG repository now. You can find a few notes about that repository here. The XG repository provides access to various code and other things that are part of the ongoing Explorers' Guild gaming project. I'm reorganizing it a bit to move older things into archive locations, and make for smoother access to newer pieces of code that will be added to the public repo as I get them ready. Besides Categories, a few other pieces of infrastructure software will be packaged for separate release there soon. Mostly, these are pieces of the XG project or related commercial products. Several of these can conveniently be packaged for separate open-source release, and they'll be there as soon as I have a chance to do that.

Eduardo Cavazos reports that he has Categories 0.1 running on several R6RS Schemes. One thing I plan to do for 0.3 is provide an R6RS version in the release.

Have fun, and report bugs.


February 2010

Powered by LiveJournal.com