asdf:enable-asdf-binary-locations-compatibility breakage

Bug #1122226 reported by Stas Boukarev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ASDF
Fix Released
Low
Faré

Bug Description

enable-asdf-binary-locations-compatibility is broken again, now the output of cffi-grovel appears in the source directory, not in the specified directory.

But I want to propose to remove it completely. There's not many people using it, and I would be happy with a replacement which just lets me to change the directory into which compilation results are put.

Right now I'm using
(setf asdf/configuration::*user-cache* (merge-pathnames (asdf/os:implementation-identifier) *fasl-dir*))
and it works well, I'd be happy with an official solution.

Stas Boukarev (stassats)
description: updated
Revision history for this message
Faré (fahree) wrote :

Beware of merge-pathnames, use merge-pathnames* -- also, beware that you need to interpret the identifier string as a directory! This works and is supported:

(asdf/driver:subpathname *fasl-dir* (asdf/driver:implementation-identifier) :type :directory)

Revision history for this message
Stas Boukarev (stassats) wrote :

Yeah, I used asdf/pathname:ensure-directory-pathname. But that's not the point. The point is that I want (asdf:something #p"/tmp/x/") which has a similar effect as
(setf asdf/configuration::*user-cache* (asdf/driver:subpathname #p"/tmp/x/" (asdf/driver:implementation-identifier) :type :directory))

Revision history for this message
Faré (fahree) wrote :

What about

(asdf:initialize-output-translations `(:output-translations (t (,*fasl-dir* :implementation)) :inherit-configuration))

or just put the following in your ~/.config/common-lisp/asdf-output-translations.conf ?

(:output-translations (t (#p"/tmp/x/" :implementation)) :inherit-configuration))

Revision history for this message
Stas Boukarev (stassats) wrote :

(asdf:initialize-output-translations
 `(:output-translations
   (t (,*fasl-dir* :implementation)) :inherit-configuration))
doesn't really work:

:ABSOLUTE fell through ETYPECASE expression.
Wanted one of ((EQL :USER-CACHE) (EQL :HERE) (EQL :HOME)
               (EQL :ROOT) CONS STRING PATHNAME).

Revision history for this message
Faré (fahree) wrote :

Uh? Works for me. Or is you *fasl-dir* just the pathname's directory component instead of the full pathname?

Revision history for this message
Stas Boukarev (stassats) wrote :

I can't reproduce it anymore.

So, what to do with enable-asdf-binary-locations-compatibility? It's broken somewhere like output-pathname of non-lisp files, but I'm not anxious to investigate any further since I'm not using anymore.

Revision history for this message
Faré (fahree) wrote :

Could you make the output-translations work for you?

What was not being redirected? Is it a case where you should "just" use :map-all-source-files t in your enable-asdf-binary-locations-compatibility?

I'd like to get rid of ABL compatibility indeed -- or at least move it to a suitable extension.

Faré (fahree)
Changed in asdf:
assignee: nobody → Faré (fahree)
importance: Undecided → Low
milestone: none → version3
status: New → Incomplete
Revision history for this message
Stas Boukarev (stassats) wrote :

Yes, output-translations work for me. And as to ABL, yes, I wasn't using :map-all-source-files t, but I'm not willing to check whether it works or not, since I'm content with output-translations and not coming back to ABL.

Revision history for this message
Faré (fahree) wrote :

Marking as Fixed, then.

Changed in asdf:
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.