[Bese-devel] Problems compiling 0.2.0 with CMUCL

Marco Baringer mb at bese.it
Sat Mar 6 12:32:05 UTC 2004


On Sabato, mar 6, 2004, at 00:03 Europe/Rome, Jan Rychter wrote:

> Ah, ok, I see. Yes, I'd suggest just removing the other lists. Still, I
> do find the naming confusing -- I want to use UncommonWEB (UCW), so I 
> go
> looking for... bese? Hmm.

Basically I don't think UCW, by itself, has enough of a community to 
merit it's own mailing list, while ucw+yaclml+arnesi+FiveAM does.

> -+  Errors (2)
>  |-- (during macroexpansion)
>  |   Error in FDEFINITION:  the function APPLICATION.SESSION-TABLE is 
> undefined.
>  `-- (during macroexpansion)
>      Error in FDEFINITION:  the function APPLICATION.SESSION-TABLE is 
> undefined.

well, well, well. Here's the problem. The file standard-application 
defines the class standard-application which has an accessor 
application.session-table which is not part of the protocol. That 
accessor isn't defined unitl the defclass is executed, yet the 
with-hash-table-iterator macro tries to analyze its args at macro 
expansion time (this is probably a bug in cmucl), and doesn't find the 
function application.session-table (at least this is my understanding 
of the issue).

ucw-2004 at common-lisp.net/ucw--dev--0.2--patch-5 moves all the class 
definitons into a seperate file (standard-classes.lisp) and loads that 
before the code which uses the classes and the accessors, this should 
fix the issue.

> If I may humbly suggest one more thing. It might seem that packaging 
> all
> required libraries makes things easier for beginners -- but it
> doesn't. Now that we have portable ASDF-INSTALL (many thanks to Dan
> Barlow and Edi Weitz), installing things like acl-compat, xmls or UFFI
> is easy. If you include these libraries, there is a whole new class of
> problems: duplicate libraries, your modified versions (are they 
> modified
> or not?), etc.

[Everyone has the right to humbly suggest anything, and is in fact 
incorreged to do so.]

You are most certainly right, however there are the issues i have to 
deal with when making a ucw release:

portableaserve - currently not asdf-installable. until very recently 
the stable version was 18 months old and ucw requried the CVS version.

arnesi, yaclml and cl-icu - evolving with ucw, often ucw will depend on 
development versions of these libraries.

xmls - the version included in yaclml is based on xmls version 1.0, but 
has been heavily modified[1]

acl-compat and uffi - could easily be installed via asdf-install

So basically i could, if i so desired, distribute ucw via asdf-install 
with just arnesi, yaclml and cl-icu and have instructions for getting 
portableaserve and use asdf-install to grab uffi (since you have to get 
portableaserve out of band anyway there's no need to also grab 
acl-compat). Maybe when a version 1.0 comes out i'll do just that, 
hopefully by that time (around 2018 :)) ucw will depend on stable, 
released and asdf-installable versions of portableaserve, uffi, 
acl-compat, yaclml, arnesi and cl-icu. Until then I think most people 
who grab UCW don't really want to use it to do major work, they just 
want to try it out, so asking them to change asdf:*central-registry* 
doesn't seem like a big deal (to me).

Feedback welcome.

--
Marco
Ring the bells that still can ring.
Forget the perfect offering.
There is a crack in everything.
That's how the light gets in.
	-Leonard Cohen





More information about the bese-devel mailing list