In both cases (ECL built from the tag and your install from the HEAD) make sure you remove previous ECL and its cache with FASLs. It might be that you use wrong library in your system (i.e two libecl libraries are installed, or FASL from incompatible version is loaded).
Regards, Daniel
On 09.05.2018 07:09, Peter Keller wrote:
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:
- (RETRY) Retry compiling #<cl-source-file "fare-utils" "base" "utils">.
- (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