Repository: MinaProtocol/mina
Pull request #16791: Bump up proof systems to include Rust 1.82 support
Author: login: dannywillems
Created: 2025-03-27T15:55:12Z | Merged: 2025-03-31T13:13:42Z

Built on top of https://github.com/MinaProtocol/mina/pull/16782

It includes the following changes from proof-systems:
- https://github.com/o1-labs/proof-systems/pull/3089 (updating some deps for 1.80 compatibility)
- https://github.com/o1-labs/proof-systems/pull/3090

Creating this step as an intermediary PR as some dependencies have been updated and implies that `cargo vendor` must be run.

The reviewer is encouraged to run the commands locally from the base branch, and verify that no other significant changes that would impact Mina are included.
In a future PR, Rust 1.82 will be used in Mina.

Counterparty in kimchi-stubs-vendors: https://github.com/MinaProtocol/kimchi-stubs-vendors/pull/5


Diff:
diff --git a/changes/16791.md b/changes/16791.md
new file mode 100644
index 000000000000..5fe05d972ba3
--- /dev/null
+++ b/changes/16791.md
@@ -0,0 +1,21 @@
+# PR 16791: Bump up proof systems to include Rust 1.82 support
+
+## Summary
+
+An outgoing effort is happening to support Rust 1.82 in Mina.
+Previously, some PR on the proof-systems side
+(https://github.com/o1-labs/proof-systems/pull/3089,
+https://github.com/o1-labs/proof-systems/pull/3090) have been merged in master
+to provide a support for Rust 1.82 in this dependency.
+
+In addition to that, the same work happened for
+[ocaml-gen](https://github.com/o1-labs/ocaml-gen) :
+https://github.com/o1-labs/ocaml-gen/pull/29 and
+https://github.com/o1-labs/ocaml-gen/pull/31.
+
+This PR updates the git submodule pointing to proof-systems to the commits
+including these changes (103901a6a5b91988ffb537fc811a0354f259c20e).
+
+`cargo vendor` is also run to update the dependencies of proof-systems vendored
+in https://github.com/o1-labs/proof-systems-vendors - counterparty PR is
+https://github.com/o1-labs/proof-systems-vendors/pull/4.
diff --git a/src/lib/crypto/kimchi_bindings/stubs/Cargo.lock b/src/lib/crypto/kimchi_bindings/stubs/Cargo.lock
index f0b2954dcc83..bb76c5baf999 100644
--- a/src/lib/crypto/kimchi_bindings/stubs/Cargo.lock
+++ b/src/lib/crypto/kimchi_bindings/stubs/Cargo.lock
@@ -374,7 +374,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.77",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -385,7 +385,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -763,7 +763,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1085,22 +1085,22 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.210"
+version = "1.0.219"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
+checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.210"
+version = "1.0.219"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
+checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1116,9 +1116,9 @@ dependencies = [
 
 [[package]]
 name = "serde_with"
-version = "3.9.0"
+version = "3.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857"
+checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa"
 dependencies = [
  "base64",
  "chrono",
@@ -1134,14 +1134,14 @@ dependencies = [
 
 [[package]]
 name = "serde_with_macros"
-version = "3.9.0"
+version = "3.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350"
+checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e"
 dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1204,7 +1204,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.77",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1226,9 +1226,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.77"
+version = "2.0.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
+checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1264,7 +1264,7 @@ checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1374,7 +1374,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.87",
  "wasm-bindgen-shared",
 ]
 
@@ -1396,7 +1396,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.87",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -1526,7 +1526,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.87",
 ]
 
 [[package]]
@@ -1546,5 +1546,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.87",
 ]
diff --git a/src/lib/crypto/kimchi_bindings/stubs/kimchi-stubs-vendors b/src/lib/crypto/kimchi_bindings/stubs/kimchi-stubs-vendors
index 3cc7e380a1a0..f0a48cfebebf 160000
--- a/src/lib/crypto/kimchi_bindings/stubs/kimchi-stubs-vendors
+++ b/src/lib/crypto/kimchi_bindings/stubs/kimchi-stubs-vendors
@@ -1 +1 @@
-Subproject commit 3cc7e380a1a0303b8c8109908733ce3e5609a9d5
+Subproject commit f0a48cfebebfa85bb80c9ce669e0035b07092e82
diff --git a/src/lib/crypto/kimchi_bindings/wasm/Cargo.lock b/src/lib/crypto/kimchi_bindings/wasm/Cargo.lock
index 3bc3a9917465..44715c87d7b2 100644
--- a/src/lib/crypto/kimchi_bindings/wasm/Cargo.lock
+++ b/src/lib/crypto/kimchi_bindings/wasm/Cargo.lock
@@ -332,7 +332,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.32",
+ "syn 2.0.100",
 ]
 
 [[package]]
@@ -343,7 +343,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.32",
+ "syn 2.0.100",
 ]
 
 [[package]]
@@ -708,7 +708,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.32",
+ "syn 2.0.100",
 ]
 
 [[package]]
@@ -869,18 +869,18 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.66"
+version = "1.0.94"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
 dependencies = [
  "proc-macro2",
 ]
@@ -998,9 +998,9 @@ checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03"
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.219"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
 dependencies = [
  "serde_derive",
 ]
@@ -1018,13 +1018,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.219"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.32",
+ "syn 2.0.100",
 ]
 
 [[package]]
