-
Notifications
You must be signed in to change notification settings - Fork 61
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 Signed Integers Subtraction #268
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bitzoic
added
Bug
Something isn't working
Lib: Math
Label used to filter for the library issue
labels
Jul 25, 2024
K1-R1
previously approved these changes
Jul 25, 2024
K1-R1
approved these changes
Jul 30, 2024
SwayStar123
approved these changes
Jul 31, 2024
Merged
K1-R1
added a commit
that referenced
this pull request
Aug 1, 2024
## [v0.23.0] ### Added - [#259](#259) Adds a new upgradability library, including associated tests and documentation. - [#265](#265) Adds the `SetMetadataEvent` and emits `SetMetadataEvent` when the `_set_metadata()` function is called. - [#270](#270) Adds `OrdEq` functionality to Signed Integers. - [#272](#272) Adds the `TryFrom` implementation from signed integers to unsigned integers. ### Changed - [#265](#265) Enables the metadata events now that the Rust SDK supports wrapped heap types. - [#269](#269) Hashes the string "admin" and with the bits of an Identity when creating a storage slot to storage an admin in the Admin Library. - [#276](#276) Prepares for v0.23.0 release. - [#278](#278) Deprecates the Fixed Point number library. ### Fixed - [#258](#258) Fixes incorrect instructions on how to run tests in README and docs hub. - [#262](#262) Fixes incorrect ordering comparison for IFP64, IFP128 and IFP256. - [#263](#263) Fixes `I256`'s returned bits. - [#263](#263) Fixes `I128` and `I256`'s zero or "indent" value. - [#268](#268) Fixes subtraction involving negative numbers for `I8`, `I16`, `I32`, `I64`, `I128`, and `I256`. - [#272](#272) Fixes `From` implementations for Signed Integers with `TryFrom`. - [#273](#273) Fixes negative from implementations for Signed Integers. - [#274](#274) Fixes the `swap_configurables()` function to correctly handle the case where the bytecode is too large to fit in the buffer. - [#275](#275) Fixes an infinite loop in the Bytecode root library's `_compute_bytecode_root()` function. #### Breaking - [#263](#263) Removes the `TwosComplement` trait in favor of `WrappingNeg`. The following demonstrates the breaking change. While this example code uses the `I8` type, the same logic may be applied to the `I16`, `I32`, `I64`, `I128`, and `I256` types. Before: ```sway let my_i8 = i8::zero(); let twos_complement = my_i8.twos_complement(); ``` After: ```sway let my_i8 = i8::zero(); let wrapping_neg = my_i8.wrapping_neg(); ``` - [#272](#272) The `From` implementation for all signed integers to their respective unsigned integer has been removed. The `TryFrom` implementation has been added in its place. Before: ```sway let my_i8: I8 = I8::from(1u8); ``` After: ```sway let my_i8: I8 = I8::try_from(1u8).unwrap(); ``` - [#273](#273) The `neg_from` implementation for all signed integers has been removed. The `neg_try_from()` implementation has been added in its place. The following demonstrates the breaking change. While this example code uses the `I8` type, the same logic may be applied to the `I16`, `I32`, `I64`, `I128`, and `I256` types. Before: ```sway let my_negative_i8: I8 = I8::neg_from(1u8); ``` After: ```sway let my_negative_i8: I8 = I8::neg_try_from(1u8).unwrap(); ``` - [#278](#278) Deprecates the Fixed Point number library. The Fixed Point number library is no longer available. --------- Co-authored-by: K1-R1 <[email protected]> Co-authored-by: SwayStar123 <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Type of change
Changes
The following changes have been made:
The following changes have been made:
I8
,I16
,I32
,I64
,I128
, andI256
.I8
,I16
,I32
,I64
,I128
, andI256
.Notes
Checklist
Breaking*
orNew Feature
labels where relevant.