packages feed

happstack-data 0.3.3 → 0.4.1

raw patch · 8 files changed

+75/−16 lines, 8 filesdep ~happstack-utildep ~syb-with-classdep ~template-haskellnew-uploaderPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: happstack-util, syb-with-class, template-haskell

API changes (from Hackage documentation)

- Happstack.Data.Proxy: constr[a6ad] :: Constr
- Happstack.Data.Proxy: dataType[a6ac] :: DataType
- Happstack.Data.Proxy: instance [overlap ok] (Data ctx t[a6ab], Sat (ctx (Proxy t[a6ab]))) => Data ctx (Proxy t[a6ab])
- Happstack.Data.Proxy: instance [overlap ok] (Default t[a6ab]) => Default (Proxy t[a6ab])
- Happstack.Data.Proxy: instance [overlap ok] (Typeable t[a6ab]) => Data (Proxy t[a6ab])
- Happstack.Data.Proxy: instance [overlap ok] Read (Proxy t[a6ab])
- Happstack.Data.Proxy: instance [overlap ok] Show (Proxy t[a6ab])
- Happstack.Data.Xml: constr[aekw] :: Constr
- Happstack.Data.Xml: constr[aekx] :: Constr
- Happstack.Data.Xml: constr[aeky] :: Constr
- Happstack.Data.Xml: constr[avPE] :: Constr
- Happstack.Data.Xml: constr[avPO] :: Constr
- Happstack.Data.Xml: dataType[aekv] :: DataType
- Happstack.Data.Xml: dataType[avPD] :: DataType
- Happstack.Data.Xml: dataType[avPN] :: DataType
+ Happstack.Data.Proxy: constr[aE35] :: Constr
+ Happstack.Data.Proxy: dataType[aE34] :: DataType
+ Happstack.Data.Proxy: instance [overlap ok] (Data ctx t[aE33], Sat (ctx (Proxy t[aE33]))) => Data ctx (Proxy t[aE33])
+ Happstack.Data.Proxy: instance [overlap ok] (Data t[aE33]) => Data (Proxy t[aE33])
+ Happstack.Data.Proxy: instance [overlap ok] (Default t[aE33]) => Default (Proxy t[aE33])
+ Happstack.Data.Proxy: instance [overlap ok] Read (Proxy t[aE33])
+ Happstack.Data.Proxy: instance [overlap ok] Show (Proxy t[aE33])
+ Happstack.Data.Serialize: getSafeGet :: (Serialize a) => Get (Get a)
+ Happstack.Data.Serialize: getSafePut :: (Serialize a) => PutM (a -> Put)
+ Happstack.Data.Xml: constr[a9cl] :: Constr
+ Happstack.Data.Xml: constr[a9cm] :: Constr
+ Happstack.Data.Xml: constr[a9cn] :: Constr
+ Happstack.Data.Xml: constr[alRD] :: Constr
+ Happstack.Data.Xml: constr[alRt] :: Constr
+ Happstack.Data.Xml: dataType[a9ck] :: DataType
+ Happstack.Data.Xml: dataType[alRC] :: DataType
+ Happstack.Data.Xml: dataType[alRs] :: DataType
- Happstack.Data.Proxy: Proxy :: Proxy t[a6ab]
+ Happstack.Data.Proxy: Proxy :: Proxy t[aE33]
- Happstack.Data.Proxy: data Proxy t[a6ab]
+ Happstack.Data.Proxy: data Proxy t[aE33]

Files

