[cl-containers-devel] On Containers, binary locations, and system connections

Nathan Bird nathan at acceleration.net
Wed Oct 22 16:49:10 UTC 2008


Most directly:
CL-containers defines the following system connection
(asdf:defsystem-connection containers-and-utilities
  :requires (cl-containers metatilities-base)
  :components ((:module "dev"
                        :components ((:file "utilities-integration")))))

However since the cl-containers system itself depends on metatilities
base it appears that this system connection is redundant. and that file
should probably just be in the containers system proper.


How I came across this:
Trying to setup a buildbot running under its own user, it doesn't have
access to write fasls to /usr/local/lib/sbcl/site/...  AHA I said, let
me go grab that binary-locations library. This seems to be working for
the most part except that we carve out /usr/local/lib/sbcl as a location
that it shouldn't alter. I didn't think that would be a problem since
everything in that directory I consider to be already built.
System-connections though, when it loads the system, uses ':force t' to
force recompilation (unnecessarily? I suspect that there at least was a
reason at one point, can it go away?).

I tried setting the asdf:*source-to-target-mappings* to nil so that it
would compile everything to the private location, which of course lead
to the regression that was designed to prevent.

I also tried
(setf asdf:*source-to-target-mappings*
      (list (list "/usr/local/lib/sbcl/site"   ;;asdf-install locations
should be recompilable
          (concatenate 'string
                   asdf:*default-toplevel-directory*
                   (asdf:implementation-specific-directory-name)
                   "/usr/local/lib/sbcl/site"))
        '("/usr/local/lib/sbcl" NIL)))  ;;sbcl-sourced packages should
be left alone.

That configuration apparently didn't work--"failed to find the TRUENAME
of
/home/buildmaster/.sbcl/fasls/sbcl-1.0.21-linux-x86/usr/local/lib/sbcl/sb-posix/constants.lisp-temp:
    No such file or directory"

So it doesn't appear to be properly separating sbcl/ and sbcl/site even
though the code does appear to search from front to back.

I'm stuck at the moment, will try to dig deeper a bit later.

Nathan Bird




More information about the cl-containers-devel mailing list