Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a compile-bundle-op test #55

Open
Ambrevar opened this issue Mar 28, 2020 · 2 comments
Open

Add a compile-bundle-op test #55

Ambrevar opened this issue Mar 28, 2020 · 2 comments

Comments

@Ambrevar
Copy link

A similar error occurred in the past when I tried to package serapeum for Guix.
The fix was in the .asd.

; file: /gnu/store/spzi46n7wgmd3k64m7q6nrbd43qa0z0c-sbcl-serapeum-0.0.0-1.6aba6d5/share/common-lisp/sbcl-source/serapeum/sequences.lisp
; in: DEFSUBST SINGLE
;     (SERAPEUM:DEFSUBST SERAPEUM:SINGLE
;         (SERAPEUM::SEQ)
;       "Is SEQ a sequence of one element?"
;       (SERAPEUM::SEQ-DISPATCH SERAPEUM::SEQ
;         (AND SERAPEUM::SEQ (ENDP (CDR SERAPEUM::SEQ)))
;         (= (LENGTH SERAPEUM::SEQ) 1)))
; --> PROGN DECLAIM EVAL-WHEN 
; ==>
;   (SB-C::%PROCLAIM '(INLINE SERAPEUM:SINGLE) (SB-C:SOURCE-LOCATION))
; 
; caught STYLE-WARNING:
;   Proclaiming SERAPEUM:SINGLE to be INLINE, but 4 calls to it were previously
;   compiled. A declaration of NOTINLINE at the call sites will eliminate this
;   warning, as will proclaiming and defining the function before its first
;   potential use.

; compiling (DEFTYPE SINGLE ...)
; compiling (DEFUN ONLY-ELT ...)
; compiling (DEFUN ROTATION ...)
; compiling (DEFUN PARTITION ...)
; compiling (DEFUN PARTITIONS ...)
; compiling (DEFCONSTRUCTOR AGROUP ...)
; file: /gnu/store/spzi46n7wgmd3k64m7q6nrbd43qa0z0c-sbcl-serapeum-0.0.0-1.6aba6d5/share/common-lisp/sbcl-source/serapeum/sequences.lisp
; in: DEFCONSTRUCTOR AGROUP
;     (SERAPEUM:DEFCONSTRUCTOR SERAPEUM::AGROUP
;       "Auxiliary data structure for `assort'. A pair of an exemplar (to
;   compare against) and a bucket of matching items. Note that while the
;   agroup is immutable, the bucket itself is mutable."
;       (SERAPEUM::EXEMPLAR T)
;       (SERAPEUM::BUCKET T))
; --> PROGN 
; ==>
;   (SERAPEUM:DEFSTRUCT-READ-ONLY (SERAPEUM::AGROUP
;                                  (:CONSTRUCTOR SERAPEUM::AGROUP
;                                   (SERAPEUM::EXEMPLAR SERAPEUM::BUCKET))
;                                  (:CONC-NAME SERAPEUM::AGROUP-)
;                                  (:PREDICATE NIL)
;                                  (:PRINT-FUNCTION
;                                   (LAMBDA
;                                       (SERAPEUM::OBJECT STREAM SERAPEUM::DEPTH)
;                                     (DECLARE #)
;                                     (LET #
;                                       #
;                                       #))))
;     "Auxiliary data structure for `assort'. A pair of an exemplar (to
; compare against) and a bucket of matching items. Note that while the
; agroup is immutable, the bucket itself is mutable."
;     (SERAPEUM::EXEMPLAR :TYPE T)
;     (SERAPEUM::BUCKET :TYPE T))
; 
; caught ERROR:
;   (during macroexpansion of (DEFSTRUCT-READ-ONLY (AGROUP # ...)
;     ...))
;   The function SERAPEUM:CAR-SAFE is undefined.

What do you think of adding a compile-bundle-op test? :)

@ruricolist
Copy link
Owner

I think that would be a good idea.

ruricolist added a commit that referenced this issue Mar 30, 2020
The real definition of car-safe is at a higher level.

See #55.
@ruricolist ruricolist changed the title compile-bundle-op error: The function SERAPEUM:CAR-SAFE is undefined. Add a compile-bundle-op test Mar 30, 2020
@Ambrevar
Copy link
Author

9c5139e fixed it for me. thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants