[asdf-devel] ASDF 2.016 breaks ABCL translations for jar files
Mark Evenson
evenson at panix.com
Thu Jun 9 17:42:07 UTC 2011
On 6/9/11 7:06 PM, Faré wrote:
>>> Thanks for thinking with me on this.
>
> OK. I believe the following definition might make
> each of Stelian, you and I happy. Can you try it?
>
> (defun* compile-file-pathname*
> (input-file&rest keys&key output-file&allow-other-keys)
> (if (absolute-pathname-p output-file)
> (apply 'compile-file-pathname
> (make-pathname :host nil :device nil
> :defaults (lispize-pathname input-file))
> keys)
> (apply-output-translations
> (apply 'compile-file-pathname
> (truenamize (lispize-pathname input-file))
> keys))))
Yes, this works fine with ABCL.
But for implementations that need a device (like Windows using device
for the drive letter), won't this result in stripping the device out of
all output-file locations?
As I mentioned in the previous message, I think the better fix is to
have TRANSLATE-JAR-PATHNAME do something like the following (untested):
index a8339f7..0395f56 100755
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -3569,12 +3569,14 @@ effectively disabling the output translation
facility."
(root (format nil "/___jar___file___root___/~@[~A/~]"
(and (find :windows *features*)
(pathname-device p)))))
- (apply-output-translations
- (merge-pathnames*
- (relativize-pathname-directory source)
- (merge-pathnames*
- (relativize-pathname-directory (ensure-directory-pathname p))
- root)))))
+ (make-pathname :defaults
+ (apply-output-translations
+ (merge-pathnames*
+ (relativize-pathname-directory source)
+ (merge-pathnames*
+ (relativize-pathname-directory
(ensure-directory-pathname p))
+ root)))
+ :device :unspecific)))
;;;; -----------------------------------------------------------------
;;;; Compatibility mode for ASDF-Binary-Locations
--
"A screaming comes across the sky. It has happened before, but there
is nothing to compare to it now."
More information about the asdf-devel
mailing list