hinterface 2.0.0 → 2.0.1
raw patch · 6 files changed
+136/−144 lines, 6 filesdep ~asyncdep ~binarydep ~bytestringPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: async, binary, bytestring, hspec, monad-logger, transformers, vector
API changes (from Hackage documentation)
- Foreign.Erlang.NodeData: instance GHC.Arr.Ix Foreign.Erlang.NodeData.DistributionVersion
- Util.IOExtra: [ExceptionInLinkedThread] :: forall a. () => Async a -> SomeException -> ExceptionInLinkedThread
- Util.IOExtra: [Handler] :: forall (m :: Type -> Type) a e. Exception e => (e -> m a) -> Handler m a
- Util.IOExtra: [SomeException] :: forall e. Exception e => e -> SomeException
+ Foreign.Erlang.NodeData: instance GHC.Ix.Ix Foreign.Erlang.NodeData.DistributionVersion
+ Util.IOExtra: ExceptionInLinkedThread :: Async a -> SomeException -> ExceptionInLinkedThread
+ Util.IOExtra: Handler :: (e -> m a) -> Handler (m :: Type -> Type) a
+ Util.IOExtra: SomeException :: e -> SomeException
- Foreign.Erlang.Term: SAtom :: SAtom
+ Foreign.Erlang.Term: SAtom :: SAtom (atom :: Symbol)
- Foreign.Erlang.Term: SInteger :: SInteger
+ Foreign.Erlang.Term: SInteger :: SInteger (n :: Nat)
- Util.IOExtra: Concurrently :: m a -> Concurrently a
+ Util.IOExtra: Concurrently :: m a -> Concurrently (m :: Type -> Type) a
- Util.IOExtra: [runConcurrently] :: Concurrently a -> m a
+ Util.IOExtra: [runConcurrently] :: Concurrently (m :: Type -> Type) a -> m a
- Util.IOExtra: captureM :: MonadBaseControl b m => m (StM m ())
+ Util.IOExtra: captureM :: forall (b :: Type -> Type) m. MonadBaseControl b m => m (StM m ())
- Util.IOExtra: captureT :: (MonadTransControl t, Monad (t m), Monad m) => t m (StT t ())
+ Util.IOExtra: captureT :: forall t (m :: Type -> Type). (MonadTransControl t, Monad (t m), Monad m) => t m (StT t ())
- Util.IOExtra: compareAsyncs :: () => Async a -> Async b -> Ordering
+ Util.IOExtra: compareAsyncs :: Async a -> Async b -> Ordering
- Util.IOExtra: defaultLiftBaseWith :: (MonadTransControl t, MonadBaseControl b m) => (RunInBaseDefault t m b -> b a) -> t m a
+ Util.IOExtra: defaultLiftBaseWith :: forall t b (m :: Type -> Type) a. (MonadTransControl t, MonadBaseControl b m) => (RunInBaseDefault t m b -> b a) -> t m a
- Util.IOExtra: defaultLiftWith2 :: (Monad m, Monad (n' m), MonadTransControl n, MonadTransControl n') => (forall b. () => n (n' m) b -> t m b) -> (forall (o :: Type -> Type) b. () => t o b -> n (n' o) b) -> (RunDefault2 t n n' -> m a) -> t m a
+ Util.IOExtra: defaultLiftWith2 :: forall m (n' :: (Type -> Type) -> Type -> Type) n t a. (Monad m, Monad (n' m), MonadTransControl n, MonadTransControl n') => (forall b. () => n (n' m) b -> t m b) -> (forall (o :: Type -> Type) b. () => t o b -> n (n' o) b) -> (RunDefault2 t n n' -> m a) -> t m a
- Util.IOExtra: defaultRestoreM :: (MonadTransControl t, MonadBaseControl b m) => ComposeSt t m a -> t m a
+ Util.IOExtra: defaultRestoreM :: forall t (b :: Type -> Type) (m :: Type -> Type) a. (MonadTransControl t, MonadBaseControl b m) => ComposeSt t m a -> t m a
- Util.IOExtra: defaultRestoreT2 :: (Monad m, Monad (n' m), MonadTransControl n, MonadTransControl n') => (n (n' m) a -> t m a) -> m (StT n' (StT n a)) -> t m a
+ Util.IOExtra: defaultRestoreT2 :: forall m (n' :: (Type -> Type) -> Type -> Type) n a t. (Monad m, Monad (n' m), MonadTransControl n, MonadTransControl n') => (n (n' m) a -> t m a) -> m (StT n' (StT n a)) -> t m a
- Util.IOExtra: errorBadArgument :: () => a
+ Util.IOExtra: errorBadArgument :: a
- Util.IOExtra: errorBadFormat :: () => Char -> a
+ Util.IOExtra: errorBadFormat :: Char -> a
- Util.IOExtra: errorMissingArgument :: () => a
+ Util.IOExtra: errorMissingArgument :: a
- Util.IOExtra: errorShortFormat :: () => a
+ Util.IOExtra: errorShortFormat :: a
- Util.IOExtra: fromJust :: () => Maybe a -> a
+ Util.IOExtra: fromJust :: HasCallStack => Maybe a -> a
- Util.IOExtra: getInternalState :: Monad m => ResourceT m InternalState
+ Util.IOExtra: getInternalState :: forall (m :: Type -> Type). Monad m => ResourceT m InternalState
- Util.IOExtra: isJust :: () => Maybe a -> Bool
+ Util.IOExtra: isJust :: Maybe a -> Bool
- Util.IOExtra: joinResourceT :: () => ResourceT (ResourceT m) a -> ResourceT m a
+ Util.IOExtra: joinResourceT :: forall (m :: Type -> Type) a. ResourceT (ResourceT m) a -> ResourceT m a
- Util.IOExtra: perror :: () => String -> a
+ Util.IOExtra: perror :: String -> a
- Util.IOExtra: pollSTM :: () => Async a -> STM (Maybe (Either SomeException a))
+ Util.IOExtra: pollSTM :: Async a -> STM (Maybe (Either SomeException a))
- Util.IOExtra: resourceForkIO :: MonadUnliftIO m => ResourceT m () -> ResourceT m ThreadId
+ Util.IOExtra: resourceForkIO :: forall (m :: Type -> Type). MonadUnliftIO m => ResourceT m () -> ResourceT m ThreadId
- Util.IOExtra: resourceForkWith :: MonadUnliftIO m => (IO () -> IO a) -> ResourceT m () -> ResourceT m a
+ Util.IOExtra: resourceForkWith :: forall (m :: Type -> Type) a. MonadUnliftIO m => (IO () -> IO a) -> ResourceT m () -> ResourceT m a
- Util.IOExtra: runInternalState :: () => ResourceT m a -> InternalState -> m a
+ Util.IOExtra: runInternalState :: ResourceT m a -> InternalState -> m a
- Util.IOExtra: transResourceT :: () => (m a -> n b) -> ResourceT m a -> ResourceT n b
+ Util.IOExtra: transResourceT :: (m a -> n b) -> ResourceT m a -> ResourceT n b
- Util.IOExtra: type family StM (m :: Type -> Type) a :: Type;
+ Util.IOExtra: type family StM (m :: Type -> Type) a;
- Util.IOExtra: waitAnyCatchSTM :: () => [Async a] -> STM (Async a, Either SomeException a)
+ Util.IOExtra: waitAnyCatchSTM :: [Async a] -> STM (Async a, Either SomeException a)
- Util.IOExtra: waitAnySTM :: () => [Async a] -> STM (Async a, a)
+ Util.IOExtra: waitAnySTM :: [Async a] -> STM (Async a, a)
- Util.IOExtra: waitBothSTM :: () => Async a -> Async b -> STM (a, b)
+ Util.IOExtra: waitBothSTM :: Async a -> Async b -> STM (a, b)
- Util.IOExtra: waitCatchSTM :: () => Async a -> STM (Either SomeException a)
+ Util.IOExtra: waitCatchSTM :: Async a -> STM (Either SomeException a)
- Util.IOExtra: waitEitherCatchSTM :: () => Async a -> Async b -> STM (Either (Either SomeException a) (Either SomeException b))
+ Util.IOExtra: waitEitherCatchSTM :: Async a -> Async b -> STM (Either (Either SomeException a) (Either SomeException b))
- Util.IOExtra: waitEitherSTM :: () => Async a -> Async b -> STM (Either a b)
+ Util.IOExtra: waitEitherSTM :: Async a -> Async b -> STM (Either a b)
- Util.IOExtra: waitEitherSTM_ :: () => Async a -> Async b -> STM ()
+ Util.IOExtra: waitEitherSTM_ :: Async a -> Async b -> STM ()
- Util.IOExtra: waitSTM :: () => Async a -> STM a
+ Util.IOExtra: waitSTM :: Async a -> STM a
- Util.IOExtra: withInternalState :: () => (InternalState -> m a) -> ResourceT m a
+ Util.IOExtra: withInternalState :: (InternalState -> m a) -> ResourceT m a
Files
- .gitignore +2/−1
- .travis.yml +2/−28
- README.md +1/−0
- cabal.project +1/−0
- hinterface.cabal +130/−108
- stack.yaml +0/−7
.gitignore view
@@ -29,4 +29,5 @@ cabal.project.local .ghc.environment.* .hsenv-result+/result*+/dist-newstyle
.travis.yml view
@@ -1,28 +1,2 @@-# Use new container infrastructure to enable caching-sudo: false--# Caching so the next build will be fast too.-cache:- directories:- - $HOME/.stack--# Choose a lightweight base image; we provide our own build tools.-language: c--# GHC depends on GMP. You can add other dependencies here as well.-addons:- apt:- packages:- - libgmp-dev--before_install:-# Download and unpack the stack executable-- mkdir -p ~/.local/bin-- export PATH=$HOME/.local/bin:$PATH-- travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'--# This line does all of the work: installs GHC if necessary, build the library,-# executables, and test suites, and runs the test suites. --no-terminal works-# around some quirks in Travis's terminal implementation.-script:-- stack --no-terminal --install-ghc test+language: nix+script: nix build
README.md view
@@ -1,4 +1,5 @@ [](https://travis-ci.org/lindenbaum/hinterface)+[](http://hackage.haskell.org/package/hinterface) # hinterface - Haskell / Erlang interoperability library
+ cabal.project view
@@ -0,0 +1,1 @@+packages: ./*.cabal
hinterface.cabal view
@@ -1,113 +1,135 @@-cabal-version: >=1.22-name: hinterface-version: 2.0.0-license: BSD3-license-file: LICENSE-copyright: 2016-2020 Timo Koepke, Sven Heyll-maintainer: timo.koepke@googlemail.com, sven.heyll@gmail.com-author: Timo Koepke, Sven Heyll-homepage: https://github.com/lindenbaum/hinterface-synopsis: Haskell / Erlang interoperability library-description:- A library for building nodes of a distributed Erlang system in Haskell.- Nodes can be created and registered to an epmd, Erlang terms can be- marshalled to/from Erlangs binary term representation and message can- be sent to or received from processes running on a different node.- In it's preliminary state hinterface supports of Erlangs binary terms- and a subset of the distribution protocol.-category: Language-build-type: Simple-extra-source-files:- README.md- stack.yaml- .travis.yml- Setup.hs- .gitignore+name: hinterface+version: 2.0.1+synopsis: Haskell / Erlang interoperability library+description: A library for building nodes of a distributed Erlang system in Haskell. -source-repository head- type: git- location: https://github.com/lindenbaum/hinterface.git+ Nodes can be created and registered to an epmd, Erlang terms can be+ marshalled to/from Erlangs binary term representation and message can+ be sent to or received from processes running on a different node. + In it's preliminary state hinterface supports of Erlangs binary terms+ and a subset of the distribution protocol.++homepage: https://github.com/lindenbaum/hinterface+license: BSD3+license-file: LICENSE+author: Timo Koepke, Sven Heyll+maintainer: timo.koepke@googlemail.com, sven.heyll@gmail.com+copyright: 2016-2020 Timo Koepke, Sven Heyll+category: Language+build-type: Simple+extra-source-files: README.md, .travis.yml, Setup.hs, .gitignore, cabal.project+cabal-version: >=1.22+ library- exposed-modules:- Util.IOExtra- Util.BufferedIOx- Util.Socket- Network.BufferedSocket- Util.Binary- Util.FloatCast- Foreign.Erlang.NodeState- Foreign.Erlang.NodeData- Foreign.Erlang.Epmd- Foreign.Erlang.Digest- Foreign.Erlang.Handshake- Foreign.Erlang.Term- Foreign.Erlang.LocalNode- Foreign.Erlang.ControlMessage- Foreign.Erlang.Mailbox- Foreign.Erlang.Connection- hs-source-dirs: src- default-language: Haskell2010- default-extensions: OverloadedStrings NamedFieldPuns- FlexibleContexts PatternSynonyms ViewPatterns- ghc-options: -Wall -funbox-strict-fields- build-depends:- QuickCheck >=2.11 && <2.14,- array >=0.5.2.0 && <0.6,- async >=2.2.1 && <2.3,- base >=4.12 && <5,- binary >=0.8.5.1 && <0.9,- bytestring >=0.10.8.2 && <0.11,- containers >=0.5.11.0 && <0.7,- cryptonite ==0.26.*,- deepseq ==1.4.*,- exceptions >=0.10.0 && <0.11,- lifted-async >=0.10.0.2 && <0.11,- lifted-base >=0.2.3.12 && <0.3,- memory ==0.15.*,- monad-control >=1.0.2.3 && <1.1,- monad-logger >=0.3.29 && <0.4,- mtl >=2.2.2 && <2.3,- network ==3.1.1.*,- random ==1.1.*,- resourcet >=1.2.1 && <1.3,- safe-exceptions >=0.1.7.0 && <0.2,- stm >=2.4.5.0 && <2.6,- text >=1.2.3.0 && <1.3,- transformers >=0.5.5.0 && <0.6,- transformers-base >=0.4.5.2 && <0.5,- vector >=0.12.0.1 && <0.13+ hs-source-dirs: src+ exposed-modules: Util.IOExtra+ , Util.BufferedIOx+ , Util.Socket+ , Network.BufferedSocket+ , Util.Binary+ , Util.FloatCast+ , Foreign.Erlang.NodeState+ , Foreign.Erlang.NodeData+ , Foreign.Erlang.Epmd+ , Foreign.Erlang.Digest+ , Foreign.Erlang.Handshake+ , Foreign.Erlang.Term+ , Foreign.Erlang.LocalNode+ , Foreign.Erlang.ControlMessage+ , Foreign.Erlang.Mailbox+ , Foreign.Erlang.Connection+ default-extensions: OverloadedStrings+ , NamedFieldPuns+ , FlexibleContexts+ , PatternSynonyms+ , ViewPatterns+ ghc-options: -Wall -funbox-strict-fields+ build-depends: QuickCheck >=2.11 && <2.14+ , array >=0.5.2.0 && <0.6+ , async >=2.2.1 && <2.3+ , base >= 4.12 && < 5+ , binary >=0.8.5.1 && <0.9+ , bytestring >=0.10.8.2 && <0.11+ , containers >=0.5.11.0 && <0.7+ , cryptonite == 0.26.*+ , deepseq >= 1.4 && <1.5+ , exceptions >=0.10.0 && <0.11+ , lifted-async >=0.10.0.2 && <0.11+ , lifted-base >=0.2.3.12 && <0.3+ , memory == 0.15.*+ , monad-control >=1.0.2.3 && <1.1+ , monad-logger >=0.3.29 && <0.4+ , mtl >=2.2.2 && <2.3+ , network == 3.1.1.*+ , random ==1.1.*+ , resourcet >=1.2.1 && <1.3+ , safe-exceptions >=0.1.7.0 && <0.2+ , stm >=2.4.5.0 && <2.6+ , text >=1.2.3.0 && <1.3+ , transformers >=0.5.5.0 && <0.6+ , transformers-base >=0.4.5.2 && <0.5+ , vector >=0.12.0.1 && <0.13 + default-language: Haskell2010+ test-suite hinterface-test- type: exitcode-stdio-1.0- main-is: Spec.hs- hs-source-dirs: test- other-modules:- Foreign.Erlang.NodeDataSpec- Foreign.Erlang.HandshakeSpec- Foreign.Erlang.ControlMessageSpec- Foreign.Erlang.TermSpec- Foreign.Erlang.Term2Experimental- default-language: Haskell2010- default-extensions: AllowAmbiguousTypes ConstraintKinds DataKinds- DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable- ExistentialQuantification FlexibleContexts FlexibleInstances- FunctionalDependencies GADTs GeneralizedNewtypeDeriving- KindSignatures LambdaCase MultiParamTypeClasses NamedFieldPuns- OverloadedLists OverloadedStrings PatternSynonyms RankNTypes- ScopedTypeVariables StandaloneDeriving TemplateHaskell- TupleSections TypeApplications TypeFamilies TypeInType- TypeOperators ViewPatterns- other-extensions: CPP IncoherentInstances Strict StrictData- ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N- build-depends:- QuickCheck >=2.11.3 && <2.14,- async >=2.2.2,- base >=4.12 && <5,- binary >=0.8.7.0,- bytestring >=0.10.10.0,- hinterface -any,- hspec >=2.4 && <2.8,- monad-logger >=0.3.32,- transformers >=0.5.6.2,- vector >=0.12.1.2+ type: exitcode-stdio-1.0+ hs-source-dirs: test+ main-is: Spec.hs+ build-depends: QuickCheck >=2.11.3 && <2.14+ , async+ , base >= 4.12 && < 5+ , binary+ , bytestring+ , hinterface+ , hspec >= 2.4 && < 4+ , monad-logger+ , transformers+ , vector+ build-tool-depends: hspec-discover:hspec-discover+ other-modules: Foreign.Erlang.NodeDataSpec+ , Foreign.Erlang.HandshakeSpec+ , Foreign.Erlang.ControlMessageSpec+ , Foreign.Erlang.TermSpec+ , Foreign.Erlang.Term2Experimental+ default-extensions: AllowAmbiguousTypes+ , ConstraintKinds+ , DataKinds+ , DeriveFoldable+ , DeriveFunctor+ , DeriveGeneric+ , DeriveTraversable+ , ExistentialQuantification+ , FlexibleContexts+ , FlexibleInstances+ , FunctionalDependencies+ , GADTs+ , GeneralizedNewtypeDeriving+ , KindSignatures+ , LambdaCase+ , MultiParamTypeClasses+ , NamedFieldPuns+ , OverloadedLists+ , OverloadedStrings+ , PatternSynonyms+ , RankNTypes+ , ScopedTypeVariables+ , StandaloneDeriving+ , TemplateHaskell+ , TupleSections+ , TypeApplications+ , TypeFamilies+ , TypeInType+ , TypeOperators+ , ViewPatterns+ other-extensions: CPP+ , IncoherentInstances+ , Strict+ , StrictData+ ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N+ default-language: Haskell2010++source-repository head+ type: git+ location: https://github.com/lindenbaum/hinterface.git
− stack.yaml
@@ -1,7 +0,0 @@-flags: {}-extra-package-dbs: []-packages:-- .-pvp-bounds: lower-extra-deps: []-resolver: lts-15.12