[clbuild-devel] clbuild2 and CCL

David Lichteblau david at lichteblau.com
Tue Jan 4 21:05:54 UTC 2011


Quoting Greg Pfeil (greg at technomadic.org):
> I'm trying to use clbuild2 with CCL and have had a couple issues. One is that there seems to be a bug with "--implementation" (diff attached).
> 
> The other is that (after I've applied the aforementioned patch) when I do:
> 
> 	clbuild --implementation ccl slime
> 
> it still tries to use SBCL:
[...]

Two issues:

  - Option processing happened too late, after loading the sources.

  - To keep things simple, clbuild intentionally does not default
    LISP_BINARY based on LISP_IMPLEMENTATION_TYPE anymore, which means
    that clbuild doesn't know about all of CCL's weird binary names
    like lx86cl64.

I have pushed support for --implementation and two new options, --type
and --binary.  Please test!


Explanation:

In clbuild2, the user-specific configuration file clbuild.conf is tasked
with setting both LISP_IMPLEMENTATION_TYPE and LISP_BINARY (as well as
other variables needed, like SBCL_HOME or CCL_DEFAULT_DIRECTORY; a
default for the latter is computed if missing though).

Hence the new options --type (corresponding to LISP_IMPLEMENTATION_TYPE)
and --binary (corresponding to LISP_BINARY).

The existing option --implementation /path/to/xylisp is now parsed as
--type xylisp --binary /path/to/xylisp.

Option processing first sets variables FORCE_LISP_IMPLEMENTATION_TYPE
and FORCE_LISP_BINARY.  It then runs clbuild.conf, and only afterwards
overrides the usual configuration with the values of the FORCE_*
variables, if FORCE_* is still set.  The goal of that logic is to give
clbuild.conf a chance to override or customize the values specified on
the command line.

So the following works out of the box for me now:
  clbuild --type ccl --binary ~/usr/ccl-1.6/lx86cl64 lisp

And the short version is possible, but depends on user-specific
customization in clbuild.conf to teach clbuild that the user intends ccl
to be a shortcut for lx86cl64:
  clbuild --implementation ccl lisp

The clbuild.conf snippet for that would look like this:
case $FORCE_LISP_IMPLEMENTATION_TYPE in
    ccl)
        FORCE_LISP_BINARY=~/usr/ccl-1.6/lx86cl64
        ;;
esac

More examples in clbuild.conf.default.


d.




More information about the clbuild-devel mailing list