Releases: attaswift/BigInt
Releases · attaswift/BigInt
3.0.2
3.0.1
3.0.0
This is a major release upgrading BigInt to the new integer protocols introduced in Swift 4 as part of SE-0104, Protocol-oriented integers.
- Adopting the new protocols involved major, breaking changes throughout the API. These aren't individually listed here.
- The
BigUInt
struct now provides inline storage for big integers that fit inside two words. This optimization speeds up conversions from built-in fixed-width integer types, amongst other frequent operations. BigInt
andBigUInt
implements the newCodable
protocol. In both cases, values are encoded in an unkeyed container starting with a string indicating the sign ("+"
or"-"
), followed by a sequence of 64-bit unsigned integers representing component words, from least to most significant.- New method:
BigInt.modulo
, contributed by @FabioTacke. BigUInt
does not implementCollection
in this release. The collection of words is available in the standard read-onlywords
property. Direct public access to collection methods have been removed; if you have been manipulating big integers using collection methods, you need to rewrite your code. If you have a usecase that isn't covered by the public API, please submit a PR adding the missing functionality. (Public read-write access to the underlying storage insideBigUInt
will not be restored, though.)
BigInt is now part of the Attaswift project. The bundle identifiers in the supplied Xcode project have been updated accordingly.
Note that the URL for the package's Git repository has changed; please update your references.
2.1.2
This release contains the following bugfix:
- Issue #12: The iOS target in the supplied Xcode project file no longer copies extraneous files
as resources into the framework bundle. The set of such files included generate-docs.sh, which
led to App Store rejections for apps that build BigInt using the project file.
(Thanks to @arrrnas and @wuftymerguftyguff)
No source-level changes were made.
2.1.1
2.1.0
This release contains the following changes:
- BigInt now uses the SipHash hashing algorithm instead of implementing its own hashing.
- The
SipHash
package has been added as a required dependency. I suggest you use a dependency manager. - Minimum deployment targets have been bumped to iOS 9.0 and macOS 10.0 to match those of
SipHash
. - BigInt now requires Swift 3.0.1, included in Xcode 8.1.
- The Xcode project file has been regenerated from scratch, with new names for targets and schemes.
- The bundle identifiers of frameworks generated from the Xcode project file have been changed to
hu.lorentey.BigInt.<platform>
.
2.0.1
This release contains the following bugfixes:
- The Swift version number is now correctly set in all targets (PR #7 by @mAu888).
- BigInt now builds on Linux (PR #5 by @ratranqu).
- Building BigInt with the Swift Package Manager bundled with Swift 3.0.1 works correctly.
Additionally, Foundation imports that weren't actually needed were removed from sources.
2.0.0
This release updates the project for Swift 3.0, including adapting the API to the new naming conventions.
Further changes:
- The behavior of
BigUInt.gcd
when one of the arguments is zero has been fixed; the result in this case is now equal to the other argument. BigInt
now conforms toStrideable
,IntegerArithmetic
,SignedNumber
andAbsoluteValuable
.BigUInt
now conforms toStrideable
,IntegerArithmetic
andBitwiseOperations
.