Opened 10 years ago

Last modified 9 months ago

#370 new defect

Failure to use ABCL as SBCL compilation host

Reported by: Mark Evenson Owned by:
Priority: major Milestone: 1.9.3
Component: interpreter Version: 1.4.0-dev
Keywords: sbcl Cc:
Parent Tickets:

Description

loke noticed that ABCL is no longer able to host a compilation of SBCL.

This failure occurs on both 1.4.0-dev and 1.3.1, so the problem has been present for a while.

From <http://pastebin.com/KUCzCNd5>:

 
; Wrote /root/sbcl-1.2.3/obj/from-host/src/compiler/policies.abcl-tmp (0.307 seconds)
; Compiling /root/sbcl-1.2.3/src/compiler/macros.lisp ...
; (IN-PACKAGE "SB!C")
; (DECLAIM (SPECIAL *COMPILER-ERROR-CONTEXT*))
; (DEFMACRO DEF-IR1-TRANSLATOR ...)
; (DEFMACRO SOURCE-TRANSFORM-LAMBDA ...)
; (DEFMACRO DEFINE-SOURCE-TRANSFORM ...)
; (DEFTYPE ATTRIBUTES ...)
; (DEFUN COMPUTE-ATTRIBUTE-MASK ...)
; (DEF!MACRO !DEF-BOOLEAN-ATTRIBUTE ...)
; (DEFUN GUTS-OF-!DEF-BOOLEAN-ATTRIBUTE-SETTER ...)
; (DEFMACRO !DEF-BOOLEAN-ATTRIBUTE-SETTER ...)
; (DEFMACRO ATTRIBUTES-UNION ...)
; (DEFMACRO ATTRIBUTES-INTERSECTION ...)
; (DECLAIM (FTYPE # ...))
; (DECLAIM (INLINE ATTRIBUTES=))
; (DEFUN ATTRIBUTES= ...)
; (DEFUN PARSE-DEFTRANSFORM ...)
; (DEFMACRO DEFTRANSFORM ...)
; (DEFMACRO DEFKNOWN ...)
; (DEFMACRO DEFOPTIMIZER ...)
#<THREAD "interpreter" {5B9A5111}>: Debugger invoked on condition of type UNDEFINED-FUNCTION
  The function SB!IMPL::DECL-EXPR is undefined.
Restarts:
  0: CONTINUE     Try again.
  1: USE-VALUE    Specify a function to call instead.
  2: RETURN-VALUE Return one or more values from the call to SB!IMPL::DECL-EXPR.
  3: TOP-LEVEL    Return to top level.
[1] SB!C(11):
; Compilation unit finished
;   The following functions were used but not defined:
;     SB!INT:PARSE-LAMBDA-LIST

Change History (17)

comment:1 Changed 10 years ago by Mark Evenson

One can get this point in a naked REPL via executing the following form on the source tree:

  (load "~/src/sbcl-1.2.3/make-host-1.lisp")

SB!IMPL::DECL-EXPR is not being used as a function in the compilation, so something is mucked up in the DEFOPTIMIZER macro transformation.

DECL-EXPR is used in src/code/early-extensions.lisp in the definition of SB!IMPL::BINDING* in a manner that looks like a function invocation. Why is this not the case?

                (let ((continue (acond ((cdr bindings) (recurse it rest-decls))
                                       (t (append decls forms)))))
                  `((multiple-value-bind ,names ,value-form
                      ,@(decl-expr binding-decls ignores)
                      ,@(ecase flag
                          ((nil) continue)
                          ((:exit-if-null)
                           `((when ,(first names) ,@continue))))))))))


comment:2 in reply to:  1 Changed 10 years ago by Mark Evenson

Replying to mevenson:

DECL-EXPR is used in src/code/early-extensions.lisp in the definition of SB!IMPL::BINDING* in a manner that looks like a function invocation. Why is this not the case?

Because the ,@ operator is not correctly splicing as a list.

comment:3 Changed 9 years ago by Mark Evenson

The cause of the problems may not necessarily be a problem introduced in ABCL.

See <http://christophe.rhodes.io/notes/blog/posts/2014/still_working_on_reproducible_builds/> for Christophe's exposition on problems within SBCL.

comment:4 Changed 8 years ago by Dkatzman2002

ABCL can build SBCL now, and you can probably close this, though ticket 351 is still open and genuinely a bug.

comment:5 Changed 7 years ago by Mark Evenson

Milestone: 1.4.01.5.0

Ticket retargeted after milestone closed

comment:6 Changed 7 years ago by Mark Evenson

Milestone: 1.5.01.6.0

Ticket retargeted after milestone closed

comment:7 Changed 4 years ago by Mark Evenson

Milestone: 1.6.01.6.1

Ticket retargeted after milestone closed

comment:8 Changed 4 years ago by Mark Evenson

Milestone: 1.6.11.6.2

Ticket retargeted after milestone closed

comment:9 Changed 4 years ago by Mark Evenson

Milestone: 1.6.21.7.0

comment:10 Changed 4 years ago by Mark Evenson

Milestone: 1.7.01.7.1

Ticket retargeted after milestone closed

comment:11 Changed 4 years ago by Mark Evenson

Milestone: 1.7.11.7.2

Ticket retargeted after milestone closed

comment:12 Changed 4 years ago by Mark Evenson

Milestone: 1.7.21.8.0

Milestone renamed

comment:13 Changed 3 years ago by Mark Evenson

Milestone: 1.8.01.8.1

Ticket retargeted after milestone closed

comment:14 Changed 2 years ago by Mark Evenson

Milestone: 1.8.11.9.0

comment:15 Changed 14 months ago by Mark Evenson

Milestone: 1.9.01.9.1

comment:16 Changed 13 months ago by Mark Evenson

Milestone: 1.9.11.9.2

comment:17 Changed 9 months ago by Mark Evenson

Milestone: 1.9.21.9.3
Note: See TracTickets for help on using tickets.