From bd040476e7f6893bba52f8072227648a44f769cd Mon Sep 17 00:00:00 2001 From: Richie Yeung Date: Mon, 22 Sep 2025 01:12:43 +0800 Subject: [PATCH 1/4] Restructure Rust and Python crates into workspace --- .gitignore | 3 + Cargo.lock | 326 +++++++++++++----- Cargo.toml | 27 +- synir/Cargo.toml | 22 ++ .../benches}/clifford_tableau.rs | 0 {benches => synir/benches}/connectivity.rs | 0 {src => synir/src}/architecture.rs | 0 .../src}/architecture/connectivity.rs | 0 {src => synir/src}/data_structures.rs | 0 .../src}/data_structures/clifford_tableau.rs | 0 .../src}/data_structures/pauli_polynomial.rs | 0 .../src}/data_structures/pauli_string.rs | 0 {src => synir/src}/import.rs | 0 {src => synir/src}/ir.rs | 0 {src => synir/src}/ir/clifford_tableau.rs | 0 .../ir/clifford_tableau/custom_callback.rs | 0 .../src}/ir/clifford_tableau/helper.rs | 0 .../src}/ir/clifford_tableau/naive.rs | 0 {src => synir/src}/ir/pauli_exponential.rs | 0 {src => synir/src}/ir/pauli_polynomial.rs | 0 .../src}/ir/pauli_polynomial/helper.rs | 0 .../src}/ir/pauli_polynomial/naive.rs | 0 {src => synir/src}/lib.rs | 0 {tests => synir/tests}/clifford_tableau.rs | 0 {tests => synir/tests}/common.rs | 0 {tests => synir/tests}/pauli_exponential.rs | 0 {tests => synir/tests}/pauli_polynomial.rs | 0 synpy/Cargo.toml | 2 +- synpy/src/lib.rs | 2 +- 29 files changed, 267 insertions(+), 115 deletions(-) create mode 100644 synir/Cargo.toml rename {benches => synir/benches}/clifford_tableau.rs (100%) rename {benches => synir/benches}/connectivity.rs (100%) rename {src => synir/src}/architecture.rs (100%) rename {src => synir/src}/architecture/connectivity.rs (100%) rename {src => synir/src}/data_structures.rs (100%) rename {src => synir/src}/data_structures/clifford_tableau.rs (100%) rename {src => synir/src}/data_structures/pauli_polynomial.rs (100%) rename {src => synir/src}/data_structures/pauli_string.rs (100%) rename {src => synir/src}/import.rs (100%) rename {src => synir/src}/ir.rs (100%) rename {src => synir/src}/ir/clifford_tableau.rs (100%) rename {src => synir/src}/ir/clifford_tableau/custom_callback.rs (100%) rename {src => synir/src}/ir/clifford_tableau/helper.rs (100%) rename {src => synir/src}/ir/clifford_tableau/naive.rs (100%) rename {src => synir/src}/ir/pauli_exponential.rs (100%) rename {src => synir/src}/ir/pauli_polynomial.rs (100%) rename {src => synir/src}/ir/pauli_polynomial/helper.rs (100%) rename {src => synir/src}/ir/pauli_polynomial/naive.rs (100%) rename {src => synir/src}/lib.rs (100%) rename {tests => synir/tests}/clifford_tableau.rs (100%) rename {tests => synir/tests}/common.rs (100%) rename {tests => synir/tests}/pauli_exponential.rs (100%) rename {tests => synir/tests}/pauli_polynomial.rs (100%) diff --git a/.gitignore b/.gitignore index 4a6e33d8..c0738e7b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,6 @@ target/ # Ideas .idea/ .vscode/ + +# Pyenv +.python-version diff --git a/Cargo.lock b/Cargo.lock index be1eaa04..945f3903 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -25,15 +25,9 @@ checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "bitflags" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "bitvec" @@ -49,9 +43,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.18.1" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "cast" @@ -61,9 +55,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "ciborium" @@ -94,18 +88,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.40" +version = "4.5.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" +checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.40" +version = "4.5.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" +checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" dependencies = [ "anstyle", "clap_lex", @@ -180,9 +174,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "either" @@ -238,29 +232,47 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.4" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "foldhash", ] +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "indexmap" -version = "2.9.0" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.0", ] +[[package]] +name = "indoc" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" + [[package]] name = "is-terminal" version = "0.4.16" @@ -269,7 +281,7 @@ checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ "hermit-abi", "libc", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -298,9 +310,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "852f13bec5eba4ba9afbeb93fd7c13fe56147f055939ae21c43a29a0ecb2702e" dependencies = [ "once_cell", "wasm-bindgen", @@ -308,21 +320,30 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.172" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] [[package]] name = "num-traits" @@ -351,7 +372,7 @@ version = "0.8.2" source = "git+https://github.com/keefehuang/petgraph#1cdbae4cecd2fb6591697eb8cba3d2c9a76c438e" dependencies = [ "fixedbitset", - "hashbrown", + "hashbrown 0.15.5", "indexmap", "serde", ] @@ -384,6 +405,12 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "portable-atomic" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + [[package]] name = "ppv-lite86" version = "0.2.21" @@ -395,13 +422,76 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] +[[package]] +name = "pyo3" +version = "0.23.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7778bffd85cf38175ac1f545509665d0b9b92a198ca7941f131f85f7a4f9a872" +dependencies = [ + "cfg-if", + "indoc", + "libc", + "memoffset", + "once_cell", + "portable-atomic", + "pyo3-build-config", + "pyo3-ffi", + "pyo3-macros", + "unindent", +] + +[[package]] +name = "pyo3-build-config" +version = "0.23.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f6cbe86ef3bf18998d9df6e0f3fc1050a8c5efa409bf712e661a4366e010fb" +dependencies = [ + "once_cell", + "target-lexicon", +] + +[[package]] +name = "pyo3-ffi" +version = "0.23.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f1b4c431c0bb1c8fb0a338709859eed0d030ff6daa34368d3b152a63dfdd8d" +dependencies = [ + "libc", + "pyo3-build-config", +] + +[[package]] +name = "pyo3-macros" +version = "0.23.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc2201328f63c4710f68abdf653c89d8dbc2858b88c5d88b0ff38a75288a9da" +dependencies = [ + "proc-macro2", + "pyo3-macros-backend", + "quote", + "syn", +] + +[[package]] +name = "pyo3-macros-backend" +version = "0.23.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fca6726ad0f3da9c9de093d6f116a93c1a38e417ed73bf138472cf4064f72028" +dependencies = [ + "heck", + "proc-macro2", + "pyo3-build-config", + "quote", + "syn", +] + [[package]] name = "quote" version = "1.0.40" @@ -413,9 +503,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "radium" @@ -425,9 +515,9 @@ checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "rand" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha", "rand_core", @@ -454,9 +544,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -464,9 +554,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -474,9 +564,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", @@ -486,9 +576,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", @@ -497,15 +587,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" @@ -524,18 +614,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.226" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" dependencies = [ "proc-macro2", "quote", @@ -544,21 +644,22 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "syn" -version = "2.0.102" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6397daf94fa90f058bd0fd88429dd9e5738999cca8d701813c80723add80462" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -577,12 +678,27 @@ dependencies = [ "typenum", ] +[[package]] +name = "synpy" +version = "0.1.0" +dependencies = [ + "bitvec", + "pyo3", + "synir", +] + [[package]] name = "tap" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + [[package]] name = "tinytemplate" version = "1.2.1" @@ -601,9 +717,15 @@ checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" + +[[package]] +name = "unindent" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" [[package]] name = "walkdir" @@ -617,30 +739,40 @@ dependencies = [ [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.7+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +dependencies = [ + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "ab10a69fbd0a177f5f649ad4d8d3305499c42bab9aef2f7ff592d0ec8f833819" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "0bb702423545a6007bbc368fde243ba47ca275e549c8a28617f56f6ba53b1d1c" dependencies = [ "bumpalo", "log", @@ -652,9 +784,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "fc65f4f411d91494355917b605e1480033152658d71f722a90647f56a70c88a0" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -662,9 +794,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "ffc003a991398a8ee604a401e194b6b3a39677b3173d6e74495eb51b82e99a32" dependencies = [ "proc-macro2", "quote", @@ -675,18 +807,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "293c37f4efa430ca14db3721dfbe48d8c33308096bd44d80ebaa775ab71ba1cf" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "fbe734895e869dc429d78c4b433f8d17d95f8d05317440b4fad5ab2d33e596dc" dependencies = [ "js-sys", "wasm-bindgen", @@ -694,13 +826,19 @@ dependencies = [ [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys", + "windows-sys 0.61.0", ] +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + [[package]] name = "windows-sys" version = "0.59.0" @@ -710,6 +848,15 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -775,13 +922,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags", -] +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "wyz" @@ -794,18 +938,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index fcb9ffce..4fb521dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,22 +1,5 @@ -[package] -name = "synir" -version = "0.1.0" -edition = "2021" -license = "MIT" - -[lib] -path = "src/lib.rs" - -[dependencies] -bitvec = "1.0.1" -itertools = "0.13.0" -petgraph = { version = "0.8.2", features = ["stable_graph"], git = "https://github.com/keefehuang/petgraph" } -typenum = "1.17.0" - -[dev-dependencies] -criterion = "0.5.1" -rand = "0.9.0" - -[[bench]] -name = "clifford_tableau" -harness = false +[workspace] +members = [ + "synir", + "synpy" +] diff --git a/synir/Cargo.toml b/synir/Cargo.toml new file mode 100644 index 00000000..fcb9ffce --- /dev/null +++ b/synir/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "synir" +version = "0.1.0" +edition = "2021" +license = "MIT" + +[lib] +path = "src/lib.rs" + +[dependencies] +bitvec = "1.0.1" +itertools = "0.13.0" +petgraph = { version = "0.8.2", features = ["stable_graph"], git = "https://github.com/keefehuang/petgraph" } +typenum = "1.17.0" + +[dev-dependencies] +criterion = "0.5.1" +rand = "0.9.0" + +[[bench]] +name = "clifford_tableau" +harness = false diff --git a/benches/clifford_tableau.rs b/synir/benches/clifford_tableau.rs similarity index 100% rename from benches/clifford_tableau.rs rename to synir/benches/clifford_tableau.rs diff --git a/benches/connectivity.rs b/synir/benches/connectivity.rs similarity index 100% rename from benches/connectivity.rs rename to synir/benches/connectivity.rs diff --git a/src/architecture.rs b/synir/src/architecture.rs similarity index 100% rename from src/architecture.rs rename to synir/src/architecture.rs diff --git a/src/architecture/connectivity.rs b/synir/src/architecture/connectivity.rs similarity index 100% rename from src/architecture/connectivity.rs rename to synir/src/architecture/connectivity.rs diff --git a/src/data_structures.rs b/synir/src/data_structures.rs similarity index 100% rename from src/data_structures.rs rename to synir/src/data_structures.rs diff --git a/src/data_structures/clifford_tableau.rs b/synir/src/data_structures/clifford_tableau.rs similarity index 100% rename from src/data_structures/clifford_tableau.rs rename to synir/src/data_structures/clifford_tableau.rs diff --git a/src/data_structures/pauli_polynomial.rs b/synir/src/data_structures/pauli_polynomial.rs similarity index 100% rename from src/data_structures/pauli_polynomial.rs rename to synir/src/data_structures/pauli_polynomial.rs diff --git a/src/data_structures/pauli_string.rs b/synir/src/data_structures/pauli_string.rs similarity index 100% rename from src/data_structures/pauli_string.rs rename to synir/src/data_structures/pauli_string.rs diff --git a/src/import.rs b/synir/src/import.rs similarity index 100% rename from src/import.rs rename to synir/src/import.rs diff --git a/src/ir.rs b/synir/src/ir.rs similarity index 100% rename from src/ir.rs rename to synir/src/ir.rs diff --git a/src/ir/clifford_tableau.rs b/synir/src/ir/clifford_tableau.rs similarity index 100% rename from src/ir/clifford_tableau.rs rename to synir/src/ir/clifford_tableau.rs diff --git a/src/ir/clifford_tableau/custom_callback.rs b/synir/src/ir/clifford_tableau/custom_callback.rs similarity index 100% rename from src/ir/clifford_tableau/custom_callback.rs rename to synir/src/ir/clifford_tableau/custom_callback.rs diff --git a/src/ir/clifford_tableau/helper.rs b/synir/src/ir/clifford_tableau/helper.rs similarity index 100% rename from src/ir/clifford_tableau/helper.rs rename to synir/src/ir/clifford_tableau/helper.rs diff --git a/src/ir/clifford_tableau/naive.rs b/synir/src/ir/clifford_tableau/naive.rs similarity index 100% rename from src/ir/clifford_tableau/naive.rs rename to synir/src/ir/clifford_tableau/naive.rs diff --git a/src/ir/pauli_exponential.rs b/synir/src/ir/pauli_exponential.rs similarity index 100% rename from src/ir/pauli_exponential.rs rename to synir/src/ir/pauli_exponential.rs diff --git a/src/ir/pauli_polynomial.rs b/synir/src/ir/pauli_polynomial.rs similarity index 100% rename from src/ir/pauli_polynomial.rs rename to synir/src/ir/pauli_polynomial.rs diff --git a/src/ir/pauli_polynomial/helper.rs b/synir/src/ir/pauli_polynomial/helper.rs similarity index 100% rename from src/ir/pauli_polynomial/helper.rs rename to synir/src/ir/pauli_polynomial/helper.rs diff --git a/src/ir/pauli_polynomial/naive.rs b/synir/src/ir/pauli_polynomial/naive.rs similarity index 100% rename from src/ir/pauli_polynomial/naive.rs rename to synir/src/ir/pauli_polynomial/naive.rs diff --git a/src/lib.rs b/synir/src/lib.rs similarity index 100% rename from src/lib.rs rename to synir/src/lib.rs diff --git a/tests/clifford_tableau.rs b/synir/tests/clifford_tableau.rs similarity index 100% rename from tests/clifford_tableau.rs rename to synir/tests/clifford_tableau.rs diff --git a/tests/common.rs b/synir/tests/common.rs similarity index 100% rename from tests/common.rs rename to synir/tests/common.rs diff --git a/tests/pauli_exponential.rs b/synir/tests/pauli_exponential.rs similarity index 100% rename from tests/pauli_exponential.rs rename to synir/tests/pauli_exponential.rs diff --git a/tests/pauli_polynomial.rs b/synir/tests/pauli_polynomial.rs similarity index 100% rename from tests/pauli_polynomial.rs rename to synir/tests/pauli_polynomial.rs diff --git a/synpy/Cargo.toml b/synpy/Cargo.toml index c6639e83..98305a12 100644 --- a/synpy/Cargo.toml +++ b/synpy/Cargo.toml @@ -11,4 +11,4 @@ crate-type = ["cdylib"] [dependencies] bitvec = "1.0.1" pyo3 = "0.23.3" -synir = { path = "../" } +synir = { path = "../synir" } diff --git a/synpy/src/lib.rs b/synpy/src/lib.rs index 37c89047..aea297ae 100644 --- a/synpy/src/lib.rs +++ b/synpy/src/lib.rs @@ -17,4 +17,4 @@ fn synpy_rust(m: &Bound<'_, PyModule>) -> PyResult<()> { m.add_class::()?; Ok(()) -} \ No newline at end of file +} From 8236a30e9063e7b05932a9cb3bb320cf70e49412 Mon Sep 17 00:00:00 2001 From: Richie Yeung Date: Mon, 22 Sep 2025 01:17:57 +0800 Subject: [PATCH 2/4] Fix benchmarks --- synir/src/ir/clifford_tableau.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/synir/src/ir/clifford_tableau.rs b/synir/src/ir/clifford_tableau.rs index 177e3cef..228cfb60 100644 --- a/synir/src/ir/clifford_tableau.rs +++ b/synir/src/ir/clifford_tableau.rs @@ -6,7 +6,7 @@ pub use naive::NaiveCliffordSynthesizer; mod custom_callback; mod helper; -mod naive; +pub mod naive; #[derive(Default)] pub enum CliffordTableauSynthStrategy { From f66e3e2289b57c5bd3b61628a10d96d8e8e46623 Mon Sep 17 00:00:00 2001 From: Richie Yeung Date: Mon, 22 Sep 2025 01:21:06 +0800 Subject: [PATCH 3/4] Remove unnecessary parentheses --- synir/src/data_structures/pauli_polynomial.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/synir/src/data_structures/pauli_polynomial.rs b/synir/src/data_structures/pauli_polynomial.rs index f9d005d2..3f1e4b17 100644 --- a/synir/src/data_structures/pauli_polynomial.rs +++ b/synir/src/data_structures/pauli_polynomial.rs @@ -43,7 +43,7 @@ impl PauliPolynomial { } let chains = chain_strings .iter() - .map(|gadget| (PauliString::from_text(gadget))) + .map(|gadget| PauliString::from_text(gadget)) .collect::>(); PauliPolynomial { From 4d4cafb321177df5565cd4d729e9c39d3cd03255 Mon Sep 17 00:00:00 2001 From: Richie Yeung Date: Mon, 22 Sep 2025 18:09:29 +0800 Subject: [PATCH 4/4] Specify resolver in Cargo.toml --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index 4fb521dd..bc4a142d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,5 @@ [workspace] +resolver = "2" members = [ "synir", "synpy"