[Guix] SBCL 2.0.6 is broken if boostrapped from ECL or Clisp

Bug #1886255 reported by Pierre Neidhardt
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Critical
Unassigned

Bug Description

I tried the following bootstraps to update the SBCL Guix package:

- clisp-2.49.92-2018-02-18
- ECL 20.4.24
- SBCL 2.0.5

SBCL 2.0.5 works.
The other 2 build successfully but then `(asdf:load-system :named-readtables)` yields an error:

https://github.com/melisgl/named-readtables/issues/19

SBCL 2.0.5 does not suffer from this (on Guix at least).

Revision history for this message
Christophe Rhodes (csr21-cantab) wrote :

Aiee, that's horrible.

We'll certainly look into this as soon as we can. In the meantime, is it easy for you to bisect this? (build versions between 2.0.5 and 2.0.6 using sbcl 2.0.5 and clisp, and see which commit introduces the broken behaviour?)

Changed in sbcl:
importance: Undecided → Critical
Revision history for this message
Pierre Neidhardt (ambrevar) wrote :

It's not hard to bisect, the problem is that SBCL takes 15 minutes to build (from scratch) on my machine, so bisect will take a long time.

Can you recommend a setup where I could iterate faster?

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

What is guix doing? SBCL builds fine with ECL and Clisp, and readtables build fine. I have a feeling that you are using an intermediate git revision between 2.0.5 an 2.0.6.

Revision history for this message
Pierre Neidhardt (ambrevar) wrote :
Download full text (9.6 KiB)

Unless the sourceforge archive is wrong, I'm using 2.0.6. (It's the same Guix recipe for all SBCL versions, beside the version number.)

Here is the recipe:

```
(define-public sbcl
  (package
    (name "sbcl")
    (version "2.0.6")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
                           version "-source.tar.bz2"))
       (sha256
        (base32 "1bnxmmq2yvwj6hb4d96v3k82bcmwhfqx5jixzr14zk4p3m6dd4px"))))
    (build-system gnu-build-system)
    (outputs '("out" "doc"))
    (native-inputs
     ;; From INSTALL:
     ;; Supported build hosts are:
     ;; SBCL
     ;; CMUCL
     ;; CCL (formerly known as OpenMCL)
     ;; ABCL (recent versions only)
     ;; CLISP (only some versions: 2.44.1 is OK, 2.47 is not)
     ;; XCL
     ;;
     ;; From NEWS:
     ;; * build enhancement: new host quirks mechanism, support for building under
     ;; ABCL and ECL (as well as CCL, CMUCL, CLISP and SBCL itself)
     ;;
     ;; CCL is not bootstrappable so it won't do. CLISP 2.49 seems to work.
     ;; ECL too. As of 2020-07-01, ECL was last updated in 2020 while CLISP
     ;; was last updated in 2010, and both take about the same time to build SBCL.
     ;;
     ;; For now we stick to CLISP for all systems. We keep the `match' here
     ;; to make it easier to change the host compiler for various
     ;; architectures. Consider switching to ECL if it gets faster than CLISP
     ;; (maybe post 2020 release).
     `(,@(match (%current-system)
           ((or "x86_64-linux" "i686-linux")
            `(("clisp" ,clisp)))
           (_
            `(("clisp" ,clisp))))
       ("cl-asdf" ,cl-asdf)
       ("ed" ,ed)
       ("inetutils" ,inetutils) ;for hostname(1)
       ("texinfo" ,texinfo)
       ("texlive" ,(texlive-union (list texlive-tex-texinfo)))
       ("which" ,which)
       ("zlib" ,zlib)))
    (arguments
     `(#:modules ((guix build gnu-build-system)
                  (guix build utils)
                  (srfi srfi-1))
       #:phases
       (modify-phases %standard-phases
         (delete 'configure)
         (add-after 'unpack 'replace-asdf
           ;; SBCL developers have not committed to keeping ASDF up to date
           ;; due to breaking changes [1]. Guix can handle this situation
           ;; easily, and it behooves us to have more control over what version
           ;; of ASDF we use to build software; therefore, replace the contrib
           ;; ASDF with the version packaged into Guix.
           ;; [1] - https://bugs.launchpad.net/sbcl/+bug/1823442
           (lambda* (#:key inputs outputs #:allow-other-keys)
             (let* ((cl-asdf (assoc-ref inputs "cl-asdf"))
                    (guix-asdf (string-append
                                cl-asdf
                                "/share/common-lisp/source/asdf/asdf.lisp"))
                    (out (string-append (assoc-ref outputs "out")))
                    (contrib-asdf "contrib/asdf/asdf.lisp"))
               (copy-file guix-asdf contrib-asdf)
               (substitute* contrib-asdf
                 ,@(asdf-substitutions name...

Read more...

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

Ok, I didn't read it correctly—that sbcl built with ECL can't load named-readtables. Read as three separate problems.

Stas Boukarev (stassats)
Changed in sbcl:
status: New → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
Revision history for this message
Pierre Neidhardt (ambrevar) wrote :

Thank you for the fix!

I see that my name is mispelled on the news page (http://www.sbcl.org/news.html#2.0.7). The "d" is missing before the "t". Could you fix it? Thanks!

Revision history for this message
Christophe Rhodes (csr21-cantab) wrote : Re: [Bug 1886255] Re: [Guix] SBCL 2.0.6 is broken if boostrapped from ECL or Clisp

Pierre Neidhardt <email address hidden> writes:

> Thank you for the fix!
>
> I see that my name is mispelled on the news page
> (http://www.sbcl.org/news.html#2.0.7). The "d" is missing before the
> "t". Could you fix it? Thanks!

Apologies! I have committed a change to the NEWS file, but because of
the way the news is automatically generated this might not be reflected
in the website permanently until next month. In the intervening time
I've made a manual override, but that override might itself get
overridden by automatic processes. Sorry! If you do notice it going
wrong before the next release, please let me know.

Christophe

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.