[armedbear-devel] IRONCLAD cannot be compiled on ABCL now
Chun Tian (binghe)
binghe.lisp at gmail.com
Fri Jul 8 02:52:18 UTC 2011
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 at 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 at common-lisp.net
>> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel
>>
More information about the armedbear-devel
mailing list