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 +3/−0
- erlang.cabal +3/−1
- src/Foreign/Erlang/Network.hs +11/−5
- src/Foreign/Erlang/Types.hs +4/−0
+ 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)