packages feed

cpsa 3.6.8 → 3.6.9

raw patch · 4 files changed

+32/−5 lines, 4 files

Files

ChangeLog view
@@ -1,3 +1,13 @@+2022-01-04  John D. Ramsdell  <ramsdell@mitre.org>++	* cpsa.cabal (Version): Tagged as 3.6.9++2021-12-08  John D. Ramsdell  <ramsdell@mitre.org>++	* src/CPSA/Lib/Strand.hs (origUgenDiffStrand): Expunge skeletons+	that have a value that is both uniq orig and uniq gen, and start+	on different strands.+ 2021-11-12  John D. Ramsdell  <ramsdell@mitre.org>  	* cpsa.cabal (Version): Tagged as 3.6.8
NEWS view
@@ -1,5 +1,10 @@ CPSA NEWS +  January 2022:++* Release 3.6.9 expunges skeletons that have a value that is both uniq+  orig and uniq gen, and start on different strands.+   November 2021:  * Release 3.6.8 adds a stronger method for solving Diffie-Hellman@@ -163,4 +168,3 @@ * New, improved documentation.  Included with the release is the CPSA   manual which thoroughly documents the new and existing features of   the tool and is also a good starting place for new users.-
cpsa.cabal view
@@ -1,5 +1,5 @@ Name:                   cpsa-Version:                3.6.8+Version:                3.6.9 Maintainer:             mliskov@mitre.org Cabal-Version:          >= 1.10 License:                BSD3
src/CPSA/Lib/Strand.hs view
@@ -2400,11 +2400,24 @@                               ((c,d) /= (a,b)) && ((c,d) /= (b,a))) rest)))  -- Determine if a given PRS has a multiple origination of a--- non-numeric fresh value.-hasMultipleOrig :: PRS t p g s e c -> Bool+-- non-numeric fresh value.  Also when a value is both uniq+-- orig and uniq gen, check to see if they start on different strands.+hasMultipleOrig :: Algebra t p g s e c => PRS t p g s e c -> Bool hasMultipleOrig prs =   any (\(_, l) -> length l > 1) (korig (skel prs)) ||-  any (\(_, l) -> length l > 1) (kugen (skel prs))+  any (\(_, l) -> length l > 1) (kugen (skel prs)) ||+  origUgenDiffStrand (korig (skel prs)) (kugen (skel prs))++-- When a value is both uniq orig and uniq gen, check to see if they+-- start on different strands.+origUgenDiffStrand :: Algebra t p g s e c => [(t, [Node])] ->+                      [(t, [Node])] -> Bool+origUgenDiffStrand _ [] = False+origUgenDiffStrand orig ((t, ns) : ugen) =+  case lookup t orig of+    Nothing -> origUgenDiffStrand orig ugen+    Just ns' -> any f ns || origUgenDiffStrand orig ugen+      where f (s, _) = any (\(s', _) -> s /= s') ns'  checkOrigs :: Algebra t p g s e c => Gist t g ->               Gist t g -> (g, e) -> [Sid] -> Bool