The Hackage package ansi-terminal as of version 0.6.3 is no longer
building with GHC 7.8.3, which causes out CI builds to fail.
Issue https://github.com/feuerbach/ansi-terminal/issues/22 has been
opened about this, but until it is resolved, we need to use an earlier
version.
* gbc can now generate proxies and service stubs for gRPC
* The assembly Bond.Grpc.dll contains glue code
* Documentation updated
* Bond Comm deprecation notice added
Closes https://github.com/Microsoft/bond/pull/386
Bond's warning.h header was suppressing warnings about names shadowing
each other. The supressions have been removed, and renames have been
made in library code.
For generated member function parameters, a name that doesn't conflict
with any fields names is now chosen.
gbc-tests no longer builds with derive 2.6 or later. While we
investigate that problem, pin the dependency to < 2.6 to keep gbc-tests
building.
Mitigates https://github.com/Microsoft/bond/issues/342
- Update GBC to version 0.4.1.0
- Base 4.9 brought some impossible to fulfill dependencies
- Update tests that are affected by bump to aeson
- Update json golden test files to a pretty print consistent form and avoid ambiguity when encoding and comparing
We're having problems building with Diff 0.3.3 on GHC versions older
than 7.10. Until we can resolve those, pin Diff to 0.3.2 so that we can
release Bond 4.1.0.
We are relying on some implementation details of GHC, like the minimum
size of Int and language extensions. gbc/bond might work with other
Haskell compilers, but we don't test with them.
We don't list all the GHC versions that we end up using, as Travis CI
can change the specific versions on us.
Upgrade to scientific-0.3.4.6 or later so that when we serialize whole
numbers in JSON we don't get trailing ".0" values.
Before, 2 would serialize as "2", but 0 would serialize "0.0". Now, 2
serializes as "2", and 0 serializes as "0".
Since the golden tests have the results of JSON serialization commited,
we have to be on one side or the other of scientific-0.3.4.6. We're
after it now. (Unless, we needlessly complicate the tests with some sort
of custom comparisons or smudge/clean process.)
See also https://github.com/bos/aeson/issues/369 and
0f28347b4a
A temporary workaround until `exceptions` can be built with
`transformers` 0.5. The work is already in progress but it depends on
some bigger changes in transformers-compat
(see https://github.com/ekmett/exceptions/pull/51).
Running:
gbc schema --runtime-schema example.bond
will generate SchemaDef for each non-generic struct defined in the .bond
file(s). The SchemaDef(s) will be serialized using Simple JSON protocol
into file(s) named <source-file-name>.<struct-name>.json.
Fixes#75.
Unfortunately the conflict between optparse-applicative, which sets an
upper bound on the version the process package dependency and cmdargs
which only has a lower bound is going to reappear on every release of
process.
The problem happens when gbc dependencies are first installed in the
sandbox and then we try to build gbc-tests using the same sandbox.
The gbc-tests dependencies require process < 1.3 leading to dependency
conflicts if the sandbox has been first populated with dependencies of
Bond library before configuring the test suite.
This is a (hopefully) temporary workaround until
pcapriotti/optparse-applicative#150 is merged.
Make each generated file comparison into a goldenTest case. Golden files
can be updated/added for changes in codegen/tests using --accept command
line switch.
Some of the functions are used only internally by the parser while
others are used by the built-in codegen templates but are to specific to
expose them as public APIs. If a custom codegen needs similar
functionality it can be easily implemented using the more generic
helpers.