Opened 5 years ago

Closed 11 months ago

#412 closed defect (fixed)

Using FASLs from a Jar

Reported by: Mark Evenson Owned by: Mark Evenson
Priority: major Milestone: 1.8.0
Component: other Version: 1.4.0-dev
Keywords: asdf-jar deployment Cc:
Parent Tickets:

Description

Vibhu notes in <http://article.gmane.org/gmane.lisp.armedbear.devel/3600> that he is unable to use FASLs from a Jar

I've got #'asdf-jar:package to create a jar file containing lisp sources
and fasls. With abcl-1.0.1,
(asdf:operate 'asdf:load-op ...)
uses the fasls from the jar, whereas with abcl-1.1.0 onwards those fasls
are ignored and the jarred sources are compiled into ~/.cache/... again.

Is this a bug, or is it a feature (as easyE seems to think it is, in the
last two sentences at:
http://stackoverflow.com/questions/4763910/abcl-compilation-and-primitives
)?


If it's a bug, here is how far I've got in my diagnosis.

(asdf-jar:add-to-asdf "wispym.jar")

shows this in abcl-1.0.1

((#P"jar:file:/Users/vibhu/t3/wispym-all.jar!/**/*.*" T)
(#P"jar:file:/Users/vibhu/t3/wispym-all.jar!/**/*.*"
#P"jar:file:/Users/vibhu/t3/wispym-all.jar!/**/*.*")
(#P"/Users/vibhu/.cache/common-lisp/abcl-1.0.1-svn-13750-13751-fasl38-solaris-x86/**/*.*"
T) (#P"/___jar___file___root___/**/*.*"
#P"/Users/vibhu/.cache/common-lisp/abcl-1.0.1-svn-13750-13751-fasl38-solaris-x86/**/*.*")
(#P"jar:file:/**/*.jar!/**/*.*" #<TRANSLATE-JAR-PATHNAME {2B63F8AD}>) (T
#P"/Users/vibhu/.cache/common-lisp/abcl-1.0.1-svn-13750-13751-fasl38-solaris-x86/**/*.*"))

but this in abcl-1.3.2,

((#P"/**/*.*" T) (#P"/**/*.*" #P"/**/*.*")
(#P"/Users/vibhu/.cache/common-lisp/abcl-1.3.2-fasl42-macosx-x64/**/*.*"
T) (#P"/___jar___file___root___/**/*.*"
#P"/Users/vibhu/.cache/common-lisp/abcl-1.3.2-fasl42-macosx-x64/**/*.*")
(#P"jar:file:/**/*.jar!/**/*.*" #<TRANSLATE-JAR-PATHNAME {4F340027}>) (T
#P"/Users/vibhu/.cache/common-lisp/abcl-1.3.2-fasl42-macosx-x64/**/*.*"))

I think these are asdf output-translations, each specifying a source
directory and a corresponding destination directory.

The first two entries are significantly different between abcl-1.0.1 and
abcl-1.3.2.

----
The reason I'd like to use the jarred fasls is that I'm distributing my
program to customers. I don't want to spew fasls around their hard
disks. I also don't want to get into having to explain to them to clear
caches. (I do have to do this locally on occasion, e.g. when timestamps
on files confuse the cache). But most importantly, I've got a large
cl-yacc grammar that takes ages to macroexpand and compile. I don't want
them to wait so long even though it's just on the first load.

Change History (11)

comment:1 Changed 5 years ago by Mark Evenson

Component: (A)MOPother
Keywords: asdf-jar deployment added
Milestone: 1.3.4
Owner: set to Mark Evenson
Status: newassigned
Version: 1.4.0-dev

comment:2 Changed 5 years ago by Mark Evenson

Milestone: 1.3.41.4.0

Ticket retargeted after milestone closed

comment:3 Changed 5 years ago by Mark Evenson

Milestone: 1.4.01.5.0

Ticket retargeted after milestone closed

comment:4 Changed 4 years ago by Mark Evenson

Milestone: 1.5.01.6.0

Ticket retargeted after milestone closed

comment:5 Changed 22 months ago by Mark Evenson

Milestone: 1.6.01.6.1

Ticket retargeted after milestone closed

comment:6 Changed 17 months ago by Mark Evenson

Milestone: 1.6.11.6.2

Ticket retargeted after milestone closed

comment:7 Changed 16 months ago by Mark Evenson

Milestone: 1.6.21.7.0

comment:8 Changed 16 months ago by Mark Evenson

Milestone: 1.7.01.7.1

Ticket retargeted after milestone closed

comment:9 Changed 15 months ago by Mark Evenson

Milestone: 1.7.11.7.2

Ticket retargeted after milestone closed

comment:10 Changed 12 months ago by Mark Evenson

Milestone: 1.7.21.8.0

Milestone renamed

comment:11 Changed 11 months ago by Mark Evenson

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.