1.2.5
This is a production release of go-codec.
This is a very important release, building upon the optimization introduced in v1.2.4.
Changes include:
- support gollvm in addition to gccgo in default high-performance mode
- support codec.safe and codec.notfastpath as preferred build tags (replacing safe and notfastpath)
- support Canonical mode with MissingFielder
- robust handling of codecgen caveats wrt Canonical|CheckCircularRef flags and MissingFielder implementations
- robust handling of transient values, where we track if a value has internal pointers and handle appropriately
- reduce use of global values: all in-use values are scoped to an Encoder or Decoder
- implement stateManager for Encoder/Decoder, supporting capture, reset and restore functions.
- side encoding or decoding can now reuse an Encoder/Decoder, leveraging state management to
capture its state, do something else, then restore its state and continue - support running all tests in parallel, so we can shake out any concurrency issues
- Fix issue in rpc where writer was not being flushed, causing a hang where reader was
waiting on an encoded value - Support shallow copies of a Handle, to support parallel execution where we need to
temporarily change some Handler fields
This is the best release yet. Please try it out and share your experiences.