diff options
Diffstat (limited to 'dev-haskell/chasingbottoms')
-rw-r--r-- | dev-haskell/chasingbottoms/Manifest | 3 | ||||
-rw-r--r-- | dev-haskell/chasingbottoms/chasingbottoms-1.3.1.9.ebuild | 39 | ||||
-rw-r--r-- | dev-haskell/chasingbottoms/metadata.xml | 102 |
3 files changed, 0 insertions, 144 deletions
diff --git a/dev-haskell/chasingbottoms/Manifest b/dev-haskell/chasingbottoms/Manifest deleted file mode 100644 index 193a6f82ea74..000000000000 --- a/dev-haskell/chasingbottoms/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST ChasingBottoms-1.3.1.9.tar.gz 31942 BLAKE2B b94cb27358a1af57e2617ac5b967826d1f20709817622e9c8619fdc8270eb0fc12ea8630f06f012d657f03bded69231ba86039bb07d2ffd4ed3b52ae95c0bc28 SHA512 15b05c3080e7e5960d9f84d4c3a3941a08a8f15a4c8241f7fee11f24054e09092925093f88bdd7ac38eedc57a02fa76c468e61c5ad08cb0c599a2a01bbe6b88b -EBUILD chasingbottoms-1.3.1.9.ebuild 1046 BLAKE2B 606b35d8ecc0a044e78f1716374f5adb81a0dda190003d0302780010cf47773e48de6a1dd878280aeff642da2145db49e0bef8ffcde2a634e1c3aefc4dc1bc6f SHA512 df11612050d4a0d2d5449c5d3dc71dd06f18a409f65e7d590c65ab86f9bcb54dc5315da605887ac4476deffe73b8aed4f0a820361f1ce399f7687fbdd8c97ef6 -MISC metadata.xml 4090 BLAKE2B 170fc526a6c72ac8dbde5de907a6005b60b5d5d976875692966d611358260c3b796ed2990faf46790b32a0cae96f4e0ff241d8ef0020eb7c65eb99e50f1cfc1d SHA512 dc3f6a7ca2d636d7a7c783253716873ea8384bf3af7f3e1dbec563993ad2de56265f7b60518c34f551965af357d41a6b1a5edfd382abc5faa5a4ff8f43f9d947 diff --git a/dev-haskell/chasingbottoms/chasingbottoms-1.3.1.9.ebuild b/dev-haskell/chasingbottoms/chasingbottoms-1.3.1.9.ebuild deleted file mode 100644 index 6b7d544696f8..000000000000 --- a/dev-haskell/chasingbottoms/chasingbottoms-1.3.1.9.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -# ebuild generated by hackport 0.6.4.9999 -#hackport: flags: -build-tests - -CABAL_FEATURES="lib profile haddock hoogle hscolour test-suite" -inherit haskell-cabal - -MY_PN="ChasingBottoms" -MY_P="${MY_PN}-${PV}" - -DESCRIPTION="For testing partial and infinite values" -HOMEPAGE="https://hackage.haskell.org/package/ChasingBottoms" -SRC_URI="https://hackage.haskell.org/package/${MY_P}/${MY_P}.tar.gz" - -LICENSE="MIT" -SLOT="0/${PV}" -KEYWORDS="~amd64 ~x86" -IUSE="" - -RDEPEND=">=dev-haskell/mtl-2:=[profile?] <dev-haskell/mtl-2.3:=[profile?] - >=dev-haskell/quickcheck-2.10:2=[profile?] <dev-haskell/quickcheck-2.15:2=[profile?] - >=dev-haskell/random-1.0:=[profile?] <dev-haskell/random-1.3:=[profile?] - >=dev-haskell/syb-0.1.0.2:=[profile?] <dev-haskell/syb-0.8:=[profile?] - >=dev-lang/ghc-7.6.2:= -" -DEPEND="${RDEPEND} - >=dev-haskell/cabal-1.16.0 -" - -S="${WORKDIR}/${MY_P}" - -src_configure() { - haskell-cabal_src_configure \ - --flag=-build-tests -} diff --git a/dev-haskell/chasingbottoms/metadata.xml b/dev-haskell/chasingbottoms/metadata.xml deleted file mode 100644 index 697509ead8f5..000000000000 --- a/dev-haskell/chasingbottoms/metadata.xml +++ /dev/null @@ -1,102 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="project"> - <email>haskell@gentoo.org</email> - <name>Gentoo Haskell</name> - </maintainer> - <longdescription> - Do you ever feel the need to test code involving bottoms (e.g. calls to - the @error@ function), or code involving infinite values? Then this - library could be useful for you. - - It is usually easy to get a grip on bottoms by showing a value and - waiting to see how much gets printed before the first exception is - encountered. However, that quickly gets tiresome and is hard to automate - using e.g. QuickCheck - (<http://www.cse.chalmers.se/~rjmh/QuickCheck/>). With this library you - can do the tests as simply as the following examples show. - - Testing explicitly for bottoms: - - [@> isBottom (head [\])@] @True@ - - [@> isBottom bottom@] @True@ - - [@> isBottom (\\_ -> bottom)@] @False@ - - [@> isBottom (bottom, bottom)@] @False@ - - Comparing finite, partial values: - - [@> ((bottom, 3) :: (Bool, Int)) ==! (bottom, 2+5-4)@] @True@ - - [@> ((bottom, bottom) :: (Bool, Int)) <! (bottom, 8)@] @True@ - - Showing partial and infinite values (@\\\/!@ is join and @\/\\!@ is meet): - - [@> approxShow 4 $ (True, bottom) \\\/! (bottom, \'b\')@] @\"Just (True, \'b\')\"@ - - [@> approxShow 4 $ (True, bottom) \/\\! (bottom, \'b\')@] @\"(_|_, _|_)\"@ - - [@> approxShow 4 $ ([1..\] :: [Int\])@] @\"[1, 2, 3, _\"@ - - [@> approxShow 4 $ (cycle [bottom\] :: [Bool\])@] @\"[_|_, _|_, _|_, _\"@ - - Approximately comparing infinite, partial values: - - [@> approx 100 [2,4..\] ==! approx 100 (filter even [1..\] :: [Int\])@] @True@ - - [@> approx 100 [2,4..\] \/=! approx 100 (filter even [bottom..\] :: [Int\])@] @True@ - - The code above relies on the fact that @bottom@, just as @error - \"...\"@, @undefined@ and pattern match failures, yield - exceptions. Sometimes we are dealing with properly non-terminating - computations, such as the following example, and then it can be nice to - be able to apply a time-out: - - [@> timeOut' 1 (reverse [1..5\])@] @Value [5,4,3,2,1]@ - - [@> timeOut' 1 (reverse [1..\])@] @NonTermination@ - - The time-out functionality can be used to treat \"slow\" computations as - bottoms: - - [@> let tweak = Tweak &#x7b; approxDepth = Just 5, timeOutLimit = Just 2 &#x7d;@] - - [@> semanticEq tweak (reverse [1..\], [1..\]) (bottom :: [Int\], [1..\] :: [Int\])@] @True@ - - [@> let tweak = noTweak &#x7b; timeOutLimit = Just 2 &#x7d;@] - - [@> semanticJoin tweak (reverse [1..\], True) ([\] :: [Int\], bottom)@] @Just ([],True)@ - - This can of course be dangerous: - - [@> let tweak = noTweak &#x7b; timeOutLimit = Just 0 &#x7d;@] - - [@> semanticEq tweak (reverse [1..100000000\]) (bottom :: [Integer\])@] @True@ - - Timeouts can also be applied to @IO@ computations: - - [@> let primes = unfoldr (\\(x:xs) -> Just (x, filter ((\/= 0) . (\`mod\` x)) xs)) [2..\]@] - - [@> timeOutMicro 100 (print $ filter ((== 1) . (\`mod\` 83)) primes)@] @[167,499,9NonTermination@ - - [@> timeOutMicro 100 (print $ take 6 $ filter ((== 1) . (\`mod\` 83)) primes)@] @[167,499,997,1163,1993NonTermination@ - - [@> timeOutMicro 100 (print $ take 6 $ filter ((== 1) . (\`mod\` 83)) primes)@] @[167,499,997,1163,1993,2657]@ - - [@ @] @Value ()@ - - For the underlying theory and a larger example involving use of - QuickCheck, see the article \"Chasing Bottoms, A Case Study in Program - Verification in the Presence of Partial and Infinite Values\" - (<http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html>). - - The code has been tested using GHC. Most parts can probably be - ported to other Haskell compilers, but this would require some work. - The @TimeOut@ functions require preemptive scheduling, and most of - the rest requires @Data.Generics@; @isBottom@ only requires - exceptions, though. - </longdescription> -</pkgmetadata> |