diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2019-12-14 20:08:52 +0000 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2019-12-14 21:26:52 +0000 |
commit | d5dbd873fae620fe8f73c2946ae2a5d75768123f (patch) | |
tree | 8f4f5a5f9c9918c01838350f650c578f24957a57 /dev-haskell/json | |
parent | dev-haskell/language-ecmascript: bump up to 0.17.1.0-r2 (diff) | |
download | gentoo-d5dbd873fae620fe8f73c2946ae2a5d75768123f.tar.gz gentoo-d5dbd873fae620fe8f73c2946ae2a5d75768123f.tar.bz2 gentoo-d5dbd873fae620fe8f73c2946ae2a5d75768123f.zip |
dev-haskell/json: bump up to 0.9.3
Package-Manager: Portage-2.3.81, Repoman-2.3.20
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'dev-haskell/json')
-rw-r--r-- | dev-haskell/json/Manifest | 1 | ||||
-rw-r--r-- | dev-haskell/json/files/json-0.9.3-ghc-8.8.patch | 172 | ||||
-rw-r--r-- | dev-haskell/json/json-0.9.3.ebuild | 37 |
3 files changed, 210 insertions, 0 deletions
diff --git a/dev-haskell/json/Manifest b/dev-haskell/json/Manifest index 0763e7dbb70b..99269fc1f1d7 100644 --- a/dev-haskell/json/Manifest +++ b/dev-haskell/json/Manifest @@ -1 +1,2 @@ DIST json-0.9.1.tar.gz 22568 BLAKE2B b1c73771e24ccafb2019ffff61e392f2eec18768c4bdd09f1a5ee8275c92d8982cda3fab4d91222f726fae65324776c9e79ccd602dbd4ac9c435749d61a1015e SHA512 537257fed476683d0657c6474e465ca437e43e36b60ab132c0f584cece99a18d222ef9a33171543689ba5589434bc78cf2e0e5ff550804ff8969052d09430d57 +DIST json-0.9.3.tar.gz 22562 BLAKE2B 8947d2b4bea1ee86eea19e25b73b991d186274c7a6beaff09e8f346756e870d440c4511c599d6ee5f82df08975076e47f0f528cc03cabb5063fb768506b9a660 SHA512 836ae920ef19e0cff5b617a579090ea1d760e253513d3fb28c56650a1fa413c0bd852165be487c211a52be6246eac3241a97f729342223be10275917a34230a6 diff --git a/dev-haskell/json/files/json-0.9.3-ghc-8.8.patch b/dev-haskell/json/files/json-0.9.3-ghc-8.8.patch new file mode 100644 index 000000000000..d8dc402ae19b --- /dev/null +++ b/dev-haskell/json/files/json-0.9.3-ghc-8.8.patch @@ -0,0 +1,172 @@ +commit a0d8bcde5ab5329d11be8cd89c407e6aa0db83a4 +Author: Fumiaki Kinoshita <fumiexcel@gmail.com> +Date: Tue Apr 30 18:37:40 2019 +0900 + + Support GHC 8.8 + +diff --git a/Text/JSON.hs b/Text/JSON.hs +index f2e2618..6f80949 100644 +--- a/Text/JSON.hs ++++ b/Text/JSON.hs +@@ -37,7 +37,7 @@ module Text.JSON ( + -- ** Instance helpers + , makeObj, valFromObj + , JSKey(..), encJSDict, decJSDict +- ++ + ) where + + import Text.JSON.Types +@@ -60,7 +60,7 @@ import qualified Data.Text as T + + ------------------------------------------------------------------------ + +--- | Decode a String representing a JSON value ++-- | Decode a String representing a JSON value + -- (either an object, array, bool, number, null) + -- + -- This is a superset of JSON, as types other than +@@ -137,7 +137,9 @@ instance MonadPlus Result where + + instance Monad Result where + return x = Ok x ++#if !MIN_VERSION_base(4,13,0) + fail x = Error x ++#endif + Ok a >>= f = f a + Error x >>= _ = Error x + +@@ -199,7 +201,7 @@ instance JSON Ordering where + showJSON = encJSString show + readJSON = decJSString "Ordering" readOrd + where +- readOrd x = ++ readOrd x = + case x of + "LT" -> return Prelude.LT + "EQ" -> return Prelude.EQ +@@ -460,7 +462,7 @@ instance JSKey Int where + instance JSKey String where + toJSKey = id + fromJSKey = Just +- ++ + -- | Encode an association list as 'JSObject' value. + encJSDict :: (JSKey a, JSON b) => [(a,b)] -> JSValue + encJSDict v = makeObj [ (toJSKey x, showJSON y) | (x,y) <- v ] +@@ -477,5 +479,3 @@ decJSDict l (JSObject o) = mapM rd (fromJSObject o) + "unable to read dict; invalid object key") + + decJSDict l _ = mkError ("readJSON{"++l ++ "}: unable to read dict; expected JSON object") +- +- +diff --git a/Text/JSON/String.hs b/Text/JSON/String.hs +index 51463cd..67fdca8 100644 +--- a/Text/JSON/String.hs ++++ b/Text/JSON/String.hs +@@ -1,7 +1,8 @@ ++{-# LANGUAGE CPP #-} + -- | Basic support for working with JSON values. + +-module Text.JSON.String +- ( ++module Text.JSON.String ++ ( + -- * Parsing + -- + GetJSON +@@ -35,6 +36,7 @@ import Text.JSON.Types (JSValue(..), + JSObject, toJSObject, fromJSObject) + + import Control.Monad (liftM, ap) ++import qualified Control.Monad.Fail as Fail + import Control.Applicative((<$>)) + import qualified Control.Applicative as A + import Data.Char (isSpace, isDigit, digitToInt) +@@ -52,9 +54,14 @@ instance A.Applicative GetJSON where + pure = return + (<*>) = ap + ++instance Fail.MonadFail GetJSON where ++ fail x = GetJSON (\_ -> Left x) ++ + instance Monad GetJSON where + return x = GetJSON (\s -> Right (x,s)) +- fail x = GetJSON (\_ -> Left x) ++#if !MIN_VERSION_base(4,13,0) ++ fail = Fail.fail ++#endif + GetJSON m >>= f = GetJSON (\s -> case m s of + Left err -> Left err + Right (a,s1) -> un (f a) s1) +@@ -93,7 +100,7 @@ tryJSNull k = do + xs <- getInput + case xs of + 'n':'u':'l':'l':xs1 -> setInput xs1 >> return JSNull +- _ -> k ++ _ -> k + + -- | Read the JSON Bool type + readJSBool :: GetJSON JSValue +@@ -111,8 +118,8 @@ readJSString = do + case x of + '"' : cs -> parse [] cs + _ -> fail $ "Malformed JSON: expecting string: " ++ context x +- where +- parse rs cs = ++ where ++ parse rs cs = + case cs of + '\\' : c : ds -> esc rs c ds + '"' : ds -> do setInput ds +@@ -153,22 +160,22 @@ readJSRational = do + '-' : ds -> negate <$> pos ds + _ -> pos cs + +- where ++ where + pos [] = fail $ "Unable to parse JSON Rational: " ++ context [] + pos (c:cs) = + case c of + '0' -> frac 0 cs +- _ ++ _ + | not (isDigit c) -> fail $ "Unable to parse JSON Rational: " ++ context cs + | otherwise -> readDigits (digitToIntI c) cs + + readDigits acc [] = frac (fromInteger acc) [] + readDigits acc (x:xs) +- | isDigit x = let acc' = 10*acc + digitToIntI x in ++ | isDigit x = let acc' = 10*acc + digitToIntI x in + acc' `seq` readDigits acc' xs + | otherwise = frac (fromInteger acc) (x:xs) + +- frac n ('.' : ds) = ++ frac n ('.' : ds) = + case span isDigit ds of + ([],_) -> setInput ds >> return n + (as,bs) -> let x = read as :: Integer +@@ -320,15 +327,15 @@ showJSRational :: Rational -> ShowS + showJSRational r = showJSRational' False r + + showJSRational' :: Bool -> Rational -> ShowS +-showJSRational' asFloat r ++showJSRational' asFloat r + | denominator r == 1 = shows $ numerator r + | isInfinite x || isNaN x = showJSNull + | asFloat = shows xf + | otherwise = shows x +- where ++ where + x :: Double + x = realToFrac r +- ++ + xf :: Float + xf = realToFrac r + +@@ -382,4 +389,3 @@ encJSString jss ss = go (fromJSString jss) + | x < '\x1000' -> 'u' : '0' : hexxs + | otherwise -> 'u' : hexxs + where hexxs = showHex (fromEnum x) xs +- diff --git a/dev-haskell/json/json-0.9.3.ebuild b/dev-haskell/json/json-0.9.3.ebuild new file mode 100644 index 000000000000..ce29d2693235 --- /dev/null +++ b/dev-haskell/json/json-0.9.3.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# ebuild generated by hackport 0.6.9999 + +CABAL_FEATURES="lib profile haddock hoogle hscolour" +inherit haskell-cabal + +DESCRIPTION="Support for serialising Haskell to and from JSON" +HOMEPAGE="http://hackage.haskell.org/package/json" +SRC_URI="https://hackage.haskell.org/package/${P}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc64 ~x86 ~amd64-linux" +IUSE="mapdict +parsec +pretty" + +RDEPEND="dev-haskell/mtl:=[profile?] + >=dev-haskell/syb-0.3.3:=[profile?] + dev-haskell/text:=[profile?] + >=dev-lang/ghc-7.4.1:= + parsec? ( dev-haskell/parsec:=[profile?] ) +" +DEPEND="${RDEPEND} + >=dev-haskell/cabal-1.6 +" + +PATCHES=( "${FILESDIR}"/${PN}-0.9.3-ghc-8.8.patch ) + +src_configure() { + haskell-cabal_src_configure \ + $(cabal_flag mapdict mapdict) \ + $(cabal_flag parsec parsec) \ + $(cabal_flag pretty pretty) +} |