wisp
 
(Arne Babenhauserheide)
2013-12-26: still wrong, but the code looks better

still wrong, but the code looks better

diff --git a/examples/tinyenc.w b/examples/tinyenc.w
--- a/examples/tinyenc.w
+++ b/examples/tinyenc.w
@@ -10,38 +10,38 @@ logxor 1 3
 
 define delta #x9e3779b9
 
-define : uint32! number
+define : uint32 number
   . "ensure that the number fits a uint32"
   modulo number : integer-expt 2 32
 
 define : encrypt v k
   . "Encrypt the 64bit (8 byte, big endian) value V with the 128bit key K (16 byte)."
-  let
+  let*
     : k0 : ash k -96
-      k1 : modulo (ash k -64) : integer-expt 2 32
-      k2 : modulo (ash k -32) : integer-expt 2 64
-      k3 : modulo k : integer-expt 2 96
+      k1 : uint32 : ash k -64
+      k2 : uint32 : ash k -32
+      k3 : uint32 k
     let loop 
       : sum delta
         cycle 0
         v0 : ash v -32
-        v1 : modulo v : integer-expt 2 32
+        v1 : uint32 v
       if : = cycle 32
          + v1 : * v0 : integer-expt 2 32
          let 
            :
              v0tmp 
-              uint32!
+              uint32
                + v0
                  logxor
                    + k0 : ash v1 -4
                    + v1 sum
                    + k1 : ash v1 5
            loop
-             modulo (+ sum delta) : integer-expt 2 32
+             uint32 : + sum delta
              + cycle 1
              . v0tmp
-             uint32!
+             uint32
               + v1
                logxor
                  + k2 : ash v0tmp -4
@@ -50,31 +50,31 @@ define : encrypt v k
 
 define : decrypt v k
   . "Decrypt the 64bit (8 byte, big endian) value V with the 128bit key K (16 byte)."
-  let
+  let*
     : k0 : ash k -96
-      k1 : modulo (ash k -64) : integer-expt 2 32
-      k2 : modulo (ash k -32) : integer-expt 2 64
-      k3 : modulo k : integer-expt 2 96
+      k1 : uint32 : ash k -64
+      k2 : uint32 : ash k -32
+      k3 : uint32 k
     let loop
       : sum #xc6ef3720
         cycle 0
         v0 : ash v -32
-        v1 : modulo v : integer-expt 2 32
+        v1 : uint32 v
       if : = cycle 32
          + v1 : * v0 : integer-expt 2 32
          let 
            :
              v1tmp 
-              uint32!
+              uint32
                - v1 
                  logxor
                    + k2 : ash v0 -4
                    + v0 sum
                    + k3 : ash v0 5
            loop
-             modulo (+ sum delta) : integer-expt 2 32
+             uint32 : + sum delta
              + cycle 1
-             uint32!
+             uint32
               - v0
                logxor
                  + k0 : ash v1tmp -4