@@ -1065,7 +1065,7 @@ dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.32",
+ "syn 2.0.100",
 ]
 
 [[package]]
@@ -1134,7 +1134,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.32",
+ "syn 2.0.100",
 ]
 
 [[package]]
@@ -1156,9 +1156,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.32"
+version = "2.0.100"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2"
+checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1182,7 +1182,7 @@ checksum = "268026685b2be38d7103e9e507c938a1fcb3d7e6eb15e87870b617bf37b6d581"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.32",
+ "syn 2.0.100",
 ]
 
 [[package]]
@@ -1270,7 +1270,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.32",
+ "syn 2.0.100",
  "wasm-bindgen-shared",
 ]
 
@@ -1304,7 +1304,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.32",
+ "syn 2.0.100",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -1440,7 +1440,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.32",
+ "syn 2.0.100",
 ]
 
 [[package]]
@@ -1460,5 +1460,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.32",
+ "syn 2.0.100",
 ]
diff --git a/src/lib/crypto/proof-systems b/src/lib/crypto/proof-systems
index 86f069531831..103901a6a5b9 160000
--- a/src/lib/crypto/proof-systems
+++ b/src/lib/crypto/proof-systems
@@ -1 +1 @@
-Subproject commit 86f069531831f47ad8aa2ab2dfc1e8be7367b9cb
+Subproject commit 103901a6a5b91988ffb537fc811a0354f259c20e


Reviews:
user: login: dannywillems
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-31T10:06:53Z
user: login: dannywillems
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-31T11:15:15Z
user: login: querolita
state: APPROVED
author_association: MEMBER
submitted_at: 2025-03-31T13:13:17Z

Review comments:
diff_hunk: @@ -23,9 +23,7 @@ libc = "0.2.62"
 num-bigint = { version = "0.4.0" }
 once_cell = "1.10.0"
 paste = "1.0.5"
-# Version for proc-macro2 needs to be 1.0.60+ to be compatible with newer rust versions
-# https://github.com/rust-lang/rust/issues/113152
-proc-macro2 = { version = "=1.0.66", features = ["default", "proc-macro"] }
+proc-macro2 = { version = "1.0.94", features = ["default", "proc-macro"] }
path: src/lib/crypto/kimchi_bindings/wasm/Cargo.toml
user: login: dannywillems
body: This will conflict with https://github.com/MinaProtocol/mina/pull/16797/files. I would suggest to merge first 16797 and I will take care of updating this PR accordingly.
created_at: 2025-03-31T10:06:53Z
author_association: MEMBER
diff_hunk: @@ -23,9 +23,7 @@ libc = "0.2.62"
 num-bigint = { version = "0.4.0" }
 once_cell = "1.10.0"
 paste = "1.0.5"
-# Version for proc-macro2 needs to be 1.0.60+ to be compatible with newer rust versions
-# https://github.com/rust-lang/rust/issues/113152
-proc-macro2 = { version = "=1.0.66", features = ["default", "proc-macro"] }
+proc-macro2 = { version = "1.0.94", features = ["default", "proc-macro"] }
path: src/lib/crypto/kimchi_bindings/wasm/Cargo.toml
user: login: dannywillems
body: Should be ok now.
created_at: 2025-03-31T11:15:15Z
author_association: MEMBER

PR comments:
user: login: dannywillems
created_at: 2025-03-27T15:55:20Z
body: !ci-build-me
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-27T16:03:56Z
body: !ci-build-me
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-27T16:07:55Z
body: !ci-build-me
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-27T16:31:56Z
body: !ci-build-me
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-27T17:13:24Z
body: Changed targeted branch to `compatible` as https://github.com/MinaProtocol/mina/pull/16782 has been merged.
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-27T20:06:51Z
body: For the reviewers.
Here the commands I run. Be sure to clean `kimchi-stubs-vendors` first to not have any other changes:
```shell
git checkout compatible
git checkout 85d1991fb1ca0c97f01a065928c07a70e3fd5ab7 # first commit of the PR bumping up proof-systems
git submodule update --init --recursive --force
cd src/lib/crypto/kimchi_bindings/stubs
cargo vendor kimchi-stubs-vendors
cd kimchi-stubs-vendors
git status
```
The output should only contain `syn`, `serde_with`, `serde`, `serde_derive` and `serde_with_macros`, which are exactly the changes of [this commit](https://github.com/MinaProtocol/kimchi-stubs-vendors/pull/5/commits/f0a48cfebebfa85bb80c9ce669e0035b07092e82#diff-2843fc1320fa24a059f5ca967ee45d116110116263a8ba311a3aca3793c562f0).
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-27T20:25:09Z
body: Merged compatible to get the changes from https://github.com/MinaProtocol/mina/pull/16780 to avoid future conflicts in https://github.com/MinaProtocol/mina/pull/16794 as I am going to remove the lines related to Rust 1.79.
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-27T20:25:22Z
body: !ci-build-me
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-31T09:59:40Z
body: I'm adding the changelog.
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-31T10:07:05Z
body: !ci-build-me
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-31T11:12:44Z
body: Solving conflicts now.
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-31T11:15:01Z
body: !ci-build-me
author_association: MEMBER
user: login: dannywillems
created_at: 2025-03-31T11:32:42Z
body: !ci-build-me
author_association: MEMBER