Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
curry
curry-tools
Commits
1169979f
Commit
1169979f
authored
Jan 03, 2019
by
Michael Hanus
Browse files
Tools updated
parent
5a5d0e87
Changes
24
Expand all
Hide whitespace changes
Inline
Side-by-side
.gitignore
View file @
1169979f
...
...
@@ -10,6 +10,7 @@ optimize/.cpm/packages/cass-2.0.0
optimize/.cpm/packages/cass-analysis-2.0.0
optimize/.cpm/packages/csv-1.0.0
optimize/.cpm/packages/currypath-0.0.1
optimize/.cpm/packages/finite-map-0.0.1
optimize/.cpm/packages/flatcurry-2.0.0
optimize/.cpm/packages/frontend-exec-0.0.1
optimize/.cpm/packages/propertyfile-0.0.1
...
...
cpm/vendor/abstract-curry/test/Nat.curry
0 → 100644
View file @
1169979f
------------------------------------------------------------------------------
--- Library defining natural numbers in Peano representation and
--- some operations on this representation.
---
--- @author Michael Hanus
--- @version May 2017
--- @category general
------------------------------------------------------------------------------
module Nat
( Nat(..), fromNat, toNat, add, sub, mul, leq
) where
--- Natural numbers defined in Peano representation.
data Nat = Z | S Nat
deriving (Eq,Show)
--- Transforms a natural number into a standard integer.
fromNat :: Nat -> Int
fromNat Z = 0
fromNat (S n) = 1 + fromNat n
--- Transforms a standard integer into a natural number.
toNat :: Int -> Nat
toNat n | n == 0 = Z
| n > 0 = S (toNat (n-1))
--- Addition on natural numbers.
add :: Nat -> Nat -> Nat
add Z n = n
add (S m) n = S(add m n)
--- Subtraction defined by reversing addition.
sub :: Nat -> Nat -> Nat
sub x y | add y z == x = z where z free
--- Multiplication on natural numbers.
mul :: Nat -> Nat -> Nat
mul Z _ = Z
mul (S m) n = add n (mul m n)
-- less-or-equal predicated on natural numbers:
leq :: Nat -> Nat -> Bool
leq Z _ = True
leq (S _) Z = False
leq (S x) (S y) = leq x y
cpm/vendor/abstract-curry/test/TestAbstractCurry.curry
View file @
1169979f
...
...
@@ -32,8 +32,10 @@ readAndTestEqualFcy mod = do
renameFile modbak modcurry
let abstractequal = prog1 == prog2
unless abstractequal $ do
putStrLn $ "Original AbstractCurry program: " ++ show prog1
putStrLn $ "Pretty printed AbstractCurry program: " ++ show prog2
putStrLn $ unlines
[ "Differences in programs occurred:"
, "Original AbstractCurry program:", show prog1
, "Pretty printed AbstractCurry program:", show prog2 ]
return abstractequal
-- Strictly read a AbstractCurry program in order to avoid race conditions
...
...
@@ -47,4 +49,4 @@ testAbstractCurryPretty_rev =
(readAndTestEqualFcy "Rev") `returns` True
testAbstractCurryPretty_TestAbstractCurry =
(readAndTestEqualFcy "
TestAbstractCurry
") `returns` True
(readAndTestEqualFcy "
Nat
") `returns` True
cpm/vendor/cass-analysis/package.json
View file @
1169979f
...
...
@@ -9,6 +9,7 @@
"dependencies"
:
{
"base"
:
">= 1.0.0, < 2.0.0"
,
"currypath"
:
">= 0.0.1"
,
"finite-map"
:
">= 0.0.1"
,
"flatcurry"
:
">= 2.0.0"
,
"scc"
:
">= 0.0.1"
},
...
...
cpm/vendor/cass-analysis/src/Analysis/ProgInfo.curry
View file @
1169979f
...
...
@@ -2,7 +2,7 @@
--- This module defines a datatype to represent the analysis information.
---
--- @author Heiko Hoffmann, Michael Hanus
--- @version January 201
5
--- @version January 201
9
-----------------------------------------------------------------------
module Analysis.ProgInfo
...
...
@@ -14,8 +14,9 @@ module Analysis.ProgInfo
) where
import Directory (removeFile)
import FiniteMap
import FilePath ((<.>))
import Data.FiniteMap
import FlatCurry.Types
import XML
...
...
cpm/vendor/cass/package.json
View file @
1169979f
...
...
@@ -10,6 +10,7 @@
"base"
:
">= 1.0.0, < 2.0.0"
,
"cass-analysis"
:
">= 2.0.0"
,
"currypath"
:
">= 0.0.1"
,
"finite-map"
:
">= 0.0.1"
,
"flatcurry"
:
">= 2.0.0"
,
"propertyfile"
:
">= 0.0.1"
,
"redblacktree"
:
">= 0.0.1"
,
...
...
cpm/vendor/cass/src/CASS/WorkerFunctions.curry
View file @
1169979f
...
...
@@ -3,12 +3,11 @@
--- In particular, it contains some simple fixpoint computations.
---
--- @author Heiko Hoffmann, Michael Hanus
--- @version
December
201
8
--- @version
January
201
9
--------------------------------------------------------------------------
module CASS.WorkerFunctions where
import FiniteMap
import IOExts
import List ( partition )
import Maybe ( fromJust )
...
...
@@ -21,6 +20,7 @@ import Analysis.Types ( Analysis(..), isSimpleAnalysis, isCombinedAnalysis
import Analysis.ProgInfo ( ProgInfo, combineProgInfo, emptyProgInfo
, publicProgInfo, lookupProgInfo, lists2ProgInfo
, equalProgInfo, publicListFromProgInfo, showProgInfo )
import Data.FiniteMap
import FlatCurry.Types
import FlatCurry.Files
import FlatCurry.Goodies
...
...
cpm/vendor/finite-map/LICENSE
0 → 100644
View file @
1169979f
Copyright (c) 2019, Michael Hanus
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the names of the copyright holders nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cpm/vendor/finite-map/README.md
0 → 100644
View file @
1169979f
finite-map
==========
This package contains the library
`Data.Map`
implementing
finite maps, i.e., efficient purely functional data structures
to store a mapping from keys to values.
For compatibility reason, it also contains an old but deprecated
library
`Data.FiniteMap`
.
cpm/vendor/finite-map/package.json
0 → 100644
View file @
1169979f
{
"name"
:
"finite-map"
,
"version"
:
"0.0.1"
,
"author"
:
"Michael Hanus <mh@informatik.uni-kiel.de>"
,
"synopsis"
:
"Library implementing finite maps (efficient mappings from keys to values)"
,
"category"
:
[
"Data"
],
"license"
:
"BSD-3-Clause"
,
"licenseFile"
:
"LICENSE"
,
"dependencies"
:
{
"base"
:
">= 1.0.0, < 2.0.0"
,
"random"
:
">= 0.0.1"
},
"compilerCompatibility"
:
{
"pakcs"
:
">= 2.0.0"
,
"kics2"
:
">= 2.0.0"
},
"exportedModules"
:
[
"Data.Map"
,
"Data.FiniteMap"
],
"testsuite"
:
[
{
"src-dir"
:
"src"
,
"modules"
:
[
"Data.Map"
,
"Data.FiniteMap"
]
},
{
"src-dir"
:
"test"
,
"modules"
:
[
"TestFiniteMap"
]
}
],
"source"
:
{
"git"
:
"https://git.ps.informatik.uni-kiel.de/curry-packages/finite-map.git"
,
"tag"
:
"$version"
}
}
cpm/vendor/finite-map/src/Data/FiniteMap.curry
0 → 100644
View file @
1169979f
This diff is collapsed.
Click to expand it.
cpm/vendor/finite-map/src/Data/Map.curry
0 → 100644
View file @
1169979f
This diff is collapsed.
Click to expand it.
cpm/vendor/finite-map/test/TestFiniteMap.curry
0 → 100644
View file @
1169979f
import List
import Sort
import Maybe
import System.Random
import Test.Prop
import Data.FiniteMap
fm f = f . (listToFM (<)) . map (\x ->(x,x))
fms f = map fst . fmToList . fm f
fms' f = map snd . fmToList . fm f
so f = spnub . mergeSortBy (<) . f
testAddToFM = eq (fms (\x-> addToFM x 73 73)) (so (73:))
testDelFromFM = test
(\nums -> fms (flip delListFromFM (take 500 nums)) nums == so (drop 500) nums)
testPlusFM =
test (\nums -> let l=length nums
(xs,ys) = splitAt (div l 2) nums
in (map fst $ fmToList $ plusFM (fm id xs) (fm id ys)) == so id nums)
testMinusFM =
test (\nums -> let l = length nums
(xs,ys) = splitAt (div l 2) nums
in (map fst $ fmToList $ minusFM (fm id nums) (fm id ys)) == so id xs)
testIntersectFM = test
(\nums -> let l=length nums
(_,ys) = splitAt (div l 2) nums
in (map fst $ fmToList $ intersectFM (fm id nums) (fm id ys)) == so id ys)
testFoldFM = eq (fm (foldFM (\x _ z->x+z) 0)) (foldl (+) 0)
testMapFM = eq (fms' (mapFM (\_ z->z+1))) (so (map (+1)))
testFilterFM = eq (fms (filterFM (\x _->x>0))) (so (filter (>0)))
testSizeFM = eq (fm sizeFM) length
testEqFM = test
(\nums -> let l=length nums
(xs,ys) = splitAt (div l 2) nums
in eqFM (fm id nums) (fm id (ys++xs)))
testElemFM_LookupFM = eq (fm (\x-> elemFM 73 (addToFM x 73 73))) (const True)
testKeysFM_eltsFM = test
(\nums -> let finm=fm id nums in unzip (fmToList finm)==(keysFM finm, eltsFM finm))
testFmSortBy = eq (fmSortBy (<)) (so id)
testMinFM_MaxFM = eq (fm (\finm -> (fst $ fromJust $ minFM finm,
fst $ fromJust $ maxFM finm)))
((\l->(head l,last l)) .so id)
testUpdFM = eq (fm (\x-> lookupFM (updFM (addToFM x 73 73) 73 (+7)) 73)) (const $ Just 80)
spnub [] = []
spnub [x] = [x]
spnub (x:y:xs) = if x==y then spnub (y:xs) else x:spnub (y:xs)
------------------------------------------------------------------------------
-- Random test:
--- Tests a given predicate on a list of distinct random numbers.
--- In case of a failure, the list of random numbers is returned
--- in order to see the test cases in the CurryTest tool.
test :: ([Int] -> Bool) -> PropIO
test f =
(rndList lenRnds >>= \xs -> return (if f xs then Nothing else Just xs))
`returns` Nothing
--- Tests whether two operations return equal results
--- on a list of distinct random numbers.
--- In case of a failure, the list of random numbers is returned
--- in order to see the test cases in the CurryTest tool.
eq :: Eq a => ([Int] -> a) -> ([Int] -> a) -> PropIO
eq f g = test (\x -> (f x)==(g x))
--- generate a list of at most n random numbers (without duplicated elements)
rndList :: Int -> IO [Int]
rndList n = getRandomSeed >>= return . nub . take n . (flip nextIntRange 100000)
--- maximal length of test lists
lenRnds :: Int
lenRnds = 1000
------------------------------------------------------------------------------
download_tools.sh
View file @
1169979f
...
...
@@ -61,6 +61,9 @@ cd .cpm/packages
PKGV
=
`
ls
-d
currypath-
*
`
mv
$PKGV
currypath
ln
-s
currypath
$PKGV
PKGV
=
`
ls
-d
finite-map-
*
`
mv
$PKGV
finite-map
ln
-s
finite-map
$PKGV
PKGV
=
`
ls
-d
propertyfile-
*
`
mv
$PKGV
propertyfile
ln
-s
propertyfile
$PKGV
...
...
optimize/.cpm/packages/cass-analysis/package.json
View file @
1169979f
...
...
@@ -9,6 +9,7 @@
"dependencies"
:
{
"base"
:
">= 1.0.0, < 2.0.0"
,
"currypath"
:
">= 0.0.1"
,
"finite-map"
:
">= 0.0.1"
,
"flatcurry"
:
">= 2.0.0"
,
"scc"
:
">= 0.0.1"
},
...
...
optimize/.cpm/packages/cass-analysis/src/Analysis/ProgInfo.curry
View file @
1169979f
...
...
@@ -2,7 +2,7 @@
--- This module defines a datatype to represent the analysis information.
---
--- @author Heiko Hoffmann, Michael Hanus
--- @version January 201
5
--- @version January 201
9
-----------------------------------------------------------------------
module Analysis.ProgInfo
...
...
@@ -14,8 +14,9 @@ module Analysis.ProgInfo
) where
import Directory (removeFile)
import FiniteMap
import FilePath ((<.>))
import Data.FiniteMap
import FlatCurry.Types
import XML
...
...
optimize/.cpm/packages/cass/package.json
View file @
1169979f
...
...
@@ -10,6 +10,7 @@
"base"
:
">= 1.0.0, < 2.0.0"
,
"cass-analysis"
:
">= 2.0.0"
,
"currypath"
:
">= 0.0.1"
,
"finite-map"
:
">= 0.0.1"
,
"flatcurry"
:
">= 2.0.0"
,
"propertyfile"
:
">= 0.0.1"
,
"redblacktree"
:
">= 0.0.1"
,
...
...
optimize/.cpm/packages/cass/src/CASS/WorkerFunctions.curry
View file @
1169979f
...
...
@@ -3,12 +3,11 @@
--- In particular, it contains some simple fixpoint computations.
---
--- @author Heiko Hoffmann, Michael Hanus
--- @version
December
201
8
--- @version
January
201
9
--------------------------------------------------------------------------
module CASS.WorkerFunctions where
import FiniteMap
import IOExts
import List ( partition )
import Maybe ( fromJust )
...
...
@@ -21,6 +20,7 @@ import Analysis.Types ( Analysis(..), isSimpleAnalysis, isCombinedAnalysis
import Analysis.ProgInfo ( ProgInfo, combineProgInfo, emptyProgInfo
, publicProgInfo, lookupProgInfo, lists2ProgInfo
, equalProgInfo, publicListFromProgInfo, showProgInfo )
import Data.FiniteMap
import FlatCurry.Types
import FlatCurry.Files
import FlatCurry.Goodies
...
...
optimize/.cpm/packages/finite-map/LICENSE
0 → 100644
View file @
1169979f
Copyright (c) 2019, Michael Hanus
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the names of the copyright holders nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
optimize/.cpm/packages/finite-map/README.md
0 → 100644
View file @
1169979f
finite-map
==========
This package contains the library
`Data.Map`
implementing
finite maps, i.e., efficient purely functional data structures
to store a mapping from keys to values.
For compatibility reason, it also contains an old but deprecated
library
`Data.FiniteMap`
.
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment