Skip to content

Commit

Permalink
Merge branch 'hotfix/2.2.4' into releases
Browse files Browse the repository at this point in the history
  • Loading branch information
Adam C. Foltzer committed Jun 1, 2015
2 parents b35dbbd + ebaa986 commit 44e1b1e
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 10 deletions.
4 changes: 2 additions & 2 deletions cryptol.cabal
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Name: cryptol
Version: 2.2.3
Version: 2.2.4
Synopsis: Cryptol: The Language of Cryptography
Description: Cryptol is a domain-specific language for specifying cryptographic algorithms. A Cryptol implementation of an algorithm resembles its mathematical specification more closely than an implementation in a general purpose language. For more, see <http://www.cryptol.net/>.
License: BSD3
Expand All @@ -23,7 +23,7 @@ source-repository head
source-repository this
type: git
location: https://github.com/GaloisInc/cryptol.git
tag: v2.2.3
tag: v2.2.4

flag static
default: False
Expand Down
20 changes: 12 additions & 8 deletions src/Cryptol/Symbolic/Prims.hs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
{-# LANGUAGE FlexibleContexts #-}
module Cryptol.Symbolic.Prims where

import Data.Bits
import Data.Bits ()
import Data.List (genericDrop, genericReplicate, genericSplitAt, genericTake, sortBy, transpose)
import Data.Ord (comparing)

Expand Down Expand Up @@ -107,8 +107,8 @@ evalECon econ =
shl i =
case numTValue m of
Inf -> dropV i xs
Nat j | i >= j -> replicateV j (zeroV a)
| otherwise -> catV (dropV i xs) (replicateV i (zeroV a))
Nat j | i >= j -> replicateV j a (zeroV a)
| otherwise -> catV (dropV i xs) (replicateV i a (zeroV a))

ECShiftR -> -- {m,n,a} (fin n) => [m] a -> [n] -> [m] a
tlam $ \m ->
Expand All @@ -123,9 +123,9 @@ evalECon econ =
shr :: Integer -> Value
shr i =
case numTValue m of
Inf -> catV (replicateV i (zeroV a)) xs
Nat j | i >= j -> replicateV j (zeroV a)
| otherwise -> catV (replicateV i (zeroV a)) (takeV (j - i) xs)
Inf -> catV (replicateV i a (zeroV a)) xs
Nat j | i >= j -> replicateV j a (zeroV a)
| otherwise -> catV (replicateV i a (zeroV a)) (takeV (j - i) xs)

ECRotL -> -- {m,n,a} (fin m, fin n) => [m] a -> [n] -> [m] a
tlam $ \m ->
Expand Down Expand Up @@ -299,8 +299,12 @@ selectV f v = sel 0 bits
where m1 = sel (offset + 2 ^ length bs) bs
m2 = sel offset bs

replicateV :: Integer -> Value -> Value
replicateV n x = VSeq False (genericReplicate n x)
replicateV :: Integer -- ^ number of elements
-> TValue -- ^ type of element
-> Value -- ^ element
-> Value
replicateV n (toTypeVal -> TVBit) x = VSeq True (genericReplicate n x)
replicateV n _ x = VSeq False (genericReplicate n x)

nth :: a -> [a] -> Int -> a
nth def [] _ = def
Expand Down

0 comments on commit 44e1b1e

Please sign in to comment.