Hi, ABCL developers
The crypto library IRONCLAD [1] cannot be compiled on latest ABCL any more, I got following errors when compiling one of its source file.
To show the core issue, create a lisp file with following single line and compile it, you'll see the same error:
(defconstant a #.(make-array '(8 256) :element-type '(unsigned-byte 32) :initial-element 0))
I don't know how to fix this, have to ask help from ABCL maintainers.
Regards,
Chun Tian (binghe)
[1] http://method-combination.net/lisp/ironclad/ -- Original error outputs:
; Compiling /Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/whirlpool.lisp ... ; (IN-PACKAGE :CRYPTO) ; (DEFTYPE WHIRLPOOL-REGS ...) ; (DEFUN INITIAL-WHIRLPOOL-REGS ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-HASH-OFFSET+ ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-K-OFFSET+ ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-STATE-OFFSET+ ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-L-OFFSET+ ...) ; (DEFCONST +PRISTINE-WHIRLPOOL-REGISTERS+ ...) ; (DEFUN WHIRLPOOLREGS-DIGEST ...) ; (DEFCONSTANT +WHIRLPOOL-ROUNDS+ ...) ; (DECLAIM (TYPE # ...)) ; (DEFCONST +RC+ ...) ; (DECLAIM (TYPE # ...)) ; (DEFCONST +C-EVEN+ ...) #<THREAD "interpreter" {78D08435}>: Debugger invoked on condition of type PRINT-NOT-READABLE #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}> cannot be printed readably. Restarts: 0: TRY-RECOMPILING Try recompiling whirlpool 1: RETRY Retry compiling #<IRONCLAD-SYSTEM::IRONCLAD-SOURCE-FILE "ironclad" "src" "digests" "whirlpool">. 2: ACCEPT Continue, treating compiling #<IRONCLAD-SYSTEM::IRONCLAD-SOURCE-FILE "ironclad" "src" "digests" "whirlpool"> as having been successful. 3: TOP-LEVEL Return to top level.
[1] CRYPTO(9): :bt 20
0: (SYSTEM:BACKTRACE) 1: (INVOKE-DEBUGGER #<PRINT-NOT-READABLE {6EA518B6}>) 2: org.armedbear.lisp.Lisp.error(Lisp.java:373) 3: org.armedbear.lisp.SimpleArray_UnsignedByte32.writeToString(SimpleArray_UnsignedByte32.java:287) 4: org.armedbear.lisp.Primitives$pf__stream_output_object.execute(Primitives.java:887) 5: (SYSTEM:%STREAM-OUTPUT-OBJECT #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}> #<FILE-STREAM {18F98D7A}>) 6: (SYSTEM::DUMP-OBJECT #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}> #<FILE-STREAM {18F98D7A}>) 7: (SYSTEM::DUMP-CONS (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>) #<FILE-STREAM {18F98D7A}>) 8: (SYSTEM::DUMP-OBJECT (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>) #<FILE-STREAM {18F98D7A}>) 9: (SYSTEM::DUMP-CONS (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}>) 10: (SYSTEM::DUMP-OBJECT (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}>) 11: (SYSTEM:DUMP-FORM (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}>) 12: (SYSTEM::OUTPUT-FORM (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>))) 13: (SYSTEM::PROCESS-DEFCONSTANT (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>))) 14: (SYSTEM::PROCESS-TOPLEVEL-FORM (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}> NIL) 15: (SYSTEM::PROCESS-TOPLEVEL-FORM (IRONCLAD::DEFCONST IRONCLAD::+C-EVEN+ #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>) #<FILE-STREAM {18F98D7A}> NIL) 16: (#<FUNCTION {1F97D330}>) 17: (JRUN-EXCEPTION-PROTECTED #<FUNCTION {1F97D330}>) 18: (JVM::%WITH-COMPILATION-UNIT #<FUNCTION {28AA0484}>) 19: (COMPILE-FILE #P"/Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/whirlpool.lisp" :OUTPUT-FILE #P"/Users/binghe/.cache/common-lisp/abcl-0.26.0-dev-svn-13379-fasl37-macosx-java/Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/ASDF-TMP-whirlpool.abcl" :OUTPUT-FILE #P"/Users/binghe/.cache/common-lisp/abcl-0.26.0-dev-svn-13379-fasl37-macosx-java/Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/whirlpool.abcl")
On 7/7/11 11:07 AM, Chun Tian (binghe) wrote:
(defconstant a #.(make-array '(8 256) :element-type '(unsigned-byte 32) :initial-element 0))
Reproduced and filed [as ticket #156][1]
[1]: http://trac.common-lisp.net/armedbear/ticket/156
On Thu, Jul 7, 2011 at 12:32 PM, Mark Evenson evenson@panix.com wrote:
On 7/7/11 11:07 AM, Chun Tian (binghe) wrote:
(defconstant a #.(make-array '(8 256) :element-type '(unsigned-byte 32) :initial-element 0))
Reproduced and filed [as ticket #156][1]
I don't know if it's related, but I noticed that the printing of some objects (at least CLOS objects and conditions) has been broken for some time. For example:
CL-USER(8): (car 12) #<THREAD "interpreter" {1A0283E}>: Debugger invoked on condition of type TYPE-ERROR The value 12 is not of type LIST. Restarts: 0: TOP-LEVEL Return to top level. [1] CL-USER(9): :bt
0: (SYSTEM:BACKTRACE) 1: (INVOKE-DEBUGGER #<TYPE-ERROR #<TYPE-ERROR {3B3219ED}> {3B3219ED}>) 2: org.armedbear.lisp.Lisp.error(Lisp.java:373) 3: org.armedbear.lisp.Lisp.type_error(Lisp.java:414) 4: org.armedbear.lisp.LispObject.car(LispObject.java:156) 5: org.armedbear.lisp.cxr$pf_car.execute(cxr.java:80) 6: org.armedbear.lisp.LispThread.execute(LispThread.java:636) 7: org.armedbear.lisp.Lisp.evalCall(Lisp.java:540) [1] CL-USER(10):
Note the #<TYPE-ERROR #<TYPE-ERROR {3B3219ED}> {3B3219ED}>
Alessio
The doubling of identity should have been corrected yesterday with [r13378]().
[r13378]: http://trac.common-lisp.net/armedbear/changeset/13378
Sent from my iPad
On Jul 7, 2011, at 1:37 PM, Alessio Stalla alessiostalla@gmail.com wrote:
On Thu, Jul 7, 2011 at 12:32 PM, Mark Evenson evenson@panix.com wrote:
On 7/7/11 11:07 AM, Chun Tian (binghe) wrote:
(defconstant a #.(make-array '(8 256) :element-type '(unsigned-byte 32) :initial-element 0))
Reproduced and filed [as ticket #156][1]
I don't know if it's related, but I noticed that the printing of some objects (at least CLOS objects and conditions) has been broken for some time. For example:
CL-USER(8): (car 12) #<THREAD "interpreter" {1A0283E}>: Debugger invoked on condition of type TYPE-ERROR The value 12 is not of type LIST. Restarts: 0: TOP-LEVEL Return to top level. [1] CL-USER(9): :bt
0: (SYSTEM:BACKTRACE) 1: (INVOKE-DEBUGGER #<TYPE-ERROR #<TYPE-ERROR {3B3219ED}> {3B3219ED}>) 2: org.armedbear.lisp.Lisp.error(Lisp.java:373) 3: org.armedbear.lisp.Lisp.type_error(Lisp.java:414) 4: org.armedbear.lisp.LispObject.car(LispObject.java:156) 5: org.armedbear.lisp.cxr$pf_car.execute(cxr.java:80) 6: org.armedbear.lisp.LispThread.execute(LispThread.java:636) 7: org.armedbear.lisp.Lisp.evalCall(Lisp.java:540) [1] CL-USER(10):
Note the #<TYPE-ERROR #<TYPE-ERROR {3B3219ED}> {3B3219ED}>
Alessio
On 7/7/11 12:32 , Mark Evenson wrote:
On 7/7/11 11:07 AM, Chun Tian (binghe) wrote:
(defconstant a #.(make-array '(8 256) :element-type '(unsigned-byte 32) :initial-element 0))
Reproduced and filed [as ticket #156][1]
[r13380][1] addresses this ticket allowing the form to be compiled again.
[r13380]: http://trac.common-lisp.net/armedbear/changeset/13380
But the compilation of the form probably doesn't do what you want. The ABCL compiler currently dumps such forms in their READ form to be read at load time rather than constructing JVM code to initialize the value. This has two consequences for your usage here: first, since the string has to be derserialized by the Lisp reader there is almost no conceivable JVM implementation that will make this usage faster. And the potentially more serious problem is that since the Lisp reader syntax doesn't specify the underlying array type, at runtime one gets an array who's BASE-ELEMENT-TYPE is T rather than (UNSIGNED-BYTE 32) which is probably less efficient.
Does anyone know if ANSI requires us to restore the compiled type at runtime? Or is the requirement to have "at least" the type specified in the MAKE-ARRAY call?
@Alan: I value your intuition that the sharpsign dot form here isn't portable. But is there a specific part of CLHS that you are thinking about here that I could pore over?
Hi, Mark
Thanks very much. I've checked, IRONCLAD now compile well on latest ABCL.
And I also checked the compilation results, I unzipped the resulting .abcl file and see something like this:
(DEFCONSTANT +C-EVEN+ (IF (BOUNDP '+C-EVEN+) (SYMBOL-VALUE '+C-EVEN+) #2A((404250648 589532195 3334881222 3907553256 2273781383 3099122360 16843777 1330585935 909563958 2795938470 3537006546 4126536693 2038036857 1869586799 2442231441 1381127506 1616944480 3166489276 2610648731 2391671438 2745415331 202125324 2071720315 892720181 488469533 3772819424 3621223383 3267506114 774813742 1263219019 4278116350 1465336151 353719317 2004337015 926407735 3857036261 2678015647 4042319856 1246377290 3671740378 1482194264 3385394121 690594857 168437770 2981232305 2694888096 1802219883 2240097925 3183333053 ...
This means the #. reader macro has been successfully processed into literal array, this is just good.
Regards,
Chun Tian (binghe)
在 2011-7-8,16:52, Mark Evenson 写道:
On 7/7/11 12:32 , Mark Evenson wrote:
On 7/7/11 11:07 AM, Chun Tian (binghe) wrote:
(defconstant a #.(make-array '(8 256) :element-type '(unsigned-byte 32) :initial-element 0))
Reproduced and filed [as ticket #156][1]
[r13380][1] addresses this ticket allowing the form to be compiled again.
But the compilation of the form probably doesn't do what you want. The ABCL compiler currently dumps such forms in their READ form to be read at load time rather than constructing JVM code to initialize the value. This has two consequences for your usage here: first, since the string has to be derserialized by the Lisp reader there is almost no conceivable JVM implementation that will make this usage faster. And the potentially more serious problem is that since the Lisp reader syntax doesn't specify the underlying array type, at runtime one gets an array who's BASE-ELEMENT-TYPE is T rather than (UNSIGNED-BYTE 32) which is probably less efficient.
Does anyone know if ANSI requires us to restore the compiled type at runtime? Or is the requirement to have "at least" the type specified in the MAKE-ARRAY call?
@Alan: I value your intuition that the sharpsign dot form here isn't portable. But is there a specific part of CLHS that you are thinking about here that I could pore over?
-- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."
armedbear-devel mailing list armedbear-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel
On Fri, Jul 8, 2011 at 4:52 AM, Mark Evenson evenson@panix.com wrote:
@Alan: I value your intuition that the sharpsign dot form here isn't portable. But is there a specific part of CLHS that you are thinking about here that I could pore over?
I was trying to find. The thing is that #. isn't compile-time - it's even earlier - read time, and I suspect the issue is the environment it is compiled in might not be well-defined.
The documented way to accomplish what is desired, I believe, is to use load-time-value inside a compiled function.
(defun make-foo () (load-time-value <value form> t)) ; read-only-p <- t, cause it is a constant (defparameter +foo+ (make-foo))
http://www.lispworks.com/documentation/HyperSpec/Body/s_ld_tim.htm
"load-time-value form &optional read-only-p => object
Arguments and Values: form---a form; evaluated as described below. read-only-p---a boolean; not evaluated. object---the primary value resulting from evaluating form."
"If a load-time-value expression appears within a function compiled with compile, the form is evaluated at compile time in a null lexical environment. The result of this compile-time evaluation is treated as a literal object in the compiled code."
-Alan
I'm of the impression that #.(make-array isn't portable, but am happy to be corrected by reference to the spec. I think better practices is to use (load-time-value (make-array...
-Alan
On Thu, Jul 7, 2011 at 5:07 AM, Chun Tian (binghe) binghe.lisp@gmail.com wrote:
Hi, ABCL developers
The crypto library IRONCLAD [1] cannot be compiled on latest ABCL any more, I got following errors when compiling one of its source file.
To show the core issue, create a lisp file with following single line and compile it, you'll see the same error:
(defconstant a #.(make-array '(8 256) :element-type '(unsigned-byte 32) :initial-element 0))
I don't know how to fix this, have to ask help from ABCL maintainers.
Regards,
Chun Tian (binghe)
[1] http://method-combination.net/lisp/ironclad/
Original error outputs:
; Compiling /Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/whirlpool.lisp ... ; (IN-PACKAGE :CRYPTO) ; (DEFTYPE WHIRLPOOL-REGS ...) ; (DEFUN INITIAL-WHIRLPOOL-REGS ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-HASH-OFFSET+ ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-K-OFFSET+ ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-STATE-OFFSET+ ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-L-OFFSET+ ...) ; (DEFCONST +PRISTINE-WHIRLPOOL-REGISTERS+ ...) ; (DEFUN WHIRLPOOLREGS-DIGEST ...) ; (DEFCONSTANT +WHIRLPOOL-ROUNDS+ ...) ; (DECLAIM (TYPE # ...)) ; (DEFCONST +RC+ ...) ; (DECLAIM (TYPE # ...)) ; (DEFCONST +C-EVEN+ ...) #<THREAD "interpreter" {78D08435}>: Debugger invoked on condition of type PRINT-NOT-READABLE #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}> cannot be printed readably. Restarts: 0: TRY-RECOMPILING Try recompiling whirlpool 1: RETRY Retry compiling #<IRONCLAD-SYSTEM::IRONCLAD-SOURCE-FILE "ironclad" "src" "digests" "whirlpool">. 2: ACCEPT Continue, treating compiling #<IRONCLAD-SYSTEM::IRONCLAD-SOURCE-FILE "ironclad" "src" "digests" "whirlpool"> as having been successful. 3: TOP-LEVEL Return to top level.
[1] CRYPTO(9): :bt 20
0: (SYSTEM:BACKTRACE) 1: (INVOKE-DEBUGGER #<PRINT-NOT-READABLE {6EA518B6}>) 2: org.armedbear.lisp.Lisp.error(Lisp.java:373) 3: org.armedbear.lisp.SimpleArray_UnsignedByte32.writeToString(SimpleArray_UnsignedByte32.java:287) 4: org.armedbear.lisp.Primitives$pf__stream_output_object.execute(Primitives.java:887) 5: (SYSTEM:%STREAM-OUTPUT-OBJECT #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}> #<FILE-STREAM {18F98D7A}>) 6: (SYSTEM::DUMP-OBJECT #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}> #<FILE-STREAM {18F98D7A}>) 7: (SYSTEM::DUMP-CONS (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>) #<FILE-STREAM {18F98D7A}>) 8: (SYSTEM::DUMP-OBJECT (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>) #<FILE-STREAM {18F98D7A}>) 9: (SYSTEM::DUMP-CONS (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}>) 10: (SYSTEM::DUMP-OBJECT (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}>) 11: (SYSTEM:DUMP-FORM (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}>) 12: (SYSTEM::OUTPUT-FORM (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>))) 13: (SYSTEM::PROCESS-DEFCONSTANT (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>))) 14: (SYSTEM::PROCESS-TOPLEVEL-FORM (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}> NIL) 15: (SYSTEM::PROCESS-TOPLEVEL-FORM (IRONCLAD::DEFCONST IRONCLAD::+C-EVEN+ #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>) #<FILE-STREAM {18F98D7A}> NIL) 16: (#<FUNCTION {1F97D330}>) 17: (JRUN-EXCEPTION-PROTECTED #<FUNCTION {1F97D330}>) 18: (JVM::%WITH-COMPILATION-UNIT #<FUNCTION {28AA0484}>) 19: (COMPILE-FILE #P"/Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/whirlpool.lisp" :OUTPUT-FILE #P"/Users/binghe/.cache/common-lisp/abcl-0.26.0-dev-svn-13379-fasl37-macosx-java/Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/ASDF-TMP-whirlpool.abcl" :OUTPUT-FILE #P"/Users/binghe/.cache/common-lisp/abcl-0.26.0-dev-svn-13379-fasl37-macosx-java/Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/whirlpool.abcl")
armedbear-devel mailing list armedbear-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel
No, load-time-value won't fit the author's need, he want to write something like this:
(defconstant a #2A((0 0) (0 0) ...))
and make sure the array contents are stored directly in fasl files (so that it can be fastest loaded, no load-time computing). The contents of the big array was computed at compile-time.
In practice, all CL implementations (include previous ABCL) support this.
--binghe
在 2011-7-8,01:21, Alan Ruttenberg 写道:
I'm of the impression that #.(make-array isn't portable, but am happy to be corrected by reference to the spec. I think better practices is to use (load-time-value (make-array...
-Alan
On Thu, Jul 7, 2011 at 5:07 AM, Chun Tian (binghe) binghe.lisp@gmail.com wrote:
Hi, ABCL developers
The crypto library IRONCLAD [1] cannot be compiled on latest ABCL any more, I got following errors when compiling one of its source file.
To show the core issue, create a lisp file with following single line and compile it, you'll see the same error:
(defconstant a #.(make-array '(8 256) :element-type '(unsigned-byte 32) :initial-element 0))
I don't know how to fix this, have to ask help from ABCL maintainers.
Regards,
Chun Tian (binghe)
[1] http://method-combination.net/lisp/ironclad/
Original error outputs:
; Compiling /Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/whirlpool.lisp ... ; (IN-PACKAGE :CRYPTO) ; (DEFTYPE WHIRLPOOL-REGS ...) ; (DEFUN INITIAL-WHIRLPOOL-REGS ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-HASH-OFFSET+ ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-K-OFFSET+ ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-STATE-OFFSET+ ...) ; (DEFCONSTANT +WHIRLPOOL-REGS-L-OFFSET+ ...) ; (DEFCONST +PRISTINE-WHIRLPOOL-REGISTERS+ ...) ; (DEFUN WHIRLPOOLREGS-DIGEST ...) ; (DEFCONSTANT +WHIRLPOOL-ROUNDS+ ...) ; (DECLAIM (TYPE # ...)) ; (DEFCONST +RC+ ...) ; (DECLAIM (TYPE # ...)) ; (DEFCONST +C-EVEN+ ...) #<THREAD "interpreter" {78D08435}>: Debugger invoked on condition of type PRINT-NOT-READABLE #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}> cannot be printed readably. Restarts: 0: TRY-RECOMPILING Try recompiling whirlpool 1: RETRY Retry compiling #<IRONCLAD-SYSTEM::IRONCLAD-SOURCE-FILE "ironclad" "src" "digests" "whirlpool">. 2: ACCEPT Continue, treating compiling #<IRONCLAD-SYSTEM::IRONCLAD-SOURCE-FILE "ironclad" "src" "digests" "whirlpool"> as having been successful. 3: TOP-LEVEL Return to top level.
[1] CRYPTO(9): :bt 20
0: (SYSTEM:BACKTRACE) 1: (INVOKE-DEBUGGER #<PRINT-NOT-READABLE {6EA518B6}>) 2: org.armedbear.lisp.Lisp.error(Lisp.java:373) 3: org.armedbear.lisp.SimpleArray_UnsignedByte32.writeToString(SimpleArray_UnsignedByte32.java:287) 4: org.armedbear.lisp.Primitives$pf__stream_output_object.execute(Primitives.java:887) 5: (SYSTEM:%STREAM-OUTPUT-OBJECT #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}> #<FILE-STREAM {18F98D7A}>) 6: (SYSTEM::DUMP-OBJECT #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}> #<FILE-STREAM {18F98D7A}>) 7: (SYSTEM::DUMP-CONS (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>) #<FILE-STREAM {18F98D7A}>) 8: (SYSTEM::DUMP-OBJECT (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>) #<FILE-STREAM {18F98D7A}>) 9: (SYSTEM::DUMP-CONS (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}>) 10: (SYSTEM::DUMP-OBJECT (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}>) 11: (SYSTEM:DUMP-FORM (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}>) 12: (SYSTEM::OUTPUT-FORM (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>))) 13: (SYSTEM::PROCESS-DEFCONSTANT (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>))) 14: (SYSTEM::PROCESS-TOPLEVEL-FORM (DEFCONSTANT IRONCLAD::+C-EVEN+ (IF (BOUNDP 'IRONCLAD::+C-EVEN+) (SYMBOL-VALUE 'IRONCLAD::+C-EVEN+) #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>)) #<FILE-STREAM {18F98D7A}> NIL) 15: (SYSTEM::PROCESS-TOPLEVEL-FORM (IRONCLAD::DEFCONST IRONCLAD::+C-EVEN+ #<(ARRAY (UNSIGNED-BYTE 32) (8 256)) {5E3D9EDF}>) #<FILE-STREAM {18F98D7A}> NIL) 16: (#<FUNCTION {1F97D330}>) 17: (JRUN-EXCEPTION-PROTECTED #<FUNCTION {1F97D330}>) 18: (JVM::%WITH-COMPILATION-UNIT #<FUNCTION {28AA0484}>) 19: (COMPILE-FILE #P"/Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/whirlpool.lisp" :OUTPUT-FILE #P"/Users/binghe/.cache/common-lisp/abcl-0.26.0-dev-svn-13379-fasl37-macosx-java/Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/ASDF-TMP-whirlpool.abcl" :OUTPUT-FILE #P"/Users/binghe/.cache/common-lisp/abcl-0.26.0-dev-svn-13379-fasl37-macosx-java/Users/binghe/quicklisp/dists/quicklisp/software/ironclad_0.28/src/digests/whirlpool.abcl")
armedbear-devel mailing list armedbear-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel
armedbear-devel@common-lisp.net