Skip to content

5.3.0

Compare
Choose a tag to compare
@chwarr chwarr released this 13 Apr 22:28
· 780 commits to master since this release

5.3.0: 2017-04-12

  • gbc & compiler library: 0.9.0.0
  • IDL core version: 2.0
  • IDL comm version: 1.2
  • C++ version: 5.3.0
  • C# NuGet version: 5.3.0
  • C# Comm NuGet version: 0.11.0

gbc and Bond compiler library

  • C++ codegen ensures that parameter names do not shadow field names.
  • When generating C++ apply files, there are now explicit bond::Apply<>
    instantiations for CompactBinaryWriter<OutputCounter> and
    SimpleBinaryWriter<Null> writers.
    Pull request #373
    • Breaking change (Haskell library only):
      Language.Bond.Codegen.Cpp.ApplyOverloads.Protocol is now a union of
      ProtocolReader and ProtocolWriter to permit mixing and matching of
      reader/writer protocols without having to explicitly compute the full
      cross product.
  • Add gbc flags to pick which C# files to generate (structs, gRPC, and
    comm). Only structs are generated by default.
  • gbc ensures that method names are unique within a service.
    Issue #381

C++

  • Fix Python shared_ptr converter build break with Boost 1.63.
  • Improve compliance with
    Microsoft's SDL.
  • Eliminate need for warning suppression on MSVC14 via warning.h in Bond
    itself. warning.h is still in place on MSVC12; furthermore, we don't alter
    warning.h for now as it may be depended upon by application code.
  • Avoid unaligned memory access on non-x86/x64 platforms.
    Issue #305
  • Improve compliance with strict-aliasing rules.
    • Bond now builds on Clang/GCC with -fstrict-aliasing.
  • When generating C++ apply files, there are now explicit bond::Apply<>
    instantiations for CompactBinaryWriter<OutputCounter> and
    SimpleBinaryWriter<Null> writers.
    Pull request #373
  • Improve C++ allocator support
    Issue #379
    Pull request #380
    • Support C++11 and above allocator model for rebind
    • Simplify detection of the default allocator
  • Remove per-field instantiation of DynamicParser<>::UnknownFieldOrTypeMismatch method.

C#

  • Added gRPC integration. See the
    Bond-over-gRPC manual.
  • Added controls to cap incremental allocation between reads in
    Bond.IO.Unsafe.InputStream.
  • Extended fix for bug parsing JSON when a string value is a date.
    Pull request #358
  • Bond C# 5.1.0 accidentally broke backward compability by renaming
    Bond.Reflection to Bond.BondReflection. This has been fixed:
    Bond.BondReflection was unrenamed back to Bond.Reflection, and a shim
    Bond.BondReflection type now redirects all calls to their original names
    to minimize further breakage.
    Issue #369
    • Code that started using Bond.BondReflection by name will encounter
      warning CS0618 indicating use of an obselete method/type. To fix this,
      use the original name Bond.Reflection. This warning can be
      suppressed if needed. However...
    • ...the shim type Bond.BondReflection will be removed during or after
      the next major release of C# Bond.

C# Comm

  • Breaking change To generate C# Comm files, be sure to pass the
    --comm flag to gbc.
    See how the pingpong example was updated.
  • C# Comm is now deprecated. We recommend that you use Bond-over-gRPC. See
    the
    Bond-over-gRPC manual.
  • EpoxyListener's StopAsync() now stops all the outstanding connections that
    it accepted.
  • EpoxyTransport's StopAsync() now stops all the connections and listeners
    that it created.