happstack-data.cabal view
@@ -1,5 +1,5 @@ Name:               happstack-data-Version:            0.3.3+Version:            0.4.1 License:            BSD3 License-File:       COPYING Author:             Happstack team, HAppS LLC@@ -27,7 +27,7 @@ source-repository head     type:     darcs     subdir:   happstack-data-    location: http://patch-tag.com/publicrepos/happstack+    location: http://patch-tag.com/r/mae/happstack/pullrepo  flag base4 @@ -41,10 +41,20 @@   else     Build-Depends:    base < 4 +-- Saizan said that we need syb-with-class at least 0.6.1 for+-- GHC 6.12.1, but we should use 0.6.0 for GHC 6.10.4.+-- I don't know of a nicer way than explicitly checking+-- the GHC version used.+  if impl(ghc >= 6.12.1)+    Build-Depends:    syb-with-class >= 0.6.1+  else+    Build-Depends:    syb-with-class < 0.6.1++   Build-Depends:      binary,                       bytestring,                       containers,-                      happstack-util >= 0.3.2 && < 0.4, +                      happstack-util >= 0.4.1 && < 0.5,                        HaXml >= 1.13 && < 1.14,                       mtl,                       pretty,
src/Happstack/Data/DeriveAll.hs view
@@ -48,10 +48,20 @@ mkDefaultInstance name  = do info <- reify name       case info of-          TyConI (NewtypeD _ nm tvs _ _) -> return $ deriveDefault True tvs nm-          TyConI (DataD    _ nm tvs _ _) -> return $ deriveDefault True tvs nm+          TyConI (NewtypeD _ nm tvs _ _) -> return $ deriveDefault True (conv tvs) nm+          TyConI (DataD    _ nm tvs _ _) -> return $ deriveDefault True (conv tvs) nm           _ -> fail ("mkDefaultInstance: Bad info: " ++ pprint info)+ where conv = map tyVarBndrToName +#if MIN_VERSION_template_haskell(2,4,0)+tyVarBndrToName :: TyVarBndr -> Name+tyVarBndrToName (PlainTV nm) = nm+tyVarBndrToName (KindedTV nm _) = nm+#else+tyVarBndrToName :: Name -> Name+tyVarBndrToName = id+#endif+ -- | The 'deriveAll' function takes a list of classes to derive and -- a block of declarations. It will additionally derive instances for -- Typeable, Old.Data and New.Data.@@ -76,10 +86,10 @@ addDerivedClasses :: Bool -> [Name] -> Dec -> [Dec] addDerivedClasses def cs (DataD ctxt nm tvs cons derivs)     = DataD ctxt nm tvs cons (cs ++ derivs)-    : deriveDefault def tvs nm+    : deriveDefault def (map tyVarBndrToName tvs) nm addDerivedClasses def cs (NewtypeD ctxt nm tvs con derivs)     = NewtypeD ctxt nm tvs con (cs ++ derivs)-    : deriveDefault def tvs nm+    : deriveDefault def (map tyVarBndrToName tvs) nm addDerivedClasses _ _ d = [d]  deriveDefault :: Bool -> [Name] -> Name -> [Dec]@@ -87,8 +97,15 @@ deriveDefault True tvs n = [InstanceD context instanceHead []]     where tvs' = map VarT tvs           mkDef x = ConT ''Default `AppT` x-          context = map mkDef tvs'+          context = map mkCtx tvs'           instanceHead = mkDef $ foldl AppT (ConT n) tvs'++#if MIN_VERSION_template_haskell(2,4,0)+          mkCtx x = ClassP ''Default [x]+#else+          mkCtx = mkDef+#endif+  isDataOrNewtype :: Dec -> Bool isDataOrNewtype (DataD {}) = True
src/Happstack/Data/Serialize.hs view
@@ -2,7 +2,7 @@     GeneralizedNewtypeDeriving, DeriveDataTypeable #-} module Happstack.Data.Serialize     ( Serialize(..), Version(..), Migrate(..), Mode(..), Contained, contain, extension,-      safeGet, safePut, serialize, deserialize, collectVersions,+      safeGet, safePut, getSafeGet, getSafePut, serialize, deserialize, collectVersions,       Object(objectType), mkObject, deserializeObject, parseObject,       module Happstack.Data.Proxy     ) where
src/Happstack/Data/SerializeTH.hs view
@@ -21,7 +21,7 @@     = do c <- parseInfo name          case c of            Tagged cons cx keys ->-               do let context = [ mkType ''Serialize [varT key] | key <- keys ] ++ map return cx+               do let context = [ mkCtx ''Serialize [varT key] | key <- keys ] ++ map return cx                   i <- instanceD (sequence context) (mkType ''Serialize [mkType name (map varT keys)])                        [ putCopyFn cons                        , getCopyFn cons@@ -54,6 +54,12 @@                                 [ noBindS [| return $(foldl appE (conE conName) (map varE args)) |] ]                 in funD 'getCopy [clause [] (normalB getCopyBody) []] +#if MIN_VERSION_template_haskell(2,4,0)+          mkCtx = classP+#else+          mkCtx = mkType+#endif+ -- | Derives Serialize for a list of types deriveSerializeFor :: [Name] -> Q [Dec] deriveSerializeFor = liftM concat . mapM deriveSerialize@@ -66,10 +72,17 @@ parseInfo name     = do info <- reify name          case info of-           TyConI (DataD cx _ keys cs _)    -> return $ Tagged (map conInfo cs) cx keys-           TyConI (NewtypeD cx _ keys con _)-> return $ Tagged [conInfo con] cx keys+           TyConI (DataD cx _ keys cs _)    -> return $ Tagged (map conInfo cs) cx $ map conv keys+           TyConI (NewtypeD cx _ keys con _)-> return $ Tagged [conInfo con] cx $ map conv keys            _                            -> error "Invalid input"     where conInfo (NormalC n args) = (n, length args)           conInfo (RecC n args) = (n, length args)           conInfo (InfixC _ n _) = (n, 2)           conInfo (ForallC _ _ con) = conInfo con++#if MIN_VERSION_template_haskell(2,4,0)+          conv (PlainTV nm) = nm+          conv (KindedTV nm _) = nm+#else+          conv = id+#endif
src/Happstack/Data/Xml/Base.hs view
@@ -184,7 +184,12 @@               do argNames <- replicateM (length vs) (newName "a")                  let args = map varT argNames                      mkXml a = conT ''Xml `appT` a+#if MIN_VERSION_template_haskell(2,4,0)+                     mkXmlPred a = classP ''Xml [a]+                     ctxt = cxt $ map mkXmlPred args+#else                      ctxt = cxt $ map mkXml args+#endif                      instanceHead = mkXml $ foldl appT (conT n) args                      decs = [d|                                 toXml :: Xml a => a -> [Element]
tests/Happstack/Data/Tests/Xml001.hs view
@@ -80,6 +80,13 @@  ,mkFTest [                        Elem "zap" []  ] DefFoo                  @?= (Nothing :: Maybe Res)  ] +-- NOTE: these tests have never passed, they were broken from day one.+-- It is possible that MkMyList is supposed to be treated as+-- Transparent XML, like [] and (,) but it has never been implemented+-- that way.+-- +-- We are disabling these tests until someone convinces us the tests+-- are right and the current implementation is wrong. flexibleManualTests :: Test flexibleManualTests =     "flexibleManualTest" ~:@@ -123,4 +130,4 @@                                | otherwise -> Just v'  xml001 :: Test-xml001 = "xml001" ~: [ flexibleTests, flexibleManualTests, migrationTests ]+xml001 = "xml001" ~: [ flexibleTests, {- flexibleManualTests, -} migrationTests ]
tests/Happstack/Data/Tests/Xml002.hs view
@@ -60,6 +60,13 @@     ,mkRTest [Elem "no"  [], Elem "no"  []] (Just [No,  No])  @?= (Nothing :: Maybe (Maybe [YesNo]))     ] +-- NOTE: these tests have never passed, they were broken from day one.+-- It is possible that MkMyList is supposed to be treated as+-- Transparent XML, like [] and (,) but it has never been implemented+-- that way.+-- +-- We are disabling these tests until someone convinces us the tests+-- are right and the current implementation is wrong. rigidManualTests :: Test rigidManualTests =     "rigidManualTests" ~:@@ -78,4 +85,4 @@                       | otherwise -> Just v'  xml002 :: Test-xml002 = "xml002" ~: [ rigidTests, rigidManualTests ]+xml002 = "xml002" ~: [ rigidTests {-, rigidManualTests -} ]
tests/Happstack/Data/Tests/Xml003.hs view
@@ -20,10 +20,10 @@ instance Default a => Default (Bar a) where     defaultValue = DefBar --- NOTE: I am not possible the test condition is correct, I am just guessing based on what was there+-- NOTE: I am not positive the test condition is correct, I am just guessing based on what was there testPairs :: Test testPairs = let xs = [Foo $ Bar "abc",Foo $ Bar "def"]-                xs' = runIdentity $ fromXml Flexible $ pairsToXml $ xmlToPairs $ concatMap toXml xs+                xs' = runIdentity $ fromXml Flexible $ pairsToXml $ xmlToPairs $ concatMap toPublicXml xs             in "testPairs" ~: xs @=? xs'  xml003 :: Test