- `IHaskell.ZeroMQ`: Low-level ZeroMQ communication wrapper. `serveProfile` starts listening on all necessary sockets, and returns a `ZeroMQInterface` record. This record exposes reading and writing `Chan Message` messages for all the necessary sockets, so then the rest of the application can simply use that interface.
- `IHaskell.ZeroMQ`: Low-level ZeroMQ communication wrapper. `serveProfile` starts listening on all necessary sockets, and returns a `ZeroMQInterface` record. This record exposes reading and writing `Chan Message` messages for all the necessary sockets, so then the rest of the application can simply use that interface.
First steps:
First steps:
- Fork the repository on Github and clone your fork for editing.
- Fork the repository on Github and clone your fork for editing.
- Build IHaskell as follows:
- Build IHaskell as follows:
...
@@ -99,9 +100,28 @@ cabal configure
...
@@ -99,9 +100,28 @@ cabal configure
cabal build
cabal build
```
```
Loading IHaskell into GHCi for testing:
**Loading IHaskell into GHCi for testing:**
If you are at the top level of the IHaskell project, you can load GHCi with
`cabal repl` or `ghci`. The first option hides all packages not listed in the
Use one of the methods below to access IHaskell files in GHCi. Once inside GHCi, you can load an IHaskell file; for example, `:load IHaskell/Config.hs`.
`IHaskell.cabal`, while the second option only sets a couple options given in
the `.ghci` file in the repo. Once in ghci, it can then be useful to `:load
**Using cabal repl**
*IHaskell/Config` or similar.
If you have the latest version of cabal (>v1.18.0), the simplest thing to do is
```bash
cd <path-to-IHaskell>
cabal repl
```
The will hide all packages not listed in the
`IHaskell.cabal`
**Using GHCi directly**
If you don't want to use cabal repl, you can just call ghci with the appropriate options. You can find these in the IHaskell.cabal file.