bytebuild/CHANGELOG.md
2020-06-01 11:28:35 -04:00

3.8 KiB

Revision history for bytebuild

Note: Prior to version 0.3.4.0, this library was named small-bytearray-builder, not bytebuild. The library small-bytearray-builder is now just a compatibility shim to ease the migration process.

0.3.6.0 -- 2020-??-??

  • Add replicate.

0.3.5.0 -- 2020-05-01

  • Add wordLEB128 and word64LEB128.
  • Add integerDec and naturalDec.
  • Add word48PaddedLowerHex.
  • Add newBuilderState, closeBuilderState, commitDistance, and commitDistance1 to the unsafe module.

0.3.4.0 -- 2020-02-27

  • Rename the library from small-bytearray-builder to bytebuild, and move modules from the Data.ByteArray namespace to the Data.Bytes namespace. This is not considered a breaking change since small-bytearray-builder continues to exist as a compatibility shim, reexporting the modules with their old names.
  • Add wordPaddedDec4.
  • Add reversedOnto and commitsOntoChunks.
  • Add ascii(2|3|4|5|6).
  • Add cstringLen unbounded builder.
  • Add copy2.

0.3.3.0 -- 2020-02-10

  • Add word64PaddedLowerHex and word32PaddedLowerHex
  • Add word256Array{LE,BE} and word256{LE,BE}
  • Add word{128,256}Padded{Lower,Upper}Hex

0.3.2.0 -- 2020-01-20

  • Add putMany, which allows pasting into the same mutable byte array over and over.
  • Add consLength.
  • Add putManyConsLength, useful for chunked HTTP encoding.
  • Add runOnto
  • Add Data.Bytes.Chunks.length
  • Add wordPaddedDec2 and wordPaddedDec9.
  • Add word8PaddedLowerHex.

0.3.1.0 -- 2019-11-20

  • Add big-endian and little-endian parsers for Word128. This includes both the single and multiple element variants.
  • Export reverseCommitsOntoChunks from the Unsafe module.
  • Add Semigroup and Monoid instances for Chunks.
  • Add consLengthLE32.
  • Add fromEffect to the unsafe interface.

0.3.0.0 -- 2019-10-17

  • Breaking change: Change the internal implementation of Builder. This now works a lot more like the builder from bytestring. It accumulates chunks and can do a zero-copy appends when working with a sufficiently large immutable chunk. This introduces a mild performance regression (around 10%), but it makes the libary more generally useful.
  • Introduce consLengthBE32 and consLength64BE for efficient serialization of wire protocols that require prefixing a payload with its length.
  • Add int{16,32,64}BE and int{16,32,64LE} as conveniences.
  • Add little-endian encoding functions for Word16, Word32, and Word64.
  • Add big-endian and little-endian functions for copying a PrimArray of numbers (both signed and unsigned) into a builder.
  • Add flush, copy, and insert for better control when converting byte sequences to builders.
  • Add shortByteString to improve interoperability with the bytestring library.

0.2.1.0 -- 2019-09-05

  • Stop exporting data constructor in Data.ByteArray.Builder. This is technically a breaking change, but it was only exported by accident. So, with this release, we will technically violate PVP, and the previous release will be deprecated on hackage.
  • Add more functions for encoding unsigned words: word16PaddedLowerHex, word16LowerHex, word16UpperHex, word8LowerHex.
  • Unroll loop for word8Dec.

0.2.0.0 -- 2019-09-04

  • Use natural-arithmetic to make manipulation of bounds possible.
  • Add more functions for encoding numbers. This includes word8/16/32/64 and int8/16/32/64.
  • Rename the modules.
  • Correct a serious error in the implementation of bytes.
  • Make pasteGrowST accept an initial offset.
  • Add a pasteGrowST for length-indexed builders.
  • Add function for rendering floating-point numbers in a slightly inaccurate way.
  • Add functions for encoding ShortText as UTF-8 and as a JSON string.

0.1.1.0 -- 2019-07-30

  • Add several additional functions for encoding numbers.

0.1.0.0 -- 2019-06-25

  • First version