diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-haskell/chasingbottoms | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-haskell/chasingbottoms')
6 files changed, 276 insertions, 0 deletions
diff --git a/dev-haskell/chasingbottoms/Manifest b/dev-haskell/chasingbottoms/Manifest new file mode 100644 index 000000000000..e42eecf8f882 --- /dev/null +++ b/dev-haskell/chasingbottoms/Manifest @@ -0,0 +1,4 @@ +DIST ChasingBottoms-1.3.0.11.tar.gz 31437 SHA256 9cf0c58617ed0877eab06a3a71e4dbcf911d7f2bf64bfe3c9cc91e7f3181e303 SHA512 acf939e4060b08a02fd1bd15473911551e834373b8e4e50f36cd832b64ec3798e9a41d3b26fdc9e9b84648862617da8ba859ee453086240f566ce4ae8bc0301e WHIRLPOOL 52e9255acbda1826f06bdc272a6ff9414325143e792db6a66988d43ce299857ea6a086258ee683f8da1222cda2f378a81c6dcd48782a879e9cc9323b72fa68f9 +DIST ChasingBottoms-1.3.0.13.tar.gz 31474 SHA256 f40e250db12ab76c31e1ed78ce3d11a84f601ab2290fe946cfe437669a3468b9 SHA512 050d66670a77de274f16d70dfbc231ab469067ce34af962a851c7f041b7e0812bb6480e3b3166e4ceda2509454ff3d1d85fdd977f63471d6f45c1162184aeb7d WHIRLPOOL a5ad6a40e6b217227eb0c9896388f22f1d41ea03a2f5c52f7d67a602e33571b46d036ba23e2a13f8def1a30c323c1e7348ce79aebfc5aea4ef5f0ca5f3970fee +DIST ChasingBottoms-1.3.0.7.tar.gz 31043 SHA256 ea7a507c552fe028bd43c588e89f29d5a5f140f16bf74596c647c42a9ae92b3c SHA512 707e0d1fe7979b75547ec87ee105526524458e0267355c1b0e06a7a1c2af1d07b385045deceaf2b28262e4e6dc445f013d2472444198cef046f664642629c0bb WHIRLPOOL e564d73025691c13481b9dc5b9cb47111689448eb8ab0095497c520017874b2f1e145ef50a92dfbe5ad74aa604247e275454c0c3c0518d5a7095561fa90348a8 +DIST ChasingBottoms-1.3.0.8.tar.gz 31261 SHA256 bb05710630f876767d79b684fd5f3fe59ea39c63e7bef4193c7ee8132479d2b8 SHA512 216df0e1037b4d95d1bc82e808fc017424d5e9268f311026e07b1abadabdbdac01e85d9fbccf371371998cf237ac3d1846ed2dd619f719ad840d7ffb2e17c90e WHIRLPOOL fc0179f3324ae7914ae6a33cfb3110e79cdf637da47075a02fb573a59273640e95bd2ea58a43250a6ce9e7a6dbc2aa3c2700e16e55d1c3500938bbd08d6405d3 diff --git a/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.11-r1.ebuild b/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.11-r1.ebuild new file mode 100644 index 000000000000..ae996eff9902 --- /dev/null +++ b/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.11-r1.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +# ebuild generated by hackport 0.4.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="http://hackage.haskell.org/package/ChasingBottoms" +SRC_URI="mirror://hackage/packages/archive/${MY_PN}/${PV}/${MY_P}.tar.gz" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RESTRICT=test # takes a lot + +RDEPEND=">=dev-haskell/mtl-1.1:=[profile?] <dev-haskell/mtl-2.3:=[profile?] + >=dev-haskell/quickcheck-2.1:2=[profile?] + >=dev-haskell/random-1.0:=[profile?] <dev-haskell/random-1.2:=[profile?] + >=dev-haskell/syb-0.1.0.2:=[profile?] <dev-haskell/syb-0.5:=[profile?] + >=dev-lang/ghc-7.4.1:= +" +DEPEND="${RDEPEND} + >=dev-haskell/cabal-1.9.2 +" + +S="${WORKDIR}/${MY_P}" + +src_prepare() { + cabal_chdeps \ + 'QuickCheck >= 2.1 && < 2.8' 'QuickCheck >= 2.1' +} + +src_configure() { + haskell-cabal_src_configure \ + --flag=-build-tests +} diff --git a/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.13.ebuild b/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.13.ebuild new file mode 100644 index 000000000000..5a1c949bae19 --- /dev/null +++ b/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.13.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +# ebuild generated by hackport 0.4.5.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="http://hackage.haskell.org/package/ChasingBottoms" +SRC_URI="mirror://hackage/packages/archive/${MY_PN}/${PV}/${MY_P}.tar.gz" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RESTRICT=test # takes a lot + +RDEPEND=">=dev-haskell/mtl-1.1:=[profile?] <dev-haskell/mtl-2.3:=[profile?] + >=dev-haskell/quickcheck-2.1:2=[profile?] <dev-haskell/quickcheck-2.9:2=[profile?] + >=dev-haskell/random-1.0:=[profile?] <dev-haskell/random-1.2:=[profile?] + >=dev-haskell/syb-0.1.0.2:=[profile?] <dev-haskell/syb-0.6:=[profile?] + >=dev-lang/ghc-7.4.1:= +" +DEPEND="${RDEPEND} + >=dev-haskell/cabal-1.9.2 +" + +S="${WORKDIR}/${MY_P}" + +src_configure() { + haskell-cabal_src_configure \ + --flag=-build-tests +} diff --git a/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.7.ebuild b/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.7.ebuild new file mode 100644 index 000000000000..6e56d8250258 --- /dev/null +++ b/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.7.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +# ebuild generated by hackport 0.3.4.9999 + +CABAL_FEATURES="bin lib profile haddock hoogle hscolour" +inherit haskell-cabal + +MY_PN="ChasingBottoms" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="For testing partial and infinite values" +HOMEPAGE="http://hackage.haskell.org/package/ChasingBottoms" +SRC_URI="mirror://hackage/packages/archive/${MY_PN}/${PV}/${MY_P}.tar.gz" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="amd64 x86" +IUSE="test" + +RDEPEND=">=dev-haskell/mtl-1.1:=[profile?] <dev-haskell/mtl-2.2:=[profile?] + >=dev-haskell/quickcheck-2.1:=[profile?] <dev-haskell/quickcheck-2.7:=[profile?] + >=dev-haskell/random-1.0:=[profile?] <dev-haskell/random-1.1:=[profile?] + >=dev-haskell/syb-0.1.0.2:=[profile?] <dev-haskell/syb-0.5:=[profile?] + >=dev-lang/ghc-6.12.1:= +" +DEPEND="${RDEPEND} + >=dev-haskell/cabal-1.8.0.2 +" + +S="${WORKDIR}/${MY_P}" + +src_configure() { + haskell-cabal_src_configure \ + $(cabal_flag test build-tests) +} diff --git a/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.8-r1.ebuild b/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.8-r1.ebuild new file mode 100644 index 000000000000..441e70fdf8b4 --- /dev/null +++ b/dev-haskell/chasingbottoms/chasingbottoms-1.3.0.8-r1.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +# ebuild generated by hackport 0.4.2.9999 +#hackport: flags: -build-tests + +CABAL_FEATURES="bin lib profile haddock hoogle hscolour" +inherit haskell-cabal + +MY_PN="ChasingBottoms" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="For testing partial and infinite values" +HOMEPAGE="http://hackage.haskell.org/package/ChasingBottoms" +SRC_URI="mirror://hackage/packages/archive/${MY_PN}/${PV}/${MY_P}.tar.gz" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=">=dev-haskell/mtl-1.1:=[profile?] <dev-haskell/mtl-2.3:=[profile?] + >=dev-haskell/quickcheck-2.1:2=[profile?] <dev-haskell/quickcheck-2.8:2=[profile?] + >=dev-haskell/random-1.0:=[profile?] <dev-haskell/random-1.2:=[profile?] + >=dev-haskell/syb-0.1.0.2:=[profile?] <dev-haskell/syb-0.5:=[profile?] + >=dev-lang/ghc-7.4.1:= +" +DEPEND="${RDEPEND} + >=dev-haskell/cabal-1.8 +" + +S="${WORKDIR}/${MY_P}" + +src_prepare() { + cabal_chdeps \ + 'random == 1.0.*' 'random >= 1.0 && < 1.2' +} + +src_configure() { + haskell-cabal_src_configure \ + --flag=-build-tests +} diff --git a/dev-haskell/chasingbottoms/metadata.xml b/dev-haskell/chasingbottoms/metadata.xml new file mode 100644 index 000000000000..bf0a95f2eed0 --- /dev/null +++ b/dev-haskell/chasingbottoms/metadata.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>haskell</herd> + <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> |