Bond v4.3.0 Release Notes
Release Date: 2016-08-23 // over 7 years ago-
gbc
& compiler library: 0.5.0.0- ๐ IDL core version: 1.0 (first release)
- ๐ IDL comm version: 1.0 (first release)
- C++ version: 4.3.0
- C# NuGet version: 4.3.0
- C# Comm NuGet version: 0.6.0
gbc
and Bond compiler library- ๐ฅ Breaking change: Runtime SchemaDef now includes information about whether BT_LIST fields are nullable or blobs. Issue #161
- ๐ User-defined
TypeMapping
s can now be created. This makes is easier to implement code generation for new languages. Pull request #172 - 0๏ธโฃ Validate default value type mistmatches. Issue #72 Issue #128
- 0๏ธโฃ Validate default value out-of-range values. Issue #73
- 0๏ธโฃ Fail when struct field has default value of
nothing
. Issue #164 - 0๏ธโฃ Fail when enum field doesn't have default value. Issue #177
- 0๏ธโฃ Validate default value of type aliases
- ๐ Generated types will used
= default
move constructors if possible. This results in many generated types havingnoexcept
move constructors. - ๐ Fix a bug where, if a Bond namespace contained a struct and an enum value with the same name, generated C++ would contain ambiguous references. Issue #202
IDL core
- Set up a separate IDL directory so that IDL is independent of language bindings. Pull request #219
IDL comm
- Set up a separate IDL directory so that IDL is independent of language bindings. Convert comm IDL files to use C++-style naming convention. Pull request #219
C++
- ๐ Improvements in the
nullable
implementation. Pull request #174- Correctly use allocator model.
- Reduce size of
nullable
in the normal case. - And others
- โ Runtime SchemaDef now includes information about whether BT_LIST fields are nullable or blobs. Issue #161
- ๐ The following Bond types have (possibly conditional)
noexcept
move constructors:blob
,bonded
,maybe
,nullable
,RuntimeSchema
,value
.
C#
- Bond can now be used with Newtonsoft.Json >= 7.0.1 and < 10
- โ Runtime SchemaDef now includes information about whether BT_LIST fields are nullable or blobs. Issue #161
C# Comm
- ๐ฒ Logging interface revamped to make it non-static, eliminate boilerplate code, and to handle
logging-related exceptions gracefully.
LogHandler
renamed toILogSink
.TransportBuilder.SetLogSink
added to associate a logger with a transport.TransportBuilder.EnableDebugLogging
added to control whether debug logs are emitted or not.- The
ILogSink.Log
method is now provided a pre-formatted string instead of a format string and its arguments.
- Transport is now parameterized with Connection and Listener
implementations. This eliminates the need to cast the results of
transport.ConnectToAsync()
andtransport.MakeListener()
to transport-specific subtypes. - Epoxy has a hook for performing custom host to IP address resolution. This
is configured with
EpoxyTransportBuilder.SetResolver
. - Bond-generated Errors now give clients opaque GUIDs. These GUIDs can be matched against emitted metrics for debugging.
- ๐ง Epoxy can now be configured to use TLS to secure the connection.
- TLS configuration is set via
EpoxyTransportBuilder.SetClientTlsConfig
/EpoxyTransportBuilder.SetServerTlsConfig
. - See the TLS example for even more details.
- TLS configuration is set via