guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question about sbcl-package->ecl-package


From: Guillaume Le Vaillant
Subject: Re: Question about sbcl-package->ecl-package
Date: Wed, 16 Oct 2019 16:06:56 +0200
User-agent: mu4e 1.2.0; emacs 26.3

Efraim Flashner skribis:

> On Wed, Oct 16, 2019 at 01:59:01PM +0200, Pierre Neidhardt wrote:
>> I've encountered the same problem a couple of times.
>> If you try to compile ecl-dexador, you'll see it fails because it does
>> not re-use the arguments of sbcl-dexador which patches out a failing
>> test.
>> 
>> Something is wrong in sbcl-package->ecl-package.
>> Andy?
>> 
>> That said, it's not a very big deal, since the cl- package works for all 
>> compilers.
>> 
>
> Sounds like the conversion isn't "recursive enough". On a per-package
> basis you can replace the created ecl package with the real one. The
> better option would be to look at how python defines python2- variants,
> which sounds a lot like the problem you're having here.

I suspect the problem comes from the 'rewrite' function used to change
the package inputs. In 'guix/build-system/asdf.scm':

--8<---------------cut here---------------start------------->8---
(define rewrite
  (match-lambda
    ((name content . rest)
     (let* ((is-package? (package? content))
            (new-content (if is-package? (transform content) content)))
       `(,name ,new-content ,@rest)))))
--8<---------------cut here---------------end--------------->8---

Won't '(transform content)' create a new ecl-package for each input
package instead of trying to find the already defined ecl-package?

Maybe it could be replaced by something like:

--8<---------------cut here---------------start------------->8---
(let* ((sbcl-input-name (package-name content))
       (ecl-input-name (transform-package-name sbcl-input-name))
       (ecl-input-package (find-package ecl-name)))
  (if (package? ecl-input-package)
      ecl-input-package
      (transform content)))
--8<---------------cut here---------------end--------------->8---

However, it's the first time I look at the internals of Guix, so I'm
not sure if this would work or not...
What do you think?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]