[mcclim-devel] McCLIM 2.0 in 2008

Troels Henriksen athas at sigkill.dk
Tue Jan 15 22:28:25 UTC 2008


So, McCLIM is already pretty old, and while I can't claim to have
worked on it for more than a year and a half, I feel like I have a
pretty good grasp of what it does, and how well it does it. Perhaps we
should start wondering about releasing a "stable" McCLIM, that is, one
that is feature complete (with relation to the CLIM spec) and more
tested than out usual releases. I'm not saying we should slap a stable
version number on the 0.9.6 release, just that I think it would be a
good, and achievable, goal to release a stable version this year. What
would need to be done to make this happen? Here's a preliminary list,
if you feel it is incomplete, please add to it:

     * First, implement all the reasonable parts of the CLIM 2 spec,
       with the exception of things that are unimplementable,
       underspecified or just really hard to do properly (fully
       generic designs, alpha blending and all, falls in this last
       category, I think). Things that are underspecified should
       probably be implemented by looking at later CLIM specs, as well
       as classic CLIM behaviour. We are already mostly there. Does
       anyone know exactly what is missing?

     * Create a better test suite, at least something that can
       actually be called a test suite, though it may not fully test
       the entire system. This is probably a must if a "stable"
       release is to have any meaning at all, and fortunately, many of
       the tricky aspects of CLIM do not actually need a graphical
       interface, and the Null backend may suffice for the majority of
       the rest. I would prefer using an actual regression testing
       library (such as FiveAM) compared to files filled with asserts.

     * Select a number of extensions (not necessarily all of them) and
       make sure they're as well tested as the core CLIM
       functionality. These extensions should also be documented.

     * Have at least one backend without major flaws. I think the CLX
       backend is good enough, apart from some suboptimal
       performance. Gtkairo may not reach that level this year.

     * Insert docstrings for all exported functionality. If I recall
       correctly, Robert Strandh spoke with one of the original CLIM
       spec authors and was told not to worry about copyright issues,
       so we could just copy from there.

The following is what is NOT necessary for a McCLIM 2.0 release:

     * Support for LispWorks and Allegro CLIM extensions.

     * Fully working and tested extensions. We only need to select
       those that are feasible to bring up to a sufficiently high
       level of stability and performance (does this leave out
       mcclim-freetype?). Of course, we should document which ones.

     * More than one fully working backend.

     * Documentation covering CLIM itself. The spec will have to do
       for now.

Finally: when you saw this email, none of you thought "I wonder what
insightful observations this thoughtful engineer has about a stable
release", you thought "why is this crazy hacker talking about a 2.0
version, we're still pre-1.0!". My idea is to make the McCLIM version
number follow the CLIM spec version number. While this is not terribly
useful for a 2.0 release in isolation, it makes it easier to design
similar 2.1 and 2.2 releases for the LispWorks and Allegro extensions,
as well as the hypothetical future CLIM 2.3 spec that will fix all the
ambiguous and underspecified details and bring CLIM into the 90's.

What are your thoughts?

-- 
\  Troels
/\ Henriksen - who's quite sleep-deprived



More information about the mcclim-devel mailing list