sharplispers / ironclad

A cryptographic toolkit written in Common Lisp
BSD 3-Clause "New" or "Revised" License
166 stars 28 forks source link

SB-VM::MAKE-EA went away on SBCL-2.1.0 (compared to 2.0.11) #39

Closed cracauer closed 2 years ago

cracauer commented 3 years ago

Ironclad uses SB-VM::MAKE-EA, but that function went away:

changes in sbcl-2.1.0 relative to sbcl-2.0.11:

Here is the commit:

commit d0b883d297601e33b5102270cf5235835f85ee22 Author: Douglas Katzman dougk@google.com Date: Sun Nov 29 10:49:37 2020 -0500

Remove MAKE-EA

Backward-compatibility was provided mainly for ironclad and nibbles,
but they no longer need special accommodation.
glv2 commented 3 years ago

The current version of Ironclad (0.54) should only use make-ea on x86-64 machines on older versions of SBCL (when :ironclad-sb-vm-ea is not in *features*, see 'src/package.lisp' and 'src/opt/sbcl/x86oid-vm.lisp').

Did you find a case where Ironclad tries to use it with SBCL 2.1.0?

djireland commented 3 years ago

When running (ql:quickload :ironclad) on Arch Linux x86-64 with SBCL 2.1.1

I get the related error:

COMPILE-FILE-ERROR while compiling
   #<IRONCLAD-SOURCE-FILE "ironclad" "src" "opt" "sbcl" "x86oid-vm">
   [Condition of type UIOP/LISP-BUILD:COMPILE-FILE-ERROR]

; Loading "ironclad"
[package ironclad-vm]
; 
; caught ERROR:
;   READ error during COMPILE-FILE:
;   
;     Lock on package SB-VM violated when interning MAKE-EA while in package
;     IRONCLAD-VM.
;   See also:
;     The SBCL Manual, Node "Package Locks"
;   
;     (in form starting at line: 34, column: 0, position: 1344)
glv2 commented 3 years ago

@djireland Is your Quicklisp distribution up to date? What version of Ironclad do you have?

C-Entropy commented 3 years ago

I came into this too. I use slime-edit-definition against :ironclad inside (ql:quickload :ironclad), it lead me to here.

Then I delete the whole web-toolkit directy and then install ironclad again. This time it work. So for me, it turns out that the ironclad version is out of date. You may try slime-edit-definition(Maybe M-. inside emacs with slime) against :ironclad, and see where it leads you.

Olivia5k commented 3 years ago

For the record - I ran into the same issues, and updating ironclad via (ql:update-all-dists) made the problem go away. I'm also on Arch and with the same sbcl version as @djireland.

kaeland commented 2 years ago

@thiderman Thank you, running (ql:update-all-dists) fixed the issue for me.

ashok-khanna commented 2 years ago

I came into this too. I use slime-edit-definition against :ironclad inside (ql:quickload :ironclad), it lead me to here.

Then I delete the whole web-toolkit directy and then install ironclad again. This time it work. So for me, it turns out that the ironclad version is out of date. You may try slime-edit-definition(Maybe M-. inside emacs with slime) against :ironclad, and see where it leads you.

This really helped me, thank you