It is not worth an intelligent man's time
to be in the majority. By definition, there are already enough
people to do that.
-- G. H. Hardy
Newest version 0.1.2 (2003-07-28)
MusCL has the short term goal of conforming to the ANSI X3J13 specification somewhat portably (Windows, SUSV3). The long term goals include multiple dispatch implemented in the way Weimin Chen and Volker Turau thought up1,2 and Karel Driesen, Urs Höltzle and Jan Vitek carried on3,4 (fast, funny lookup tables), native threading and a good garbage collector. I haven't selected one yet. I might end up implementing two with compile time selection, for example a Beltway5 collector for normal people and Sapphire6 for those pause time counters like me.
The first conforming version will only have an interpreter and a Cheney collector, but then the work will probably advance in the direction of compiling via C. I try to keep the way for multiple back ends open, so that a native compiler version could happen for some architectures. A compiler to JVM might be interesting, but I guess that Java won't fly very long, so I'm not going to hurry with that.
MusCL is pronounced (in English) like the (English) word muscle, or (in Received Pronounciation) [ˈmʌsl̩].
There is a progress chart here. It is long.
MusCL has not been expanded yet, but do not worry: we'll come up with something.
1W. Chen and V. Turau, Multiple-Dispatching Based on Automata, Theory and Practice of Object Systems (TAPOS), Vol. 1, 1-35 (1995).
2W. Chen, V. Turau and W. Klas, Efficient Dynamic Look-up Strategy for Multi-Methods, Proc. 8th European Conference, ECOOP '94, Bologna (1994), 408 - 431.
3Karel Driesen, Urs Hölzle, Jan Vitek: Message Dispatch on Pipelined Processors. ECOOP 1995: 253-282
4Karel Driesen, Urs Hölzle: Minimizing Row Displacement Dispatch Tables. OOPSLA 1995: 141-155
5Stephen M. Blackburn, Richard Jones, Kathryn S. McKinley, and J. Eliot B. Moss. Beltway: Getting around garbage collection gridlock. In PLDI [PLDI02], pages 153-164.
6Richard L. Hudson and J. Eliot B. Moss. Sapphire: Copying GC without stopping the world. In Joint ACM Java Grande - ISCOPE 2001 Conference, Stanford University, CA, June 2001.