mirror of
https://github.com/IHaskell/IHaskell.git
synced 2025-04-17 20:06:07 +00:00
Replace cereal
with binary
This commit is contained in:
parent
495c120657
commit
658fdfb1d3
@ -66,8 +66,8 @@ library
|
||||
aeson >=1.0,
|
||||
base >=4.9,
|
||||
base64-bytestring >=1.0,
|
||||
binary >=0.7,
|
||||
bytestring >=0.10,
|
||||
cereal >=0.3,
|
||||
cmdargs >=0.10,
|
||||
containers >=0.5,
|
||||
directory -any,
|
||||
|
@ -37,9 +37,8 @@ library
|
||||
default-language: Haskell2010
|
||||
build-depends: base >=4.9 && <5,
|
||||
aeson ,
|
||||
binary ,
|
||||
bytestring ,
|
||||
cereal ,
|
||||
cereal-text ,
|
||||
containers ,
|
||||
cryptonite ,
|
||||
directory ,
|
||||
|
@ -47,8 +47,7 @@ import Data.Map (Map)
|
||||
import qualified Data.Map as Map
|
||||
import Data.Maybe (fromMaybe)
|
||||
import Data.Semigroup (Semigroup)
|
||||
import Data.Serialize
|
||||
import Data.Serialize.Text ()
|
||||
import Data.Binary
|
||||
import Data.Text (Text, pack)
|
||||
import qualified Data.Text as Text
|
||||
import qualified Data.Text.Encoding as Text
|
||||
@ -923,9 +922,9 @@ data DisplayData = DisplayData MimeType Text
|
||||
instance Show DisplayData where
|
||||
show _ = "DisplayData"
|
||||
|
||||
instance Serialize DisplayData
|
||||
instance Binary DisplayData
|
||||
|
||||
instance Serialize MimeType
|
||||
instance Binary MimeType
|
||||
|
||||
-- | Possible MIME types for the display data.
|
||||
type Width = Int
|
||||
|
@ -60,8 +60,9 @@ module IHaskell.Display (
|
||||
import IHaskellPrelude
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.ByteString.Char8 as CBS
|
||||
import qualified Data.ByteString.Lazy as LBS
|
||||
|
||||
import Data.Serialize as Serialize
|
||||
import Data.Binary as Binary
|
||||
import qualified Data.ByteString.Base64 as Base64
|
||||
import System.Directory (getTemporaryDirectory, setCurrentDirectory)
|
||||
|
||||
@ -164,8 +165,8 @@ base64 :: ByteString -> Base64
|
||||
base64 = E.decodeUtf8 . Base64.encode
|
||||
|
||||
-- | For internal use within IHaskell. Serialize displays to a ByteString.
|
||||
serializeDisplay :: Display -> ByteString
|
||||
serializeDisplay = Serialize.encode
|
||||
serializeDisplay :: Display -> LBS.ByteString
|
||||
serializeDisplay = Binary.encode
|
||||
|
||||
-- | Items written to this chan will be included in the output sent to the frontend (ultimately the
|
||||
-- browser), the next time IHaskell has an item to display.
|
||||
@ -175,9 +176,9 @@ displayChan = unsafePerformIO newTChanIO
|
||||
|
||||
-- | Take everything that was put into the 'displayChan' at that point out, and make a 'Display' out
|
||||
-- of it.
|
||||
displayFromChanEncoded :: IO ByteString
|
||||
displayFromChanEncoded :: IO LBS.ByteString
|
||||
displayFromChanEncoded =
|
||||
Serialize.encode <$> Just . many <$> unfoldM (atomically $ tryReadTChan displayChan)
|
||||
Binary.encode <$> Just . many <$> unfoldM (atomically $ tryReadTChan displayChan)
|
||||
|
||||
-- | Write to the display channel. The contents will be displayed in the notebook once the current
|
||||
-- execution call ends.
|
||||
|
@ -27,7 +27,7 @@ import Data.List (nubBy)
|
||||
import qualified Data.Set as Set
|
||||
import Data.Char as Char
|
||||
import Data.Dynamic
|
||||
import qualified Data.Serialize as Serialize
|
||||
import qualified Data.Binary as Binary
|
||||
import System.Directory
|
||||
import System.Posix.IO (fdToHandle)
|
||||
import System.IO (hGetChar, hSetEncoding, utf8)
|
||||
@ -436,9 +436,9 @@ evaluate kernelState code output widgetHandler = do
|
||||
Left err -> error $ "Deserialization error (Evaluate.hs): " ++ err
|
||||
Right displaysIO -> do
|
||||
result <- liftIO displaysIO
|
||||
case Serialize.decode result of
|
||||
Left err -> error $ "Deserialization error (Evaluate.hs): " ++ err
|
||||
Right res -> return res
|
||||
case Binary.decodeOrFail result of
|
||||
Left (_, _, err) -> error $ "Deserialization error (Evaluate.hs): " ++ err
|
||||
Right (_, _, res) -> return res
|
||||
else return Nothing
|
||||
let result =
|
||||
case dispsMay of
|
||||
@ -1044,9 +1044,9 @@ evalCommand output (Expression expr) state = do
|
||||
Nothing -> error "Expecting lazy Bytestring"
|
||||
Just bytestringIO -> do
|
||||
bytestring <- liftIO bytestringIO
|
||||
case Serialize.decode bytestring of
|
||||
Left err -> error err
|
||||
Right disp ->
|
||||
case Binary.decodeOrFail bytestring of
|
||||
Left (_, _, err) -> error err
|
||||
Right (_, _, disp) ->
|
||||
return $
|
||||
if useSvg state
|
||||
then disp :: Display
|
||||
|
@ -47,7 +47,7 @@ import qualified Data.HashMap.Strict as HashMap
|
||||
import Data.Aeson (ToJSON (..), Value, (.=), object, Value(String))
|
||||
import Data.Function (on)
|
||||
import Data.Text (pack)
|
||||
import Data.Serialize
|
||||
import Data.Binary
|
||||
import GHC.Generics
|
||||
|
||||
import IHaskell.IPython.Kernel
|
||||
@ -159,7 +159,7 @@ instance ToJSON Display where
|
||||
toJSON (Display d) = object (map displayDataToJson d)
|
||||
toJSON (ManyDisplay d) = toJSON d
|
||||
|
||||
instance Serialize Display
|
||||
instance Binary Display
|
||||
|
||||
instance Semigroup Display where
|
||||
ManyDisplay a <> ManyDisplay b = ManyDisplay (a ++ b)
|
||||
|
Loading…
x
Reference in New Issue
Block a user