Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

new client fails to load any library on CMUCL and old versions of ECL #68

Open
avodonosov opened this Issue · 9 comments

3 participants

@avodonosov

After updating to new quicklisp client and restarting CMUCL, or old versions of ECL, I have the following sitnuation:

CMU Common Lisp 20c release-20c (20C Unicode), running on ubuntu
With core: /home/testgrid/lisps/cmucl-20c/lib/cmucl/lib/lisp-sse2.core
Dumped on: Thu, 2011-11-03 10:30:38+02:00 on lorien2
See <http://www.cons.org/cmucl/> for support information.
Loaded subsystems:
    Unicode 1.28 with Unicode version 6.0.0
    Python 1.1, target Intel x86/sse2
    CLOS based on Gerd's PCL 2010/03/19 15:19:03
* (ql:quickload :alexandria)

Error in KERNEL::UNDEFINED-SYMBOL-ERROR-HANDLER:  the function ASDF:FIND-SYSTEM is undefined.
   [Condition of type UNDEFINED-FUNCTION]

Restarts:
  0: [ABORT] Give up on "alexandria"
  1:         Return to Top-Level.

Is it ASDF update problem?

@avodonosov

With ECL, it just fails to load. For ecl-12.7.1-4a4c2289-linux-x86 of Oct 31 2012:

testgrid@ubuntu:~$ lisps/ecl-bin/bin/ecl
;;; Loading "/home/testgrid/quicklisp/setup.lisp"
;;; Loading #P"/home/testgrid/lisps/ecl-bin/lib/ecl-12.7.1/cmp.fas"
;;; Loading #P"/home/testgrid/lisps/ecl-bin/lib/ecl-12.7.1/asdf.fas"
An error occurred during initialization:
Error while trying to load definition for system quicklisp from pathname
/home/testgrid/quicklisp/quicklisp/quicklisp.asd:
   :depends-on must be a list.
The value specified for module quicklisp is SI:MISSING-KEYWORD.

for ecl-12.7.1-ce653d88-linux-x86 of Sep 16 2012:

testgrid@ubuntu:~/lisps$ ./ecl-bin.old/bin/ecl
;;; Loading "/home/testgrid/quicklisp/setup.lisp"
;;; Loading #P"/home/testgrid/lisps/ecl-bin.old/lib/ecl-12.7.1/cmp.fas"
;;; Loading #P"/home/testgrid/lisps/ecl-bin.old/lib/ecl-12.7.1/asdf.fas"
ASDF could not load sockets because Error while trying to load definition for system sockets from pathname /home/testgrid/lisps/ecl-bin.old/lib/ecl-12.7.1/sockets.asd: No applicable method for SOURCE-FILE-TYPE with arguments of types
 COMPILED-FILE
 PREBUILT-SYSTEM.
;;; Error:
;;;   in file impl.lisp, position 7644
;;;   at (DEFINE-IMPLEMENTATION-PACKAGE ECL ...)
;;;   * The form (REQUIRE 'SOCKETS) was not evaluated successfully.
;;; Error detected:
;;; Error while trying to load definition for system sockets from pathname /home/testgrid/lisps/ecl-bin.old/lib/ecl-12.7.1/sockets.asd: No applicable method for ASDF:SOURCE-FILE-TYPE with arguments of types
;;;  COMPILED-FILE
;;;  PREBUILT-SYSTEMAn error occurred during initialization:
Error while invoking #<compile-op (:VERBOSE NIL) 09223d20> on
#<cl-source-file "quicklisp" "impl">.
@fare

OK, I understand the issue with ECL: it's because refreshing the ASDF from ECL's old version to Quicklisp's version breaks asdf-bundle, and the subsequent call to ECL's internal (require 'sockets) needs the asdf-bundle functionality and fails.

This means that on ECL, Quicklisp needs to either not upgrade asdf, or also upgrade asdf-bundle. Sigh.

I've bundled (sic) asdf-bundle into a single file, to make it easier for ECL and/or Quicklisp to bundle it.

I'm also considering bundling asdf-bundle directly with asdf 2.27 so we can be done with this issue.

I have no idea what's happening with CMUCL; this is a separate bug. Can you file it separately and include a backtrace? From the look of it, it is probably an ASDF bug, not a Quicklisp bug, in which case https://launchpad.net/asdf is more appropriate.

@quicklisp
Owner

I can't reproduce with CMUCL 20d.

@avodonosov

CMUCL 20d has newer ASDF. From 20d release notes: "ASDF2 updated to version 2.24."

@fare

Interesting. Do you know what version of ASDF CMUCL 20c was using?

I've been experiencing trouble upgrading ASDF on CMUCL from versions older than 2.015 because it doesn't like the change of source-registry from list of directories to pre-populated hash-table of .asd files.

What you're experiencing looks different, though, and seems related to some changes I made in ASDF 2.20.20. I don't have CMUCL on my current machines; I'll try to install one some time later, so I may run such tests again.

@quicklisp
Owner
;;; This is ASDF 2.017: Another System Definition Facility.
@avodonosov

Registered launchpad ticket https://bugs.launchpad.net/asdf/+bug/1084644 for the CMUCL situation.

@fare

One ugly workaround for ECL, until we resolve the bundle issue, would be for quicklisp to #+ecl (require 'sockets) in setup.lisp, before it upgrades asdf. I'm not sure I recommend it.

The more I think of it, the more putting asdf-bundle inside asdf.lisp looks like the solution with least headaches for users.

@fare

As for the CMUCL bug, a workaround is available in ASDF 2.26.5.

As for the ECL issue, I plan to fix it before ASDF 2.27 my merging asdf-bundle into asdf, unless someone objects.

Hopefully, this will all be bad memories by next Quicklisp release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.