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

Guix package compilation error #42

Closed
Ambrevar opened this issue Oct 7, 2019 · 6 comments
Closed

Guix package compilation error #42

Ambrevar opened this issue Oct 7, 2019 · 6 comments

Comments

@Ambrevar
Copy link

Ambrevar commented Oct 7, 2019

; compiling (DEFUN FLOAT-PRECISION-CONTAGION ...)
; file: /gnu/store/81mwbkhih0v063r2cbs2b9kp70dk4l39-sbcl-serapeum-0.0.0-0.9cc0f9c/share/common-lisp/sbcl-source/serapeum/numbers.lisp
; in: DEFUN FLOAT-PRECISION-CONTAGION
;     (SERAPEUM:OP
;       (+ SERAPEUM::_ SERAPEUM::ZERO))
; 
; caught ERROR:
;   during macroexpansion of
;   (OP
;     (+ _ ZERO)).
;   Use *BREAK-ON-SIGNALS* to intercept.
;   
;    The function SERAPEUM/OP::EXTRACT-OP-ENV is undefined.

;     (MAPCAR
;      (SERAPEUM:OP
;        (+ SERAPEUM::_ SERAPEUM::ZERO))
;      SERAPEUM::NS)
; --> LET 
; ==>
;   (SB-KERNEL:%COERCE-CALLABLE-TO-FUN
;    (SERAPEUM:OP
;      (+ SERAPEUM::_ SERAPEUM::ZERO)))
; 
; note: The first argument never returns a value.

;     (SERAPEUM:OP
;       (* SERAPEUM::_ 0))
; 
; caught ERROR:
[...]

Any idea where that could come from?

@Ambrevar
Copy link
Author

Ambrevar commented Oct 7, 2019

A clue: Guix uses compile-bundle-op and since extract-op-env is used by the op macro while unexported, it does not exist at compile time for the other files using op.

@Ambrevar
Copy link
Author

Ambrevar commented Oct 7, 2019

Possible fixes:

  • Either export extract-op-env (at compile time).
  • Or turn it into a macro.

ruricolist added a commit that referenced this issue Oct 7, 2019
As shaken out by compile-bundle-op.

Per #42.
@ruricolist
Copy link
Owner

I've pushed a potential fix; would you mind trying again?

@Ambrevar
Copy link
Author

Ambrevar commented Oct 8, 2019

It worked, thanks!
Can you explain why this works? I thought that serial t was enough to ensure all preceding files were a dependency of the current file.

@ruricolist
Copy link
Owner

Different modules in a system can be serial or not serial. In Serapeum, the :serial t in the system definition only applies to the top level (the ordering of modules) -- the individual modules have :serial nil, just to avoid needless recompilation. But evidently there were some dependencies I missed.

@Ambrevar
Copy link
Author

Ambrevar commented Oct 10, 2019 via email

tviti added a commit to tviti/nixpkgs that referenced this issue Jan 21, 2020
Adds common-lisp package serapeum (a dependency for Next browser as of
Next v1.4.0), using the quicklisp-to-nix mechanism.

src is overridden and pinned to 65837f8 to deal with
ruricolist/serapeum#42
dtzWill pushed a commit to dtzWill/nixpkgs that referenced this issue Jan 30, 2020
Adds common-lisp package serapeum (a dependency for Next browser as of
Next v1.4.0), using the quicklisp-to-nix mechanism.

src is overridden and pinned to 65837f8 to deal with
ruricolist/serapeum#42

(cherry picked from commit 418b80b)
jpgu-epam pushed a commit to jpgu-epam/nixpkgs that referenced this issue Feb 4, 2020
Adds common-lisp package serapeum (a dependency for Next browser as of
Next v1.4.0), using the quicklisp-to-nix mechanism.

src is overridden and pinned to 65837f8 to deal with
ruricolist/serapeum#42
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