Skip to content

Conversation

erik-3milabs
Copy link
Contributor

No description provided.

dependabot bot and others added 16 commits October 21, 2024 15:15
Replaces macro-based code sharing between the stack-allocated and
heap-allocated `*Uint` types with `const fn` using `const_mut_refs`.
It was previously using a very outdated version of the abandoned
`actions-rs/audit-check`.

This updates to the latest version with Cargo.lock V4 support.
As a follow-up to RustCrypto#606, this PR extends the set of tests for modular inversion.
Updates the following dependencies:

    $ cargo update
    Updating crates.io index
     Locking 61 packages to latest compatible versions
    Updating anstyle v1.0.7 -> v1.0.10
    Updating autocfg v1.3.0 -> v1.4.0
    Updating bit-set v0.5.3 -> v0.8.0
    Updating bit-vec v0.6.3 -> v0.8.0
    Updating bitflags v2.5.0 -> v2.6.0
      Adding byteorder v1.5.0
    Updating bytes v1.6.0 -> v1.9.0
    Updating clap v4.4.8 -> v4.5.23
    Updating clap_builder v4.4.8 -> v4.5.23
    Updating clap_lex v0.6.0 -> v0.7.4
    Updating crossbeam-deque v0.8.5 -> v0.8.6
    Updating crossbeam-utils v0.8.20 -> v0.8.21
    Updating either v1.12.0 -> v1.13.0
    Updating errno v0.3.9 -> v0.3.10
    Updating fastrand v2.1.0 -> v2.3.0
    Updating hermit-abi v0.3.9 -> v0.4.0
    Updating hybrid-array v0.2.1 -> v0.2.3
    Updating is-terminal v0.4.12 -> v0.4.13
    Updating itoa v1.0.11 -> v1.0.14
    Updating js-sys v0.3.69 -> v0.3.76
    Updating libc v0.2.155 -> v0.2.169
    Removing libm v0.2.8
    Updating log v0.4.21 -> v0.4.22
    Updating num-bigint v0.4.5 -> v0.4.6
    Updating once_cell v1.19.0 -> v1.20.2
    Updating oorandom v11.1.3 -> v11.1.4
    Updating plotters v0.3.6 -> v0.3.7
    Updating plotters-backend v0.3.6 -> v0.3.7
    Updating plotters-svg v0.3.6 -> v0.3.7
    Updating ppv-lite86 v0.2.17 -> v0.2.20
    Updating proc-macro2 v1.0.86 -> v1.0.92
    Updating proptest v1.5.0 -> v1.6.0
    Updating quote v1.0.36 -> v1.0.38
    Updating regex v1.10.5 -> v1.11.1
    Updating regex-automata v0.4.7 -> v0.4.9
    Updating regex-syntax v0.8.4 -> v0.8.5
    Updating rustix v0.38.34 -> v0.38.42
    Updating serde v1.0.203 -> v1.0.217
    Updating serde_derive v1.0.203 -> v1.0.217
    Updating serde_json v1.0.117 -> v1.0.134
    Updating syn v2.0.68 -> v2.0.94
    Updating tempfile v3.10.1 -> v3.15.0
    Updating unicode-ident v1.0.12 -> v1.0.14
    Updating wasm-bindgen v0.2.92 -> v0.2.99
    Updating wasm-bindgen-backend v0.2.92 -> v0.2.99
    Updating wasm-bindgen-macro v0.2.92 -> v0.2.99
    Updating wasm-bindgen-macro-support v0.2.92 -> v0.2.99
    Updating wasm-bindgen-shared v0.2.92 -> v0.2.99
    Updating web-sys v0.3.69 -> v0.3.76
    Updating winapi-util v0.1.8 -> v0.1.9
      Adding windows-sys v0.59.0
    Updating windows-targets v0.52.5 -> v0.52.6
    Updating windows_aarch64_gnullvm v0.52.5 -> v0.52.6
    Updating windows_aarch64_msvc v0.52.5 -> v0.52.6
    Updating windows_i686_gnu v0.52.5 -> v0.52.6
    Updating windows_i686_gnullvm v0.52.5 -> v0.52.6
    Updating windows_i686_msvc v0.52.5 -> v0.52.6
    Updating windows_x86_64_gnu v0.52.5 -> v0.52.6
    Updating windows_x86_64_gnullvm v0.52.5 -> v0.52.6
    Updating windows_x86_64_msvc v0.52.5 -> v0.52.6
      Adding zerocopy v0.7.35
      Adding zerocopy-derive v0.7.35
NOTE: this release includes breaking changes to the wire format.
See RustCrypto/formats#1631
Also adds the needed `Div` and `Rem` impls to meet the required bounds
@tarcieri
Copy link
Member

tarcieri commented Jan 7, 2025

Is this just merging master? If so, perhaps we could go the other way around and merge signed-int into master

@erik-3milabs
Copy link
Contributor Author

Is this just merging master? If so, perhaps we could go the other way around and merge signed-int into master

I was of the impression that that was off the table 😅

@erik-3milabs
Copy link
Contributor Author

but yes, it is just merging master into signed-int.

@tarcieri
Copy link
Member

tarcieri commented Jan 7, 2025

We were just discussing it here actually:

#700 (comment)

Note that the goal is a 0.6 release which would effectively freeze it in whatever form we ship, though we'll probably do a followup 0.7 shortly after that.

@erik-3milabs
Copy link
Contributor Author

signed-int seems to add features only (but it is hard to verify with master and signed-int out of sync).

My int-dev branch still has a bunch of stuff related to interoperability between Uint and Int that makes Int a lot more useful. IIRC, these changes are mostly additive, but some will change the interface to some Int functions a bit, so, ideally they are included before we launch 0.6.0. However, I'm having a hard time determining exactly which functions will change with signed-int and master out of sync.

Do you think we could sync signed-int and master? That way I can create a (hopefully tiny) PR with all the interface changes I'd ideally include in 0.6.

@erik-3milabs
Copy link
Contributor Author

Ah, finally got things merged the way I wanted. You can have a look at int-dev containing all open changes here.

I scanned through the changes and, indeed, the vast majority is additive. One "breaking change" relates to the InvMod trait. Right now, this trait expects that the lhs and rhs in lhs.inv_mod(rhs) to be of the same type. However, in practice, we are often much more interested in Int.inv_mod(Uint) than Int.inv_mod(Int). Accommodating this would require the trait to be modified, which will likely be a breaking change.

For now, I'll get started organizing my dev branch a bit better and making concrete PRs to be reviewed.

@tarcieri
Copy link
Member

tarcieri commented Jan 7, 2025

Here's a PR to merge signed-int into master: #723

@erik-3milabs
Copy link
Contributor Author

Closed in favor of #723

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.

6 participants