[clbuild-devel] Optional parameter for 'clbuild {prebuild, lisp}'

David Lichteblau david at lichteblau.com
Mon Dec 22 10:02:00 UTC 2008


Hi,

Quoting Albert Krewinkel (krewinkel at gmx.net):
> $ ./clbuild --implementation sbcl COMMAND 
> is now legal for the whole set of commands.  Someone with better English
> skills than me please have a look at the documentation I added to the
> long-help output.

I'm having so trouble with this, and I'm hesitant to randomly "fix" code
that I don't fully understand, so I hope that you can help me with it.

Here's the situation:

  * there's an SBCL compiled by clbuild in target/

  * clbuild is invoked as
      clbuild lisp
    or
      clbuild --implementation sbcl lisp

    or, in particular, "clbuild slime", which ends up using the latter
    form.

  * DEFAULT_IMPLEMENTATION is set to sbcl in clbuild.conf
  * SBCL isn't set in clbuild.conf

In this case, the SBCL from target/ should be used, but for some reason
that only works out for "clbuild lisp", not "clbuild --implementation
sbcl lisp".

I think the problem might be around here, where $SBCL is already set
properly, and then $1 takes precedence:

diff -rN -u old-clbuild/clbuild new-clbuild/clbuild
--- old-clbuild/clbuild	2008-12-22 10:51:48.000000000 +0100
+++ new-clbuild/clbuild	2008-12-22 10:51:48.000000000 +0100
@@ -282,7 +282,10 @@
     if [ -z "$SBCL" ]; then
         set_lisp_command sbcl
     fi
+    echo '$SBCL:' "$SBCL"
+    echo '$1:' "$1"
     lisp=${1:-$SBCL}
+    echo '$lisp:' "$lisp"
 
     noinform="--noinform"
     end_toplevel_options="--end-toplevel-options"

Output for the case that works:
  : david at lanthan:~; clbuild lisp
  $SBCL: /home/david/clbuild/target/bin/sbcl --core /home/david/clbuild/target/lib/sbcl/sbcl.core
  $1: 
  $lisp: /home/david/clbuild/target/bin/sbcl --core /home/david/clbuild/target/lib/sbcl/sbcl.core
  This is SBCL 1.0.23.62, an implementation of ANSI Common Lisp.
  More information about SBCL is available at <http://www.sbcl.org/>.

  SBCL is free software, provided as is, with absolutely no warranty.
  It is mostly in the public domain; some portions are provided under
  BSD-style licenses.  See the CREDITS and COPYING files in the
  distribution for more information.
  * 

Output for the case that doesn't work:
  : david at lanthan:~; clbuild --implementation sbcl lisp
  $SBCL: /home/david/clbuild/target/bin/sbcl --core /home/david/clbuild/target/lib/sbcl/sbcl.core
  $1: sbcl
  $lisp: sbcl
  /home/david/bin/clbuild: line 382: sbcl: command not found


Thanks,
d.




More information about the clbuild-devel mailing list