ruricolist / serapeum

Utilities beyond Alexandria
MIT License
420 stars 41 forks source link

Serapeum doesn't load on stock Debian ECL on DEFSTRUCT BOX #95

Closed stylewarning closed 2 years ago

stylewarning commented 2 years ago
$ ecl
;;; Loading "/home/r/quicklisp/setup.lisp"
;;; Loading #P"/usr/lib/x86_64-linux-gnu/ecl-16.1.3/asdf.fas"
ECL (Embeddable Common-Lisp) 16.1.3 (git:UNKNOWN)
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2000 Juan J. Garcia-Ripoll
Copyright (C) 2016 Daniel Kochmanski
ECL is free software, and you are welcome to redistribute it
under certain conditions; see file 'Copyright' for details.
Type :h for Help.  
Top level in: #<process TOP-LEVEL>.
> (ql:quickload :serapeum)
To load "serapeum":
  Load 1 ASDF system:
    serapeum
; Loading "serapeum"
;;;
;;; Compiling /home/r/quicklisp/dists/quicklisp/software/serapeum-20210807-git/box.lisp.
;;; OPTIMIZE levels: Safety=3, Space=0, Speed=1, Debug=3
;;;
;;; Error:
;;;   in file box.lisp, position 88
;;;   at (DEFSTRUCT (BOX # ...) ...)
;;;   * The macro form (DEFSTRUCT (BOX (:CONSTRUCTOR BOX (UNBOX)) (:PREDICATE BOXP) (:CONC-NAME NIL) :ATOMIC-ACCESSORS) "A box is just a mutable cell.
;;; 
;;; You create a box using `box' and get and set its value using the
;;; accessor `unbox'.
;;; 
;;;     (def a-box (box t))
;;;     (unbox a-box) => t
;;;     (setf (unbox a-box) nil)
;;;     (unbox a-box) => nil
;;; 
;;; Serapeum attempts to provide the guarantee that, on Lisps that support
;;; atomic operations (compare-and-swap), `unbox` on boxes should be
;;; updateable atomically. (See
;;; [atomics](https://github.com/Shinmera/atomics)).
;;; 
;;; At the moment, boxes are implemented as structures, but that may
;;; change. In particular, you should not depend on being able to
;;; recognize boxes using a type or predicate." UNBOX) was not expanded successfully.
;;; Error detected:
;;; :ATOMIC-ACCESSORS is an illegal defstruct option.
Condition of type: COMPILE-FILE-ERROR
COMPILE-FILE-ERROR while compiling #<cl-source-file "serapeum" "level0" "box">

Available restarts:

1. (RETRY) Retry compiling #<cl-source-file "serapeum" "level0" "box">.
2. (ACCEPT) Continue, treating compiling #<cl-source-file "serapeum" "level0" "box"> as having been successful.
3. (RETRY) Retry ASDF operation.
4. (CLEAR-CONFIGURATION-AND-RETRY) Retry ASDF operation after resetting the configuration.
5. (ABORT) Give up on "serapeum"
6. (REGISTER-LOCAL-PROJECTS) Register local projects and try again.
7. (RESTART-TOPLEVEL) Go back to Top-Level REPL.

Broken at SI:BYTECODES. [Evaluation of: (QUICKLISP-CLIENT:QUICKLOAD :SERAPEUM)] In: #<process TOP-LEVEL>.
ruricolist commented 2 years ago

This should be fixed now, although I can't test it at the moment.

ruricolist commented 2 years ago

I'm closing this for the moment, since bullseye installs ECL 20.4.24. If this remains a problem feel free to reopen.