Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update module github.com/ugorji/go/codec to v1.2.12 #190

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Nov 1, 2021

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
github.com/ugorji/go/codec v1.1.7 -> v1.2.12 age adoption passing confidence

Release Notes

ugorji/go (github.com/ugorji/go/codec)

v1.2.12: 1.2.12

Compare Source

Release 1.2.12

This is a production release of go-codec.

Changes include:

  • expose (En|De)coder.HandleName()
  • cbor: fix indefinite stream conformance
  • codecgen: use base32 to generate field names
  • return io.ErrUnexpectedEOF (not io.EOF) when EOF is reached while needing more data

Please try it out and share your experiences.

v1.2.11: 1.2.11

Compare Source

Release 1.2.11

This is a production release of go-codec.

Changes include:

  • codecgen: fix decoding missing fields of struct from array, due to double counter increment

Please try it out and share your experiences.

v1.2.10: 1.2.10

Compare Source

Release 1.2.10

This is a production release of go-codec.

Changes include:

  • codecgen: fix error decoding struct from array, due to misplaced counter increment
  • fix error encoding interface{} map key in Canonical mode

Please try it out and share your experiences.

v1.2.9: 1.2.9

Compare Source

This is a production release of go-codec.

Changes include:

  • faster growslice (as zero'ing memory only done if needed)
  • make decoding via io.Reader more robust
  • read and write optimizations
  • clean up code across the board
  • benchmark decoding for different engines against same set of encoded bytes
  • improve inline'ability of code across runtime and codecgen'erated codebases

Please try it out and share your experiences.

v1.2.8: 1.2.8

Compare Source

This is a production release of go-codec.

Changes include:

  • treat an array with all zero values as empty, and omit if omitempty=true
  • module support: ensure module dependencies are auto-generated by go tool
  • support go 1.20: needed fix for growslice in unsafe mode
  • add support for go 1.13 error wrapping
  • codecgen: optimize canonical encoding, handling extensions, named types and ordered keys
  • codecgen: handle canonical encoding of map and struct well
  • codecgen: skip type aliases
  • codecgen: fix spurious errors in generated code calling codec.Selfer encode methods

Please try it out and share your experiences.

v1.2.7: 1.2.7

Compare Source

This is a production release of go-codec.

Changes include:

  • support registering extension functions for time.Time
  • fix bugs with encoding/decoding very-nested slices in specific cases

Please try it out and share your experiences.

v1.2.6: 1.2.6

Compare Source

This is a production release of go-codec.

Changes include:

  • support EncodeOptions.NoAddressableReadonly option
  • streamline/reduce size of helper types
  • optimize side(En|De)code and (En|De)codeExt calls
  • decode a number from any number in the stream i.e.
    you can decode a float/integer/unsigned integer from any number in stream
  • clean up tests so they work completely regardless if we recover from panics
  • improve inlining of common functions

Please try it out and share your experiences.

v1.2.5: 1.2.5

Compare Source

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.

v1.2.4: 1.2.4

Compare Source

Release 1.2.4

This is a production release of go-codec.

This is a very important release, which focused on optimization across the board to
ensure that go-codec is the most performant library for popular encoding formats.

Optimizations across the board include:

  • optimization by eliding allocation where not necessary e.g.
    • when encoding non-addressable value with ptr receiver
    • map iteration/access
    • decoding floats
    • creating slices or sub-slices (removing temporary slice allocated on heap)
    • decoding map keys if both key and value kinds are scalars
    • decoding map values if value kind is a scalar
  • better reuse of pool'ed []byte(s)
  • leveraging mapXXX_fastXXX calls where possible
  • better inlining (where applicable) e.g. arrayStart, mapStart, etc
  • support complex numbers (where we treat complex numbers as floats with imaginary part = 0)
  • optimize encoding and decoding arrays, including using fast-paths for slices as applicable
  • use runtime's growslice algorithm when growing arrays for better performance
  • optimize nextValueBytes and swallow so they do not allocate when applicable e.g.
    do not allocate/copy bytes if swallow is called or you were decoding from a []byte (just return a sub-slice)
  • optimize isEmptyStruct to just compare if value == zero'es (instead of field by field),
    simulating comparing to zero value.

To guarantee better fairness in benchmarking, we did the following:

  • use common types in benchmarks and common methods to ensure fairness in benchmarks
  • run benchmarks with ZeroCopy=true and (MapValue|Interface|SliceElement)Reset = true,
    aligning with how other libraries operate by default

With these changes, we have reflection-based mode performing within 25% of codecgen,
with similar allocation numbers as codecgen. For example, encoding typically has just 1
allocation without codecgen (just as in codecgen).

This is the best release yet. Please try it out and share your experiences.

v1.2.3: 1.2.3

Compare Source

This is a production release of go-codec.

This optimizes decoding for zero-copy mode when decoding from a string or []byte.

With this mode, we see 50% reduction in allocation in both codecgen and normal execution,
and this gives performance better than other libraries (easyjson, json-iterator, etc)
while providing much more features and supported formats (json, cbor, msgpack, simple, etc).

v1.2.2: 1.2.2

Compare Source

This is a production release of go-codec.

This includes a fix for decoding into nested anonymous fields (github issue #​350).

v1.2.1: 1.2.1

Compare Source

This is a production release of go-codec.

This includes a fix for codecgen when using omitempty (github issue #​344).

v1.2.0: 1.2.0

Compare Source

This is a production release of go-codec.

Today marks 1 full year after the 11th day of the 11th month of last year,
a very very special day in my life.

On this very special day, we release the latest patch release of v1.1 and it
matches with the first release of v1.2.0 of go-codec.

This release should be about 10% faster during decode than previous releases.

Beyond performance, the focus was on cleaning up the codebase while maintaining support
for much earlier releases of go, and supporting gccgo.

Changes

  • support gccgo
  • improve performance in looking up fast-path functions or cached struct information
  • optimize json's encoding and decoding of numbers (integers and floats) and strings
  • optimize base reading primitive functions, to reduce pointer-chasing
  • optimize map iteration and lookup

See benchmark results run on a very complicated struct full of embedded types, with multiple nested levels.
Each struct value encodes as 47K of tightly packed json or 37K of binary msgpack or cbor.

The main goal has always been to provide the most feature-rich and performant package
for encoding and decoding of multiple popular binary and text formats in a consistent way.

We believe we continue to achieve that!

v1.1.14: 1.1.14

Compare Source

This is a production release of go-codec.

Today marks 1 full year after the 11th day of the 11th month of last year,
a very very special day in my life.

On this very special day, we release the latest patch release of v1.1 and it
matches with the first release of v1.2 of go-codec.

This release should be about 10% faster during decode than previous releases.

Beyond performance, the focus was on cleaning up the codebase while maintaining support
for much earlier releases of go, and supporting gccgo.

Changes

  • support gccgo
  • improve performance in looking up fast-path functions or cached struct information
  • optimize json's encoding and decoding of numbers (integers and floats) and strings
  • optimize base reading primitive functions, to reduce pointer-chasing
  • optimize map iteration and lookup

See benchmark results run on a very complicated struct full of embedded types, with multiple nested levels.
Each struct value encodes as 47K of tightly packed json or 37K of binary msgpack or cbor.

The main goal has always been to provide the most feature-rich and performant package
for encoding and decoding of multiple popular binary and text formats in a consistent way.

We believe we continue to achieve that!

v1.1.13: 1.1.13

Compare Source

This is a production release of go-codec.

This release should be about 10% faster during decode than previous releases.

Changes

  • 10% faster on decode and encoding if omitempty is configured
  • improved performance in looking up struct field values when decoding structs
  • codecgen: support generating reduced code for json only, omitempty support, or to_array support
  • omitempty: support for IsCodecEmpty, a custom way of checking if a value is empty
  • omitempty: optimize comparing to zero'es to check if a value is empty
  • stack overflow/circular references: optimize check by push/popping a stack

See benchmark results run on a very complicated struct full of embedded types, with multiple nested levels.
Each struct value encodes as 47K of tightly packed json or 37K of binary msgpack or cbor.

The main goal has always been to provide the most feature-rich and performant package
for encoding and decoding of multiple popular binary and text formats in a consistent way.

We believe we continue to achieve that!

v1.1.12: 1.1.12

Compare Source

UPDATE: v1.1.12 includes fix for a race detector issue #​336.

This is a production release of go-codec.

Today marks 11 months after the 11th day of the 11th month of last year.

On this very special day, we release v1.1.11 of go-codec.

This day holds a special place in my heart on a very personal level.

I hope you enjoy the immense effort put into refining and cleaning
out the edges go-codec, delivered in v1.1.11

The quality and performance should shine across:

  • binary size
  • performance/speed
  • memory use
  • feature rich (more than any other library in the go ecosystem)

See benchmark results run on a very complicated struct full of embedded types, with multiple nested levels.
Each struct value encodes as 47K of tightly packed json or 37K of binary msgpack or cbor.

High level benefits include

  • significantly expanded test suite, bringing code coverage to 92%
  • remove limits on struct embedding
  • optimize struct field access, json parsing, free list usage, etc
  • multiple performance improvements across the board

The main goal has always been to provide the most feature-rich and performant package
for encoding and decoding of multiple popular binary and text formats in a consistent way.

We believe we continue to achieve that!

v1.1.11: 1.1.11

Compare Source

UPDATE: v1.1.1 introduced a race detector issue #​336, which has now been fixed in v1.1.12. Please upgrade.

This is a production release of go-codec.

Today marks 11 months after the 11th day of the 11th month of last year.

On this very special day, we release v1.1.11 of go-codec.

This day holds a special place in my heart on a very personal level.

I hope you enjoy the immense effort put into refining and cleaning
out the edges go-codec, delivered in v1.1.11

The quality and performance should shine across:

  • binary size
  • performance/speed
  • memory use
  • feature rich (more than any other library in the go ecosystem)

See benchmark results run on a very complicated struct full of embedded types, with multiple nested levels.
Each struct value encodes as 47K of tightly packed json or 37K of binary msgpack or cbor.

High level benefits include:

  • significantly expanded test suite, bringing code coverage to 92%
  • remove limits on struct embedding
  • optimize struct field access, json parsing, free list usage, etc
  • multiple performance improvements across the board

The main goal has always been to provide the most feature-rich and performant package
for encoding and decoding of multiple popular binary and text formats in a consistent way.

We believe we continue to achieve that!

v1.1.10: 1.1.10

Compare Source

This is a production release of go-codec.

The main benefits are much expanded testing and associated code fixes, re-factoring and performance improvements:

  • removed some code cruft
  • expand tests and fix issues around extensions support in codecgen
  • clean up codebase for easier maintenance
  • and many general performance improvements ...

The main goal has always been to provide the most feature-rich and performant package
for encoding and decoding of multiple popular binary and text formats in a consistent way.

We believe we continue to achieve that!

v1.1.9: 1.1.9

Compare Source

This is a production release of go-codec.

The main benefits are streamlined go modules support, re-factoring and performance improvements:

  • removed some code cruft
  • moved codec/bench into its own module, so it's requirements do not pollute the core library dependencies
  • implement reading the next value in the stream natively, provided by each format's handle
  • remove mode of reading the next value in the stream by decoding into a throwaway value and tracking bytes read
  • clean up code to enable better inlining for better performance
  • fix and expand tests to get richer code coverage;
    go test -cover reports > 90%
  • and many general performance improvements ...

The main goal has always been to provide the most feature-rich and performant package
for encoding and decoding of multiple popular binary and text formats in a consistent way.

We believe we continue to achieve that!

v1.1.8: 1.1.8

Compare Source

This is a production release of go-codec.

The main benefits are a number of bug fixes and some performance improvements:

  • reduce binary size by 30% by reducing types for which we generate fast-path functions
  • support OptimumSize encode option: cbor uses to encode floats in smallest size e.g. binary16
  • decode stream nil value in mapping as a nil pointer in memory (previously set to zero value)
  • validate that malformed streams can be decoded without causing stack overflow or out of memory errors
  • json: return EOF in all scenarios when end of stream is reached (previously returned other error sometimes)
  • json: handle malformed unicode correctly in corner cases
  • and some general performance improvements ...

The main goal has always been to provide the most feature-rich and performant package
for encoding and decoding of multiple popular binary and text formats in a consistent way.

We believe we have achieved that!


Configuration

📅 Schedule: Branch creation - "on the first day of the month" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@sonarcloud
Copy link

sonarcloud bot commented Nov 1, 2021

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@renovate renovate bot force-pushed the renovate/github.com-ugorji-go-codec-1.x branch from 15c444b to 53a5967 Compare March 7, 2022 09:43
@renovate renovate bot changed the title Update module github.com/ugorji/go/codec to v1.2.6 Update module github.com/ugorji/go/codec to v1.2.7 Mar 7, 2022
@sonarcloud
Copy link

sonarcloud bot commented Mar 7, 2022

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@renovate renovate bot force-pushed the renovate/github.com-ugorji-go-codec-1.x branch from 53a5967 to d478d9f Compare March 17, 2023 05:54
@renovate renovate bot changed the title Update module github.com/ugorji/go/codec to v1.2.7 fix(deps): update module github.com/ugorji/go/codec to v1.2.11 Mar 17, 2023
@sonarcloud
Copy link

sonarcloud bot commented Mar 17, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@renovate renovate bot force-pushed the renovate/github.com-ugorji-go-codec-1.x branch from d478d9f to c237268 Compare November 30, 2023 10:39
@renovate renovate bot changed the title fix(deps): update module github.com/ugorji/go/codec to v1.2.11 fix(deps): update module github.com/ugorji/go/codec to v1.2.12 Nov 30, 2023
Copy link

sonarcloud bot commented Nov 30, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants