Opened 11 years ago
Last modified 2 years 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 follow-up: 2 Changed 11 years ago by
comment:2 Changed 11 years ago by
Replying to mevenson:
DECL-EXPRis used insrc/code/early-extensions.lispin the definition ofSB!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 11 years ago by
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 10 years ago by
ABCL can build SBCL now, and you can probably close this, though ticket 351 is still open and genuinely a bug.
comment:9 Changed 5 years ago by
| Milestone: | 1.6.2 → 1.7.0 |
|---|
comment:14 Changed 4 years ago by
| Milestone: | 1.8.1 → 1.9.0 |
|---|
comment:15 Changed 3 years ago by
| Milestone: | 1.9.0 → 1.9.1 |
|---|
comment:16 Changed 3 years ago by
| Milestone: | 1.9.1 → 1.9.2 |
|---|
comment:17 Changed 2 years ago by
| Milestone: | 1.9.2 → 1.9.3 |
|---|
One can get this point in a naked REPL via executing the following form on the source tree:
SB!IMPL::DECL-EXPRis not being used as a function in the compilation, so something is mucked up in theDEFOPTIMIZERmacro transformation.DECL-EXPRis used insrc/code/early-extensions.lispin the definition ofSB!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))))))))))