« September 2002 | Main | November 2002 »

October 2002 Archives

October 14, 2002

SBCL Support

I've finished adding support for SBCL to UFFI and CLSQL. UFFI and CLSQL now support SBCL, CMUCL, OpenMCL, AllegroCL, and Lispworks.

I've found that SBCL's compiler is very good at finding certain errors in Lisp code that other CL implementations do not warn about. As usual, when I compiled my medical informatics Lisp packages that depend on CLSQL, SBCL found a few obscure bugs.

October 15, 2002

Benchmarking CL with UMLisp

I've done some benchmarks for various CL implementations for my UMLisp package. I use UMLisp mostly in the context of a web-based server. Since the Unified Medical Language System database is 8GB of SQL data, queries can take seconds to minutes. So CL implementations with true multi-threading (Allegro and Lispworks) are suitable for the UMLisp web server while CMUCL and SBCL are not.

The first benchmark is concerned with loading SQL objects via CLSQL and creating CLOS objects while the second benchmarks printing using metaclass-driven formatting.

The free CL implementations which not not have true multithreading , CMUCL and SBCL, do great on this benchmark. Allegro trails significantly in the narrow-benchmark of formatting via metaclass-stored formatting data.

ImplementationLoadPrint
CMUCL4.6s45s
SBCL5.1s61s
Lispworks11.7s46s
Allegro13.2126s

October 17, 2002

Scieneer Common Lisp

Scieneer CL interests me. I've downloaded an evaluation version and have ported UFFI and CLSQL to it.

I'm especially intrigued with it's multitreading capabilities. Since SCL is based on CMUCL, it should do well in the UMLisp benchmark test that I recently ran. Given that SCL is truely multithreaded, unlike CMUCL or SBCL, it would be appropriate for use as the UMLisp web server. While CMUCL and SBCL are fine for running web sites that have quick page generation, there are some UMLisp queries could take hours and return gigabytes of data.

October 27, 2002

CL-Reversi

I read Peter Norvig's excellent Paradigms of Artificial Intelligence Programming book when I first started learning Lisp last year. This book includes an excellent chapter on implementing the game of Othello®. For learning purposes, I reworked to the code to add significant optimizations and a CLIM-based graphical user interface.

I noticed this week that Peter has posted a liberal license for his code from his books. So, I packaged up my version and have published it at http://reversi.b9.com/.

October 28, 2002

Fink for OSX

Fink is a package manager for Apple's OSX operating system. I'm interested in Fink because it is based on some Debian concepts and it brings a number of ported UNIX applications to OSX.

Since I maintain the Debian OpenMCL package, I was asked to make a Fink package for OpenMCL. There are some interesting differences between making Debian and Fink packages. But, in general, the process was easy. I've forwarded by Fink OpenMCL package to Gary Byers to include on his OpenMCL web site.

October 30, 2002

UMLisp

I've recently released my Lisp interface to the Unified Medical Language System (UMLS). The UMLS is a meta-thesaurus for medical terminology. The UMLS is large: the raw database is 4 gigabytes of ASCII data containing nearly 900,000 concepts and over 2 million text strings.

The UMLisp web site has details of some of the interesting techniques employed. There is an online demonstration system that can be used to browse the UMLS which uses XML and CSS for results.

I've spent significant time developing this product. Intentionally, I do not include any documentation. I am hoping to sell documentation and support -- it'll be interesting to see what happens with that.

About October 2002

This page contains all entries posted to Kevin Rosenberg in October 2002. They are listed from oldest to newest.

September 2002 is the previous archive.

November 2002 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Creative Commons License
This weblog is licensed under a Creative Commons License.