Bond v5.3.0 Release Notes

Release Date: 2017-04-12 // about 7 years ago
    • 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.