Skip to content

2.1.0

Latest

Choose a tag to compare

@tsolomko tsolomko released this 21 May 08:50
2.1.0
e1a5443
  • Swift versions from 5.3 up to and including 5.8 are no longer supported.
  • Cocoapods and Carthage installation methods are no longer supported.

Comment: It is my understanding that Cocoapods is effectively deprecated with its trunk repository switching to read-only mode later this year. As for Carthage, I am just tired.

  • Enabled visionOS platform for Swift Package Manager.
  • Increased minimum deployment versions for Darwin platforms: macOS from 10.13 to 14.0, iOS from 11.0 to 17.0, tvOS from 11.0 to 17.0, and watchOS from 4.0 to 10.0.
  • Significantly improved performance of L/MsbBitWriter.write(unsignedNumber:bitsCount:) functions.

Comment: This improvement is achieved by processing the bits of the unsignedNumber in a more clever manner (in "bulk"). Since write(number:bitsCount:) and write(signedNumber:bitsCount:representation:) functions rely on write(unsignedNumber:bitsCount:), these changes affect these two as well.

  • General performance improvement of all L/MsbiBitWriter functions.

Comment: Bit writers now use [UInt8] for the internal storage of output. This enables much faster writing operations. The data property is now a computed property which converts [UInt8] into Data. Obviously, accessing data property is now slightly more "expensive" which is outweighed by the gains in the performance of much more frequently used writing functions.

  • Significantly improved performance of L/MsbBitReader number reading functions.

Comment: Similarly to bit writers, the input bits are now processed in a smarter way (in "bulk"). Performance improvements are more significant the more bits are read at the same time.