Replace cereal with binary

This commit is contained in:
Vaibhav Sagar 2021-11-05 23:56:21 +11:00
parent 495c120657
commit 658fdfb1d3
6 changed files with 20 additions and 21 deletions

View File

@ -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,

View File

@ -37,9 +37,8 @@ library
default-language: Haskell2010
build-depends: base >=4.9 && <5,
aeson ,
binary ,
bytestring ,
cereal ,
cereal-text ,
containers ,
cryptonite ,
directory ,

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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)