packages feed

reflex 0.4.0 → 0.4.0.1

raw patch · 3 files changed

+42/−24 lines, 3 filesdep ~basedep ~criteriondep ~dependent-sum

Dependency ranges changed: base, criterion, dependent-sum, haskell-src-exts, haskell-src-meta, ref-tf, syb, template-haskell, these, transformers

Files

bench/Main.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE ScopedTypeVariables #-}@@ -7,6 +8,7 @@ import Data.Functor.Misc import Control.Monad.Primitive import Control.Monad.IO.Class+import Control.Monad.Identity import Data.Dependent.Sum import Control.Concurrent.STM import Control.Applicative@@ -21,8 +23,6 @@ import System.IO import Criterion.Main -import qualified Data.Traversable as T- import qualified Data.Dependent.Map as DM  @@ -30,8 +30,10 @@ main = defaultMain   [ bgroup "micro" micros ] +#if !(MIN_VERSION_deepseq(1,4,2)) instance NFData (IORef a) where   rnf x = seq x ()+#endif  instance NFData (TVar a) where   rnf x = seq x ()@@ -73,7 +75,7 @@     (newEventWithTriggerRef >>= subscribePair)     (\(subd, trigger) -> do         Just key <- liftIO $ readIORef trigger-        fireEvents [key :=> (42 :: Int)])+        fireEvents [key :=> Identity (42 :: Int)])   , withSetupWHNF "fireEventsAndRead(head/merge1)"     (setupMerge 1 >>= subscribePair)     (\(subd, t:riggers) -> fireAndRead t (42 :: Int) subd)@@ -87,17 +89,17 @@     (setupMerge 100 >>= subscribePair)     (\(subd, t:riggers) -> do         Just key <- liftIO $ readIORef t-        fireEvents [key :=> (42 :: Int)])+        fireEvents [key :=> Identity (42 :: Int)])   , withSetupWHNF "hold" newEventWithTriggerRef $ \(ev,trigger) -> hold (42 :: Int) ev   , withSetupWHNF "sample" (newEventWithTriggerRef >>= hold (42 :: Int) . fst) sample       ]  setupMerge :: Int-           -> SpiderHost (Event Spider (DM.DMap (Const2 Int a)),+           -> SpiderHost (Event Spider (DM.DMap (Const2 Int a) Identity),                          [IORef (Maybe (EventTrigger Spider a))]) setupMerge num = do   (evs, triggers) <- unzip <$> replicateM 100 newEventWithTriggerRef-  let !m = DM.fromList [WrapArg (Const2 i) :=> v | (i,v) <- zip [0..] evs]+  let !m = DM.fromList [(Const2 i) :=> v | (i,v) <- zip [0..] evs]   pure (merge m, triggers)  subscribePair :: (Event Spider a, b) -> SpiderHost (EventHandle Spider a, b)@@ -107,4 +109,4 @@             -> SpiderHost (Maybe b) fireAndRead trigger val subd = do   Just key <- liftIO $ readIORef trigger-  fireEventsAndRead [key :=> val] $ readEvent subd >>= T.sequence+  fireEventsAndRead [key :=> Identity val] $ readEvent subd >>= sequence
reflex.cabal view
@@ -1,5 +1,5 @@ Name: reflex-Version: 0.4.0+Version: 0.4.0.1 Synopsis: Higher-order Functional Reactive Programming Description: Reflex is a high-performance, deterministic, higher-order Functional Reactive Programming system License: BSD3@@ -10,28 +10,28 @@ Category: FRP Build-type: Simple Cabal-version: >=1.9.2-homepage: https://github.com/ryantrinkle/reflex-bug-reports: https://github.com/ryantrinkle/reflex/issues+homepage: https://github.com/reflex-frp/reflex+bug-reports: https://github.com/reflex-frp/reflex/issues  library   hs-source-dirs: src   build-depends:-    base >= 4.7 && < 4.9,-    dependent-sum == 0.3.*,+    base >= 4.7 && < 4.10,+    dependent-sum >= 0.3 && < 0.5,     dependent-map == 0.2.*,     semigroups >= 0.16 && < 0.19,     mtl >= 2.1 && < 2.3,     containers == 0.5.*,-    these >= 0.4 && < 0.7,+    these >= 0.4 && < 0.8,     primitive >= 0.5 && < 0.7,-    template-haskell >= 2.9 && < 2.11,+    template-haskell >= 2.9 && < 2.13,     ref-tf == 0.4.*,     exception-transformers == 0.4.*,     transformers >= 0.2,     transformers-compat >= 0.3,-    haskell-src-exts == 1.16.*,-    haskell-src-meta == 0.6.*,-    syb == 0.5.*+    haskell-src-exts >= 1.16 && < 1.20,+    haskell-src-meta >= 0.6 && < 0.9,+    syb >= 0.4.4 && < 0.8    exposed-modules:     Reflex,@@ -71,12 +71,12 @@     base,     dependent-sum,     dependent-map,-    transformers >= 0.3 && < 0.5,+    transformers >= 0.3 && < 0.6,     stm == 2.4.*,     deepseq >= 1.3 && < 1.5,     mtl,     primitive,-    criterion == 1.1.*,+    criterion >= 1.1 && < 1.3,     reflex  benchmark saulzar-bench@@ -87,18 +87,18 @@   build-depends:     base,     containers == 0.5.*,-    ref-tf == 0.4,+    ref-tf == 0.4.*,     dependent-sum,     dependent-map,-    transformers >= 0.3 && < 0.5,+    transformers >= 0.3 && < 0.6,     stm == 2.4.*,     deepseq >= 1.3 && < 1.5,     mtl,     primitive,-    criterion == 1.1.*,+    criterion >= 1.1 && < 1.3,     split,     reflex  source-repository head   type: git-  location: https://github.com/ryantrinkle/reflex+  location: https://github.com/reflex-frp/reflex
src/Reflex/Dynamic/TH.hs view
@@ -1,4 +1,10 @@-{-# LANGUAGE TemplateHaskell, ScopedTypeVariables, TypeOperators, GADTs, EmptyDataDecls, PatternGuards #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE EmptyDataDecls #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE PatternGuards #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeOperators #-} module Reflex.Dynamic.TH (qDyn, unqDyn, mkDyn) where  import Reflex.Dynamic@@ -56,12 +62,22 @@   Hs.ParseFailed (Hs.SrcLoc _ l c) err -> fail $ "mkDyn:" <> show l <> ":" <> show c <> ": " <> err   Hs.ParseOk e -> qDyn $ return $ everywhere (id `extT` reinstateUnqDyn) $ Hs.toExp $ everywhere (id `extT` antiE) e     where TH.Name (TH.OccName occName) (TH.NameG _ _ (TH.ModName modName)) = 'unqMarker+#if MIN_VERSION_haskell_src_exts(1,18,0)+          antiE :: Hs.Exp Hs.SrcSpanInfo -> Hs.Exp Hs.SrcSpanInfo           antiE x = case x of+            Hs.SpliceExp l se ->+              Hs.App l (Hs.Var l $ Hs.Qual l (Hs.ModuleName l modName) (Hs.Ident l occName)) $ case se of+                Hs.IdSplice l2 v -> Hs.Var l2 $ Hs.UnQual l2 $ Hs.Ident l2 v+                Hs.ParenSplice _ ps -> ps+            _ -> x+#else+          antiE x = case x of             Hs.SpliceExp se ->               Hs.App (Hs.Var $ Hs.Qual (Hs.ModuleName modName) (Hs.Ident occName)) $ case se of                 Hs.IdSplice v -> Hs.Var $ Hs.UnQual $ Hs.Ident v                 Hs.ParenSplice ps -> ps             _ -> x+#endif           reinstateUnqDyn (TH.Name (TH.OccName occName') (TH.NameQ (TH.ModName modName')))             | modName == modName' && occName == occName' = 'unqMarker           reinstateUnqDyn x = x