Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#376 closed defect (fixed)

ASDF-JAR:PACKAGE not working

Reported by: Mark Evenson Owned by: evenson
Priority: major Milestone: 1.3.2
Component: abcl-contrib Version: 1.4.0-dev
Keywords: asdf-jar Cc:
Parent Tickets:

Description

CL-USER> (asdf-jar:package :hunchentoot)

fails with

The value "hunchentoot" is not of type LIST.
   [Condition of type TYPE-ERROR]

Restarts:
 0: [RETRY] Retry SLIME REPL evaluation request.
 1: [*ABORT] Return to SLIME's top level.
 2: [ABORT] Abort thread.

Backtrace:
  0: (#<FUNCTION {5AB82387}> The value hunchentoot is not of type LIST. #<FUNCTION {5AB82387}>)
  1: (APPLY #<FUNCTION {5AB82387}> (The value hunchentoot is not of type LIST. #<FUNCTION {5AB82387}>))
  2: (RUN-HOOK *INVOKE-DEBUGGER-HOOK* The value hunchentoot is not of type LIST. #<FUNCTION {5AB82387}>)
  3: (INVOKE-DEBUGGER The value hunchentoot is not of type LIST.)
  4: org.armedbear.lisp.Lisp.error(Lisp.java:382)
  5: org.armedbear.lisp.Lisp.type_error(Lisp.java:435)
  6: org.armedbear.lisp.LispObject.car(LispObject.java:156)
  7: org.armedbear.lisp.Pathname.validateDirectory(Pathname.java:1502)
  8: org.armedbear.lisp.Pathname.getDirectoryNamestring(Pathname.java:787)
  9: org.armedbear.lisp.Pathname.getNamestring(Pathname.java:700)
 10: org.armedbear.lisp.Pathname.printObject(Pathname.java:928)
 11: org.armedbear.lisp.Primitives$pf__output_object.execute(Primitives.java:907)
 12: #<LISP-STACK-FRAME {473B45FF}>
 13: #<LISP-STACK-FRAME {15FA5B75}>
 14: #<LISP-STACK-FRAME {4F25167A}>
 15: #<LISP-STACK-FRAME {584F3AD0}>
 16: #<LISP-STACK-FRAME {88E36AA}>
 17: #<LISP-STACK-FRAME {79121804}>
 18: #<LISP-STACK-FRAME {14645494}>
 19: #<LISP-STACK-FRAME {747F7E1F}>
 20: #<LISP-STACK-FRAME {1FD5A4CC}>
 21: #<LISP-STACK-FRAME {29949D29}>
 22: #<LISP-STACK-FRAME {2EEF76DB}>
 23: #<LISP-STACK-FRAME {218AD907}>
 24: #<LISP-STACK-FRAME {1AD4ED1C}>
 25: #<LISP-STACK-FRAME {12475C3E}>
 26: #<LISP-STACK-FRAME {208D3BC7}>
 27: #<LISP-STACK-FRAME {7A980533}>
 28: #<LISP-STACK-FRAME {4ABC2C16}>
 29: #<LISP-STACK-FRAME {12ECB88D}>
 30: (ADD-SYSTEM-FILES-TO-MAPPING! #<SYSTEM {20EAFE4}> #<EQUAL HASH-TABLE 2 entries, 11 buckets {221FB5AA}> /Users/evenson/quicklisp/dists/quicklisp/software/hunchentoot-1.2.27/ hunchentoot (RELATIVE) ...)
      Locals:
        "??" = ADD-SYSTEM-FILES-TO-MAPPING!
        "??"#1 = #<ASDF/SYSTEM:SYSTEM "hunchentoot">
        "??"#2 = #<EQUAL HASH-TABLE 2 entries, 11 buckets {221FB5AA}>
        "??"#3 = /Users/evenson/quicklisp/dists/quicklisp/software/hunchentoot-1.2.27/
        "??"#4 = hunchentoot
        "??"#5 = (RELATIVE)
        "??"#6 = NIL
 31: (SYSTEMS->HASH-TABLE (#<SYSTEM {20EAFE4}>) (RELATIVE) NIL)
 32: (PACKAGE HUNCHENTOOT)

Change History (5)

comment:1 Changed 10 years ago by Mark Evenson

abcl-1.3.1 fails with a different error

Unsupported directory component "cl-ppcre".
   [Condition of type FILE-ERROR]

so this has apparently been broken for some time, in different manners, which is odd because I was using this in April-May 2014 for packaging WAR files.

Last edited 10 years ago by Mark Evenson (previous) (diff)

comment:2 Changed 10 years ago by Mark Evenson

r14736 fixes PACKAGE. Need to test more.

comment:3 Changed 10 years ago by Mark Evenson

ASDF-JAR:PACKAGE and ASDF-JAR:ADD-TO-ASDF have been verified working as previously.

The ASDF-JAR packaging system only works for those ASDF system which completely describe all of their source artifacts. Unfortunately, some commonly used systems still use reader macros to do funky things in the ASDF definition that don't obey this distinction. For instance, BORDEAUX-THREADS (version 0.8.3) uses the following read-time macro to attempt to set the version:

:version #.(with-open-file
                 (vers (merge-pathnames "version.lisp-expr" *load-truename*))
               (read vers))

This will fail, as the "version.lisp-expr" file is not declared in the ASDF definition.

For systems such as these, a better strategy would be to simply recursively copy all the files from the directory containing the ".asd" file for inclusion. See ABCL-SERVLET:PREPARE for a packaging method that utilizes this strategy.

comment:4 Changed 10 years ago by Mark Evenson

Resolution: fixed
Status: newclosed

comment:5 Changed 10 years ago by Mark Evenson

Milestone: 1.4.01.3.2
Note: See TracTickets for help on using tickets.