Skip to content

7.0.0

Compare
Choose a tag to compare
@lalo lalo released this 24 Oct 23:38
· 594 commits to master since this release

7.0.0: 2017-10-24

  • gbc & compiler library: 0.10.1.0
  • IDL core version: 2.0
  • IDL comm version: 1.2
  • C++ version: 7.0.0
  • C# NuGet version: 7.0.0
  • C# Comm NuGet version: 0.13.0

gbc and Bond compiler library

  • Add service/method annotations in C# for Comm and gRPC.
  • Add service/method metadata support in C++ for gRPC.
  • C++ codegen now uses std::allocator_traits
    for rebinding allocator types.

C++

  • Added bond::make_box helper function to create bond::Box<T> instances.
  • When Unicode conversion fails during JSON deserialization to wstring, a
    bond::CoreException is now thrown instead of a Boost exception.
  • When SimpleJSON deserializes a map key with no matching value, a
    bond::CoreException is now thrown.
  • When SimpleJSON deserializes a map key of non-primitive type, a
    bond::CoreException is now thrown.
  • Errors from some versions of G++ like "non-template type Deserialize
    used as a template" have been fixed.
    Issue #538
  • Guard against overflows in OutputMemoryStream, blob, and SimpleArray.
  • Use RapidJSON's iterative parser to handle deeply nested JSON data without
    causing a stack overflow.
  • Guard against min/max being function-style macros in more places.
  • Allow Bond-generated C++ types to use non-default-constructable
    allocators. (This works even on MSVC 2013 by only compiling the
    generated-type's default constructor if it is used. The default
    constructor is now a templated constructor that is invokable with zero
    arguments.)
  • Fixed some macro uses that did not have sufficient parenthesis around
    parameters and resulted in compiler errors.
  • Added the bond::ext::gRPC::shared_unary_call type. This type can be used
    when shared ownership semantics are needed for unary_call instances.
  • Provide compile-time access to metadata about gRPC services and methods.
  • Using bond::ext::gRPC::wait_callback no longer causes a shared_ptr cycle
    and the resulting resource leak.
  • Ensure that bond_grpc.h and bond_const_grpc.h are generated when the
    CMake variable BOND_ENABLE_GRPC is set to that importing bond.bond and
    bond_const.bond when defining a service works.
  • Added bond::capped_allocator adapter that will allow to limit the max
    number of bytes to allocate during deserialization.

C#

  • Breaking change The code generation MSBuild targets no longer support
    Mono's xbuild: only MSBuild is supported. Mono has
    deprecated xbuild in favor of MSBuild
    now that
    MSBuild is open source and cross-platform.
  • Breaking change The code generation MSBuild targets now automatically
    compile the generated _grpc.cs files if --grpc is passed to gbc.
    Explicit <Compile Include="$(IntermediateOutputPath)foo_grpc.cs" />
    lines in MSBuild projects will need to be removed to fix error MSB3105
    about duplicate items. See commit
    a120cd99
    for an example of how to fix this.
    Issue #448
  • Breaking change The low-level API IParser.ContainerHandler now has an
    arraySegment parameter for the converted blob.
  • The code generation MSBuild targets will now skip compiling the
    _types.cs files when --structs=false is passed to gbc.
  • Added Bond.Box.Create helper method to create Bond.Box<T> instances.
  • Reflection.IsBonded now recognizes custom IBonded implementations.
  • Use Newtonsoft's JSON.NET BigInteger support -- when available -- to
    handle the full range of uint64 values in the SimpleJson protocol (.NET
    4.5 or greater, .NET Standard 1.6 or greater).
  • Bond.IO.Unsafe.InputStream can now be used with streams that do not
    implement Stream.Seek, like
    System.IO.Compression.GzipStream.
    Issue #498
  • Fix a bug in CompactBinaryWriter when using v2 that repeated first pass
    when a bonded field was serailized, resulting in extra work and extra
    state left in the CompactBinaryWriter.
  • Apply IDL annotations to services and methods for gRPC.
    Issue #617
  • Fixed a bug that produced C# code that couldn't be compiled when using
    Bond-over-gRPC with a generic type instantiated with a collection.
    Issue #623
  • When targeting .NET 4.5, avoid resolving external entities when using
    SimpleXmlReader.
  • Remove redundant conversions during serialization of aliased blobs.

C# Comm

  • Apply IDL annotations to services and methods for Comm.