on master help sign in
Eliminate use of 'uuid' package

It doesn't seem to work on Android

commit64d85e0efa89d47f34535c87adc5c73430fbed0b authorRyan Trinkle <ryan.trinkle@gmail.com> dateSun 25 Jun 2017, 17:14 (9 years ago) parent96b2abe
7 files changed+16−20
jsaddle-warp/jsaddle-warp.cabal−2 jsaddle-warp/src/Language/Javascript/JSaddle/WebSockets.hs+1−2 jsaddle/default.nix+6−6 jsaddle/jsaddle.cabal+1−2 jsaddle/src/Language/Javascript/JSaddle/Debug.hs+4−4 jsaddle/src/Language/Javascript/JSaddle/Run.hs+2−2 jsaddle/src/Language/Javascript/JSaddle/Types.hs+2−2
jsaddle-warp/jsaddle-warp.cabal−2
@@ -35,8 +35,6 @@ library
3535 text >=1.2.1.3 && <1.3,
3636 time >=1.5.0.1 && <1.8,
3737 transformers >=0.4.2.0 && <0.6,
38− uuid >=1.3.13 && <1.4,
39− uuid-types >=1.0.3 && <1.1,
4038 wai >=3.0.3.0 && <3.3,
4139 wai-websockets >=3.0.0.6 && <3.1,
4240 warp >=3.1.2 && <3.3,
jsaddle-warp/src/Language/Javascript/JSaddle/WebSockets.hs+1−2
@@ -55,7 +55,6 @@ import qualified Data.Map as M (empty, insert, lookup)
5555import Data.IORef
5656 (writeIORef, IORef, readIORef, newIORef, atomicModifyIORef')
5757import Data.ByteString.Lazy (ByteString)
58−import Data.UUID.Types (toText)
5958import Control.Concurrent.MVar
6059 (tryPutMVar, modifyMVar_, putMVar, takeMVar, readMVar, newMVar,
6160 newEmptyMVar, modifyMVar)
@@ -72,7 +71,7 @@ jsaddleOr opts entryPoint otherApp = do
7271 wsApp pending_conn = do
7372 conn <- acceptRequest pending_conn
7473 rec (processResult, processSyncResult, start) <- runJavaScript (sendTextData conn . encode) $ do
75− syncKey <- toText . contextId <$> askJSM
74+ syncKey <- T.pack . show . contextId <$> askJSM
7675 liftIO $ atomicModifyIORef' syncHandlers (\m -> (M.insert syncKey processSyncResult m, ()))
7776 liftIO $ sendTextData conn (encode syncKey)
7877 entryPoint
jsaddle/default.nix+6−6
@@ -1,17 +1,17 @@
11{ mkDerivation, aeson, attoparsec, base, base64-bytestring
22, bytestring, containers, deepseq, filepath, ghc-prim, http-types
3−, lens, primitive, process, ref-tf, scientific, stdenv, stm, text
4−, time, transformers, unordered-containers, vector, uuid, uuid-types
3+, lens, primitive, process, random, ref-tf, scientific, stdenv, stm
4+, text, time, transformers, unordered-containers, vector
55}:
66mkDerivation {
77 pname = "jsaddle";
8− version = "0.9.0.0";
8+ version = "0.9.2.1";
99 src = builtins.filterSource (path: type: !(builtins.elem (baseNameOf path) [ ".git" "dist" ])) ./.;
1010 libraryHaskellDepends = [
1111 aeson attoparsec base base64-bytestring bytestring containers
12− deepseq filepath ghc-prim http-types lens primitive process ref-tf
13− scientific stm text time transformers unordered-containers vector
14− uuid uuid-types
12+ deepseq filepath ghc-prim http-types lens primitive process random
13+ ref-tf scientific stm text time transformers unordered-containers
14+ vector
1515 ];
1616 description = "Interface for JavaScript that works with GHCJS and GHC";
1717 license = stdenv.lib.licenses.mit;
jsaddle/jsaddle.cabal+1−2
@@ -42,13 +42,12 @@ library
4242 ghc-prim,
4343 http-types >=0.8.6 && <0.10,
4444 process >=1.2.3.0 && <1.5,
45+ random >= 1.1 && < 1.2,
4546 ref-tf >=0.4.0.1 && <0.5,
4647 scientific >=0.3 && <0.4,
4748 stm >=2.4.4 && <2.5,
4849 time >=1.5.0.1 && <1.8,
4950 unordered-containers >=0.2 && <0.3,
50− uuid >=1.3.13 && <1.4,
51− uuid-types >=1.0.3 && <1.1,
5251 vector >=0.10 && <0.13
5352 exposed-modules:
5453 Data.JSString
jsaddle/src/Language/Javascript/JSaddle/Debug.hs+4−4
@@ -26,7 +26,7 @@ import Data.IORef (readIORef, atomicModifyIORef', newIORef, IORef)
2626import System.IO.Unsafe (unsafePerformIO)
2727import Data.Monoid ((<>))
2828import Control.Monad.IO.Class (MonadIO(..))
29−import Data.UUID (UUID)
29+import Data.Int (Int64)
3030
3131contexts :: IORef [JSContextRef]
3232contexts = unsafePerformIO $ newIORef []
@@ -37,9 +37,9 @@ addContext = do
3737 ctx <- askJSM
3838 liftIO $ atomicModifyIORef' contexts $ \c -> (c <> [ctx], ())
3939
40−removeContext :: MonadIO m => UUID -> m ()
41−removeContext uuid =
42− liftIO $ atomicModifyIORef' contexts $ \c -> (filter ((/= uuid) . contextId) c, ())
40+removeContext :: MonadIO m => Int64 -> m ()
41+removeContext cid =
42+ liftIO $ atomicModifyIORef' contexts $ \c -> (filter ((/= cid) . contextId) c, ())
4343
4444runOnAll :: MonadIO m => JSM a -> m [a]
4545runOnAll f = liftIO (readIORef contexts) >>= mapM (runJSM f)
jsaddle/src/Language/Javascript/JSaddle/Run.hs+2−2
@@ -56,6 +56,7 @@ import Control.Concurrent.MVar
5656
5757import System.IO.Unsafe (unsafeInterleaveIO)
5858import System.Mem.Weak (addFinalizer)
59+import System.Random
5960
6061import GHC.Base (IO(..), mkWeak#)
6162import GHC.Conc (ThreadId(..))
@@ -63,7 +64,6 @@ import Data.Monoid ((<>))
6364import qualified Data.Text as T (unpack, pack)
6465import qualified Data.Map as M (lookup, delete, insert, empty, size)
6566import qualified Data.Set as S (empty, member, insert, delete)
66−import Data.UUID.V4 (nextRandom)
6767import Data.Time.Clock (getCurrentTime,diffUTCTime)
6868import Data.IORef (newIORef, atomicWriteIORef, readIORef)
6969
@@ -154,7 +154,7 @@ sendAsyncCommand cmd = do
154154
155155runJavaScript :: (Batch -> IO ()) -> JSM () -> IO (Results -> IO (), Results -> IO Batch, IO ())
156156runJavaScript sendBatch entryPoint = do
157− contextId' <- nextRandom
157+ contextId' <- randomIO
158158 startTime' <- getCurrentTime
159159 recvMVar <- newEmptyMVar
160160 lastAsyncBatch <- newEmptyMVar
jsaddle/src/Language/Javascript/JSaddle/Types.hs+2−2
@@ -107,9 +107,9 @@ import Control.Monad.Fix (MonadFix)
107107import Control.Monad.Ref (MonadAtomicRef(..), MonadRef(..))
108108import Control.Concurrent.STM.TVar (TVar)
109109import Control.Concurrent.MVar (MVar)
110+import Data.Int (Int64)
110111import Data.Set (Set)
111112import Data.Text (Text)
112−import Data.UUID (UUID)
113113import Data.Time.Clock (UTCTime(..))
114114import Data.Typeable (Typeable)
115115import Data.Coerce (coerce, Coercible)
@@ -132,7 +132,7 @@ import GHC.Exts (Constraint)
132132type JSContextRef = ()
133133#else
134134data JSContextRef = JSContextRef {
135− contextId :: UUID
135+ contextId :: Int64
136136 , startTime :: UTCTime
137137 , doSendCommand :: Command -> IO Result
138138 , doSendAsyncCommand :: AsyncCommand -> IO ()