packages feed

erlang 0.2.2 → 0.2.3

raw patch · 4 files changed

+21/−6 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Foreign.Erlang: erlConnect :: String -> Node -> IO (ErlSend, ErlRecv)
- Foreign.Erlang: getA :: Int -> Get String
- Foreign.Erlang: getC :: Get Int
- Foreign.Erlang: getErl :: Get ErlType
- Foreign.Erlang: getN :: Get Int
- Foreign.Erlang: geta :: Int -> Get [Word8]
- Foreign.Erlang: getn :: Get Int
- Foreign.Erlang: putA :: String -> Builder
- Foreign.Erlang: putC :: Integral a => a -> Builder
- Foreign.Erlang: putErl :: ErlType -> Builder
- Foreign.Erlang: putN :: Integral a => a -> Builder
- Foreign.Erlang: puta :: [Word8] -> Builder
- Foreign.Erlang: putn :: Integral a => a -> Builder
- Foreign.Erlang: tag :: Char -> Builder
- Foreign.Erlang: toNetwork :: Int -> Integer -> [Word8]

Files

+ CHANGELOG view
@@ -0,0 +1,3 @@+# 0.2.3++  * Negotiate `UTF8_ATOMS` to support OTP 20.
erlang.cabal view
@@ -1,5 +1,5 @@ name:                erlang-version:             0.2.2+version:             0.2.3 stability:           alpha description:   Speaks the Erlang network protocol and impersonates an Erlang node@@ -16,6 +16,8 @@ synopsis:            FFI interface to Erlang. cabal-version:       >= 1.6 build-type:          Simple+extra-source-files:+  CHANGELOG source-repository head   type:     git   location: https://github.com/gombocarti/erlang-ffi.git
src/Foreign/Erlang/Network.hs view
@@ -1,5 +1,5 @@ -- |--- Module      : Foreign.Erlang.OTP+-- Module      : Foreign.Erlang.Network -- Copyright   : (c) Eric Sessoms, 2008 --               (c) Artúr Poór, 2015 -- License     : GPL3@@ -61,14 +61,20 @@ flagHiddenAtomCache    =  0x40 flagNewFunTags         =  0x80 flagExtendedPidsPorts  = 0x100+flagUTF8Atoms          = 0x10000 -flagExtendedReferences :: Word16-flagExtendedPidsPorts  :: Word16+flagExtendedReferences :: Word32+flagExtendedPidsPorts  :: Word32+flagUTF8Atoms          :: Word32  getUserCookie :: IO String getUserCookie = do     home <- getHomeDirectory-    readFile $ home </> ".erlang.cookie"+    withFile (home </> ".erlang.cookie") ReadMode $ \h -> do+      eof <- hIsEOF h+      if eof+        then return ""+        else hGetLine h  toNetwork :: Int -> Integer -> [Word8] toNetwork b n = reverse . take b $ unfoldr toNetwork' n ++ repeat 0@@ -179,7 +185,7 @@     sendName = out $         tag 'n' <>         putn erlangVersion <>-        putN (flagExtendedReferences .|. flagExtendedPidsPorts) <>+        putN (flagExtendedReferences .|. flagExtendedPidsPorts .|. flagUTF8Atoms) <>         putA self      recvStatus = do
src/Foreign/Erlang/Types.hs view
@@ -248,6 +248,10 @@         id <- forM [1..4*len] (const getWord8)         return $ ErlNewRef node creation id +      'v' -> getn >>= liftM ErlAtom . getA++      'w' -> getC >>= liftM ErlAtom . getA+       x -> fail $ "Unsupported serialization code: " ++ show (ord x)