From: Fred G. <fr...@st...> - 2010-01-02 22:57:37
|
Hi all, I have run into a dead end trying to get Ironclad, and specifically sha256.lisp compiled. If anyone has run into this or has any ideas, I would truly appreciate it. Here is the code in question: (defconst +sha256-round-constants+ #32@(#x428A2F98 #x71374491 #xB5C0FBCF #xE9B5DBA5 #x3956C25B #x59F111F1 #x923F82A4 #xAB1C5ED5 #xD807AA98 #x12835B01 #x243185BE #x550C7DC3 #x72BE5D74 #x80DEB1FE #x9BDC06A7 #xC19BF174 #xE49B69C1 #xEFBE4786 #x0FC19DC6 #x240CA1CC #x2DE92C6F #x4A7484AA #x5CB0A9DC #x76F988DA #x983E5152 #xA831C66D #xB00327C8 #xBF597FC7 #xC6E00BF3 #xD5A79147 #x06CA6351 #x14292967 #x27B70A85 #x2E1B2138 #x4D2C6DFC #x53380D13 #x650A7354 #x766A0ABB #x81C2C92E #x92722C85 #xA2BFE8A1 #xA81A664B #xC24B8B70 #xC76C51A3 #xD192E819 #xD6990624 #xF40E3585 #x106AA070 #x19A4C116 #x1E376C08 #x2748774C #x34B0BCB5 #x391C0CB3 #x4ED8AA4A #x5B9CCA4F #x682E6FF3 #x748F82EE #x78A5636F #x84C87814 #x8CC70208 #x90BEFFFA #xA4506CEB #xBEF9A3F7 #xC67178F2)) The defconst macro is defined as: (defmacro defconst (name value) `(defconstant ,name (if (boundp ',name) (symbol-value ',name) ,value))) With both Lispworks (windows) and SBCL linux, the compiler gives an error because of the #/@ after #32. This function compiles fine with #64( , but then other parts of the file fail. Any ideas? My best, Fred Gibson Founder / Software Developer http://www.streamfocus.com (c)2010 Organon Technologies LLC |
From: Zach B. <xa...@xa...> - 2010-01-03 01:11:54
|
On Sat, Jan 02, 2010 at 02:00:11PM -0800, Fred Gibson wrote: > Hi all, > > I have run into a dead end trying to get Ironclad, and specifically > sha256.lisp compiled. If anyone has run into this or has any ideas, I would > truly appreciate it. > > Here is the code in question: > (defconst +sha256-round-constants+ > #32@(#x428A2F98 #x71374491 #xB5C0FBCF #xE9B5DBA5 #x3956C25B #x59F111F1 > #x923F82A4 #xAB1C5ED5 #xD807AA98 #x12835B01 #x243185BE #x550C7DC3 > #x72BE5D74 #x80DEB1FE #x9BDC06A7 #xC19BF174 #xE49B69C1 #xEFBE4786 > #x0FC19DC6 #x240CA1CC #x2DE92C6F #x4A7484AA #x5CB0A9DC #x76F988DA > #x983E5152 #xA831C66D #xB00327C8 #xBF597FC7 #xC6E00BF3 #xD5A79147 > #x06CA6351 #x14292967 #x27B70A85 #x2E1B2138 #x4D2C6DFC #x53380D13 > #x650A7354 #x766A0ABB #x81C2C92E #x92722C85 #xA2BFE8A1 #xA81A664B > #xC24B8B70 #xC76C51A3 #xD192E819 #xD6990624 #xF40E3585 #x106AA070 > #x19A4C116 #x1E376C08 #x2748774C #x34B0BCB5 #x391C0CB3 #x4ED8AA4A > #x5B9CCA4F #x682E6FF3 #x748F82EE #x78A5636F #x84C87814 #x8CC70208 > #x90BEFFFA #xA4506CEB #xBEF9A3F7 #xC67178F2)) > > The defconst macro is defined as: > > (defmacro defconst (name value) > `(defconstant ,name > (if (boundp ',name) > (symbol-value ',name) > ,value))) > > With both Lispworks (windows) and SBCL linux, the compiler gives an error > because of the #/@ after #32. This function compiles fine with #64( , but > then other parts of the file fail. > > Any ideas? Use ASDF to compile and load ironclad. The .asd file enables a special readmacro for the #@ syntax. Zach |
From: Sidney M. <si...@si...> - 2010-01-03 01:22:54
|
Fred Gibson wrote, On 3/1/10 11:00 AM: > Here is the code in question: > (defconst +sha256-round-constants+ > #32@(#x428A2F98 #x71374491 #xB5C0FBCF #xE9B5DBA5 #x3956C25B #x59F111F1 The #32@ syntax is using the #@ reader macro with the number 32 as a parameter. #@ is not defined in standard Common Lisp. It is defined in the ironclad.asd file See http://common-lisp.net/project/clbuild/mirror/ironclad/ironclad.asd which has (defparameter *ironclad-readtable* (let ((readtable (copy-readtable nil))) (set-dispatch-macro-character #\# #\@ #'array-reader readtable) readtable)) Make sure that you are compiling ironclad as intended so *iron-readtable* is being used. I haven't tried it, just looked at that code, but that should point you in the right direction. -- Sidney Markowitz http://sidney.com |