[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