Instead of making a blocking foreign call without a timeout, we set a
timeout of one second. This way, the thread returns in Haskell code (and
thus is interruptible) at least every second. This is useful in order to
be able to kill `Server`s, see
https://github.com/awakesecurity/gRPC-haskell/issues/22.
* Make withServer provide the actual port
Again, useful to make a server listen on any available port by giving it
port zero (for testing).
* Re-introduce check on server port
* Add port field to Server
* Style: Remove unneeded newline
* Revert changes in tests
* Squash merge from branch `joel-fix-build-issues-and-broken-tests`
* Update `proto3-wire` and `proto3-suite` refs in `stack.yaml`
* Update `proto3-wire` and `proto3-suite` refs via `cabal2nix` for `nix` builds
* Remove `compile-proto-file` from the repo, as it is now available via `proto3-suite`
* Update `proto3-suite` ref in `stack.yaml`
* Update `proto3-suite` ref via `cabal2nix` for `nix` builds
* Update `proto3-suite` and `proto3-wire` gitrevs
* Regenerate Echo and Arithmetic example modules from their respective .protos
* Fix typo
We no longer require the `--with-gcc=clang` flag and it can cause
failed builds such as the one described in #19. I tested that the
`cabal` workflow works on OS X and NixOS without this flag
* add basic tutorial, re-export client stuff in HighLevel.Generated
* add a relative link in README.md
* forgot to document the language extensions
* cabal file fixup
* more context to compile-proto-file
* haskell syntax highlighting in markdown
* link to gRPC official tutorials for basic concepts
* add a note on how to build the examples
* prominent notice of required gRPC version
* fix typo
* do some error handling, show how to run the example executables
* use mapM
* update for reorganized headers in gRPC v1.1: https://github.com/grpc/grpc/pull/7559
* update nix files
* rename all gpr_slice to grpc_slice since we can't be backwards compatible anyway
* use gRPC 1.1.4
* now compatible with gRPC 1.2.0
* use nixpkgs 17.03 to get protobuf3_2, newer proto3-* deps, fix some warnings
* another warning
* Update `proto3-suite` gitrev in `stack.yaml` to `8db2ceb8c48a3f8dc2cbdc492d1e8cbaf8b62a15`
* Update `proto3-suite` gitrev in `nix/proto3-suite.nix` to `8db2ceb8c48a3f8dc2cbdc492d1e8cbaf8b62a15`
* Regenerate `Echo.hs` via new `proto3-suite` + `compile-proto-file`
* Remove additional warnings
* Pin nixpkgs to `7ae9da426924537755ce9164fd5b5f81ce16a1c3`; minor documentation tweaks
* Remove use of `fetchgitPrivate` from `proto3-suite` toplevel pkg override attr def
You can use `nix-env` to install any derivation that outputs binaries underneath
a `bin/` directory, so we can reuse `nix-env` for installing binaries built by
this project.
* echo client/server example: dead code removal, add command line params, improve output messages
* Add nix-build result to .gitignore
* Merge echo-client and echo-server directories to echo-hs/ directory; rename main modules accordingly
* Use our protobuf compiler to generate bindings for the Echo service
* Simplify echo.proto to just one endpoint; use highlevel client/server interfaces and codegen for echo example
* Remove repetition counts and thread spawns from echo client, parameterize payload
* Update default.nix
* Use GRPC v1.01 (grpc-1.0.1-6040b47)
* Minor tweaks to GRPC request result processing (less exact matching on some StatusDetails due to GRPC rev bump)
* Update tests.patch
* release.nix fixes for building and running cabal test suite from inside the nix-shell environment
* Update build instructions
* More README updates
* Fix stack tooling and improve documentation
* Update grpc sha256, cleanup build instructions
* Whups, DYLD_LIBRARY_PATH and substituteInPlace is still needed for hydra / macos builds with no brew-installed grpc!
* PR feedback tweaks
This updates the `release.nix` to now correctly run the test suite. You can
now build and test `grpc-haskell` by running:
```
$ nix-build -A grpc-haskell release.nix
```
... and `nix-shell` has been updated, too, so that you can do `cabal`
development inside of a `nix-shell` by running:
```
$ nix-shell -A grpc-haskell.env release.nix
```
For people who prefer to use `stack` you can still just build the `grpc`
library by running:
```
$ nix-build -A grpc release.nix
```
... then pass that library as input to `stack`
* add ServiceOptions for generated servers
* drop opt prefix in ServiceOptions fields
* add default options
* tweak exports, add docs
* re-export stuff from Generated so that users need don't need to import lots of modules
* remove threaded from library -- doesn't do anything
* add defaultServiceOptions export
* more exports
* export GRPCMethodType