You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Breaking change In the Bond Haskell library, the Service type
has a new field serviceBase.
C++ codegen now generates extern templates
of bond::Apply instead of overloads.
C++ codegen hides FieldTemplate details, shortening symbol names.
C++
Breaking change A C++11 compiler is now required. The minimum
supported C++ compiler versions are now:
Clang 3.4 or newer
GNU C++ 4.7 or newer
Microsoft Visual C++ 2013 or newer
Breaking change The generated apply.h/.cpp files now contain extern templates
of bond::Apply instead of overload implementations. Calls to bare Apply
or TypeNamespace::Apply must be changed to bond::Apply.
Breaking change Users who are implementing custom streams are now
required to provide the free functions CreateInputBuffer, CreateOutputBuffer and GetBufferRange, depending on which scenarios
are used (there will be a corresponding compilation error for each case).
Users who were mistakenly calling bond::Merge<T> with explicit an
template argument will get a compilation error. To fix, remove the <T> part.
In addition, users of MSVC12 are required to define a range_type
typedef as a return type of corresponding GetBufferRange inside
their custom input buffer implementation.
Breaking change The bond::customize<protocols> has been removed. All the
public APIs that require a protocol list (e.g. bond::Marshal) now accept
an extra template argument Protocols which defaults to bond::BuiltInProtocols.
Custom input streams now require bond::type_id<> to be specialized with a
unique magic number. For more details please see the bf example.
The bond::Apply function now has a uniform signature. Call sites for the Marshaler<Writer> transform overload that were mistakenly passing Writer explicitly (e.g. bond::Apply<Writer>(marshaler, value)) will
now get a compiler error. To fix, remove the <Writer> part: bond::Apply(marshaler, value).
Fixed a bug that caused serialization using CompactBinaryWriter<OutputCounter> (to get the expected length of
serializing with compact binary) to produced bogus results.
Fixed custom streams
support which was broken for some scenarios.
For Visual C++ 2017 compability, RapidJSON v1.0.0 or newer is now
required. The RapidJSON submodule that Bond uses by default has been
updated to v1.1.0 due to a warning from clang in earlier versions.
C++ codegen hides FieldTemplate details, shortening symbol names.
C#
Breaking change Support for .NET 4.0 has been dropped from the supported frameworks.
Breaking change The deprecated type Bond.BondReflection has been
removed. The type Bond.Reflection should be used instead.
Breaking change Bond assemblies are now strong-name signed
with the bond.snk
key in the repository instead of with a Microsoft key. This allows anyone
to produce compatible assemblies, not just Microsoft. Official
distribution of Bond will continue to be Authenticode signed
with a Microsoft certificate. Issue #414
The new public key for assemblies is now 00240000048000009400000006020000002400005253413100040000010001000d504ac18b4b149d2f7b0059b482f9b6d44d39059e6a96ff0a2a52678b5cfd8567cc67254132cd2debb5b95f6a1206a15c6f8ddac137c6c3ef4995f28c359acaa683a90995c8f08df7ce0aaa8836d331a344a514c443f112f80bf2ebed40ccb32d7df63c09b0d7bef80aecdc23ec200a458d4f8bafbcdeb9bf5ba111fbbd4787
Breaking change Bond assemblies now have assembly and file versions
that correspond to their NuGet package version. Strong name identities
will now change release-over-release in line with the NuGet package
versions. Issue #325
The codegen MSBuild targets will now re-run codegen if gbc itself has been
changed.
Fixed a bug where JSON and XML protocols would permit the serialization of
non-nullable string fields that were set to null instead of throwing a
NullReferenceException. Issue #417