On 05/08/2018 11:03 PM, Andrew Kirkpatrick wrote:
Interestingly I cannot reproduce it. I'm running Linux Mint 18.2 and built ECL from a git checkout of the tag ECL-16.1.3:
$ /opt/ecl/bin/ecl ;;; Loading "/home/spacebat/quicklisp/setup.lisp" ;;; Loading #P"/opt/ecl/lib/ecl-16.1.3/asdf.fas" ECL (Embeddable Common-Lisp) 16.1.3 (git:17645d703eb95b9452186015f5f3a1a9c0bc6b6a) 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>.
(defstruct (foo (:type vector) (:predicate nil)) qux bar)
FOO
(make-foo :qux "q" :bar "b")
#("q" "b")
However if I install ECL via apt, I get an older version with this banner:
ECL (Embeddable Common-Lisp) 15.3.7 (git:UNKNOWN)
The error you describe is then evident.
I suspect the tagged version and the actual release are different, but it seems it is moot.
I was not the only person to discover this bug:
https://gitlab.com/embeddable-common-lisp/ecl/issues/385
It turns out it is fixed on the head of ecl (and maybe by the time that tag was actually made, too).
When I switched to the head of ECL, the described problem went away.
Sadly, another problem showed up, this time trying to load fare-utils from the most recent edition of Quicklisp.
Linux violet > ecl ;;; Loading "/home/psilord/quicklisp/setup.lisp" ;;; Loading #P"/usr/local/lib/ecl-16.1.3/asdf.fas" ECL (Embeddable Common-Lisp) 16.1.3 (git:e3b9919ffaddbeb8d5f16c394fb70b813c5f0d94) 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 0x2314f80>.
(ql:quickload :fare-utils)
To load "fare-utils": Load 1 ASDF system: fare-utils ; Loading "fare-utils" ;;; ;;; Compiling /home/psilord/quicklisp/dists/quicklisp/software/fare-utils-20170124-git/base/utils.lisp. ;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0 ;;; . ;;; Error: ;;; in file utils.lisp, position 4443 ;;; at (EXPORTING-DEFINITIONS (DEFMACRO DEFINE-EXPORTER ...) ...) ;;; * The macro form (EXPORTING-DEFINITIONS (DEFMACRO DEFINE-EXPORTER (EXPORTER DEFINER) `(DEFMACRO ,EXPORTER (SYMBOL &REST ARGS) `(PROGN (,',DEFINER ,SYMBOL ,@ARGS) (ENSURE-SYMBOL-EXPORTED ,SYMBOL)))) (DEFINE-EXPORTER DEFINE*-EXPORTER DEFINE-EXPORTER) (DEFINE-EXPORTER DEF*CLASS DEFCLASS) (DEFINE-EXPORTER DEF*CONSTANT DEFCONSTANT) (DEFINE-EXPORTER DEF*GENERIC DEFGENERIC) (DEFINE-EXPORTER DEFINE*-COMPILER-MACRO DEFINE-COMPILER-MACRO) (DEFINE-EXPORTER DEFINE*-CONDITION DEFINE-CONDITION) (DEFINE-EXPORTER DEFINE*-METHOD-COMBINATION DEFINE-METHOD-COMBINATION) (DEFINE-EXPORTER DEFINE*-MODIFY-MACRO DEFINE-MODIFY-MACRO) (DEFINE-EXPORTER DEFINE*-SETF-EXPANDER DEFINE-SETF-EXPANDER) (DEFINE-EXPORTER DEFINE*-SYMBOL-MACRO DEFINE-SYMBOL-MACRO) (DEFINE-EXPORTER DEF*MACRO DEFMACRO) (DEFINE-EXPORTER DEF*METHOD DEFMETHOD) (DEFINE-EXPORTER DEF*PACKAGE DEFPACKAGE) (DEFINE-EXPORTER DEF*PARAMETER DEFPARAMETER) (DEFINE-EXPORTER DEF*SETF DEFSETF) (DEFINE-EXPORTER DEF*STRUCT DEFSTRUCT) (DEFINE-EXPORTER DEF*TYPE DEFTYPE) (DEFINE-EXPORTER DEF*FUN DEFUN) (DEFINE-EXPORTER DEF*VAR DEFVAR)) was not expanded successfully. ;;; Error detected: ;;; GO: The tagbody 2875 is missing. Condition of type: COMPILE-FILE-ERROR COMPILE-FILE-ERROR while compiling #<cl-source-file "fare-utils" "base" "utils">
Available restarts:
1. (RETRY) Retry compiling #<cl-source-file "fare-utils" "base" "utils">. 2. (ACCEPT) Continue, treating compiling #<cl-source-file "fare-utils" "base" "utils"> 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 "fare-utils" 6. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at SI:BYTECODES. [Evaluation of: (QUICKLISP-CLIENT:QUICKLOAD :FARE-UTILS)] In: #<process TOP-LEVEL 0x2314f80>.
I appreciate you had spent some time looking into the :predicate bug.
Thank you!
-pete