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:
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