diff --git a/Cargo.lock b/Cargo.lock index 49fcbf1..27ae6c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -166,16 +166,16 @@ checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "blake3" -version = "1.8.3" +version = "1.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" +checksum = "4d2d5991425dfd0785aed03aedcf0b321d61975c9b5b3689c774a2610ae0b51e" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", "constant_time_eq", - "cpufeatures 0.2.17", + "cpufeatures 0.3.0", ] [[package]] @@ -216,9 +216,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.57" +version = "1.2.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" +checksum = "b7a4d3ec6524d28a329fc53654bbadc9bdd7b0431f5d65f1a56ffb28a1ee5283" dependencies = [ "find-msvc-tools", "jobserver", @@ -720,6 +720,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + [[package]] name = "errno" version = "0.3.14" @@ -743,9 +754,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.3.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "ff" @@ -1051,9 +1062,9 @@ checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" [[package]] name = "indexmap" -version = "2.13.0" +version = "2.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff" dependencies = [ "equivalent", "hashbrown 0.16.1", @@ -1158,9 +1169,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.91" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" dependencies = [ "once_cell", "wasm-bindgen", @@ -1233,9 +1244,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.183" +version = "0.2.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" [[package]] name = "libm" @@ -1315,8 +1326,9 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "miden-air" -version = "0.22.0" -source = "git+https://github.com/0xMiden/miden-vm.git?rev=1b60fa4b54e60075cad7a761b593d5c00c6aaf46#1b60fa4b54e60075cad7a761b593d5c00c6aaf46" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d15646ebc95906b2a7cb66711d1e184f53fd6edc2605730bbcf0c2a129f792cf" dependencies = [ "miden-core", "miden-crypto", @@ -1327,23 +1339,25 @@ dependencies = [ [[package]] name = "miden-assembly" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ece22da0cbf350e4a2939a07eaa3200445e42e47ce1b1ee6538723b6b40a4d4" +checksum = "ae6013b3a390e0dcb29242f4480a7727965887bbf0903466c88f362b4cb20c0e" dependencies = [ "log", "miden-assembly-syntax", "miden-core", "miden-mast-package", + "miden-package-registry", + "miden-project", "smallvec", "thiserror 2.0.18", ] [[package]] name = "miden-assembly-syntax" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d84a0e14ce66e76497a6771f3e360eb85557f2417ea22db279d54c1238ffafde" +checksum = "996156b8f7c5fe6be17dea71089c6d7985c2dec1e3a4fec068b1dfc690e25df5" dependencies = [ "aho-corasick", "lalrpop", @@ -1356,15 +1370,17 @@ dependencies = [ "proptest", "regex", "rustc_version 0.4.1", - "semver 1.0.27", + "semver 1.0.28", + "serde", "smallvec", "thiserror 2.0.18", ] [[package]] name = "miden-core" -version = "0.22.0" -source = "git+https://github.com/0xMiden/miden-vm.git?rev=1b60fa4b54e60075cad7a761b593d5c00c6aaf46#1b60fa4b54e60075cad7a761b593d5c00c6aaf46" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdec54a321cdf3d23e9ef615e91cb858038c6b4d4202507bdec048fc6d7763e4" dependencies = [ "derive_more", "itertools 0.14.0", @@ -1373,25 +1389,27 @@ dependencies = [ "miden-formatting", "miden-utils-core-derive", "miden-utils-indexing", - "miden-utils-sync 0.22.0 (git+https://github.com/0xMiden/miden-vm.git?rev=1b60fa4b54e60075cad7a761b593d5c00c6aaf46)", + "miden-utils-sync", "num-derive", "num-traits", + "serde", "thiserror 2.0.18", ] [[package]] name = "miden-core-lib" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82595fabb062315c32f6fc11c31755d3e5c6f8bc8c67d35154a067397d65b1de" +checksum = "621e8fa911a790bcf3cd3aedce80bc10922a19d6181f08ff3ca078f955cff70b" dependencies = [ "env_logger", "fs-err", "miden-assembly", "miden-core", "miden-crypto", + "miden-package-registry", "miden-processor", - "miden-utils-sync 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)", + "miden-utils-sync", "thiserror 2.0.18", ] @@ -1524,18 +1542,19 @@ dependencies = [ [[package]] name = "miden-debug-types" -version = "0.22.0" -source = "git+https://github.com/0xMiden/miden-vm.git?rev=1b60fa4b54e60075cad7a761b593d5c00c6aaf46#1b60fa4b54e60075cad7a761b593d5c00c6aaf46" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6e50274d11c80b901cf6c90362de8c98c8c8ad6030c80624d683b63d899a0fb" dependencies = [ "memchr", "miden-crypto", "miden-formatting", "miden-miette", "miden-utils-indexing", - "miden-utils-sync 0.22.0 (git+https://github.com/0xMiden/miden-vm.git?rev=1b60fa4b54e60075cad7a761b593d5c00c6aaf46)", + "miden-utils-sync", "paste", "serde", - "serde_spanned 1.1.0", + "serde_spanned 1.1.1", "thiserror 2.0.18", ] @@ -1568,14 +1587,15 @@ dependencies = [ [[package]] name = "miden-mast-package" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9b24d09fda64e0751f943ac616643342b05a47d626e2ee0040b902eff3c924e" +checksum = "bc8b2e3447fcde1f0e6b76e5219f129517639772cb02ca543177f0584e315288" dependencies = [ "derive_more", "miden-assembly-syntax", "miden-core", "miden-debug-types", + "serde", "thiserror 2.0.18", ] @@ -1615,10 +1635,26 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "miden-package-registry" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "969ba3942052e52b3968e34dbd1c52c707e75777ee42ebdae2c8f57af56cf6cf" +dependencies = [ + "miden-assembly-syntax", + "miden-core", + "miden-mast-package", + "pubgrub", + "serde", + "smallvec", + "thiserror 2.0.18", +] + [[package]] name = "miden-processor" -version = "0.22.0" -source = "git+https://github.com/0xMiden/miden-vm.git?rev=1b60fa4b54e60075cad7a761b593d5c00c6aaf46#1b60fa4b54e60075cad7a761b593d5c00c6aaf46" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ec6cecbf22bd92b73a931ee80b424e46b8b7cdf4f2f3c364c25c5c15d2840da" dependencies = [ "itertools 0.14.0", "miden-air", @@ -1633,10 +1669,27 @@ dependencies = [ "tracing", ] +[[package]] +name = "miden-project" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3840520c01881534fbbceb6b3687ec1c407fbaf310a35ce415fd3510abc52fdb" +dependencies = [ + "miden-assembly-syntax", + "miden-core", + "miden-mast-package", + "miden-package-registry", + "serde", + "serde-untagged", + "thiserror 2.0.18", + "toml 1.1.2+spec-1.1.0", +] + [[package]] name = "miden-protocol" -version = "0.14.0" -source = "git+https://github.com/0xMiden/protocol?rev=ae4b45778c7e2c73be87b67906b7fa1ae8e2a285#ae4b45778c7e2c73be87b67906b7fa1ae8e2a285" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595b3d43ceb562d05e248a6c52bdc2992dc270b60d6d0e8c0a6480aa30672b8e" dependencies = [ "bech32", "fs-err", @@ -1649,19 +1702,20 @@ dependencies = [ "miden-mast-package", "miden-processor", "miden-protocol-macros", - "miden-utils-sync 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)", + "miden-utils-sync", "miden-verifier", "rand 0.9.2", "regex", - "semver 1.0.27", + "semver 1.0.28", "thiserror 2.0.18", "walkdir", ] [[package]] name = "miden-protocol-macros" -version = "0.14.0" -source = "git+https://github.com/0xMiden/protocol?rev=ae4b45778c7e2c73be87b67906b7fa1ae8e2a285#ae4b45778c7e2c73be87b67906b7fa1ae8e2a285" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7c287782953c94452c2f7431feff137e4fe8b8d1eb5aa9112eab83a6f11c8f2" dependencies = [ "proc-macro2", "quote", @@ -1670,9 +1724,9 @@ dependencies = [ [[package]] name = "miden-prover" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15462425359e87540d92e277cf1174a85a174ca433bd63d27286f65ab318f2d4" +checksum = "6bb2c94e36f57684d7fa0cd382adeedc1728d502dbbe69ad1c12f4a931f45511" dependencies = [ "bincode", "miden-air", @@ -1698,8 +1752,9 @@ dependencies = [ [[package]] name = "miden-standards" -version = "0.14.0" -source = "git+https://github.com/0xMiden/protocol?rev=ae4b45778c7e2c73be87b67906b7fa1ae8e2a285#ae4b45778c7e2c73be87b67906b7fa1ae8e2a285" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27f63cd9264dc1f9f124fe644ee631828cc9bfd71022a75cd5bc1678f3ba7b56" dependencies = [ "fs-err", "miden-assembly", @@ -1734,8 +1789,9 @@ dependencies = [ [[package]] name = "miden-tx" -version = "0.14.0" -source = "git+https://github.com/0xMiden/protocol?rev=ae4b45778c7e2c73be87b67906b7fa1ae8e2a285#ae4b45778c7e2c73be87b67906b7fa1ae8e2a285" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e894e952e2819545e9351f7427779f82538e51553dfaca3294301ff308086497" dependencies = [ "miden-processor", "miden-protocol", @@ -1747,8 +1803,9 @@ dependencies = [ [[package]] name = "miden-utils-core-derive" -version = "0.22.0" -source = "git+https://github.com/0xMiden/miden-vm.git?rev=1b60fa4b54e60075cad7a761b593d5c00c6aaf46#1b60fa4b54e60075cad7a761b593d5c00c6aaf46" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3846c8674ccec0c37005f99c1a599a24790ba2a5e5f4e1c7aec5f456821df835" dependencies = [ "proc-macro2", "quote", @@ -1757,8 +1814,9 @@ dependencies = [ [[package]] name = "miden-utils-diagnostics" -version = "0.22.0" -source = "git+https://github.com/0xMiden/miden-vm.git?rev=1b60fa4b54e60075cad7a761b593d5c00c6aaf46#1b60fa4b54e60075cad7a761b593d5c00c6aaf46" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397f5d1e8679cf17cf7713ffd9654840791a6ed5818b025bbc2fbfdce846579a" dependencies = [ "miden-crypto", "miden-debug-types", @@ -1769,28 +1827,20 @@ dependencies = [ [[package]] name = "miden-utils-indexing" -version = "0.22.0" -source = "git+https://github.com/0xMiden/miden-vm.git?rev=1b60fa4b54e60075cad7a761b593d5c00c6aaf46#1b60fa4b54e60075cad7a761b593d5c00c6aaf46" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8834e76299686bcce3de1685158aa4cff49b7fa5e0e00a6cc811e8f2cf5775f" dependencies = [ "miden-crypto", + "serde", "thiserror 2.0.18", ] [[package]] name = "miden-utils-sync" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529c1c173506f30d3949f7a54b65f1eb318098e37ed5730a1bb9027eee2fa4b" -dependencies = [ - "lock_api", - "loom", - "once_cell", -] - -[[package]] -name = "miden-utils-sync" -version = "0.22.0" -source = "git+https://github.com/0xMiden/miden-vm.git?rev=1b60fa4b54e60075cad7a761b593d5c00c6aaf46#1b60fa4b54e60075cad7a761b593d5c00c6aaf46" +checksum = "6a9e9747e9664c1a0997bb040ae291306ea0a1c74a572141ec66cec855c1b0e8" dependencies = [ "lock_api", "loom", @@ -1800,9 +1850,9 @@ dependencies = [ [[package]] name = "miden-verifier" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "997c842047ffa2d011eb65bf638a3135b2d52bce5b20770fcc6040f1b48c624a" +checksum = "c4580df640d889c9f3c349cd2268968e44a99a8cf0df6c36ae5b1fb273712b00" dependencies = [ "bincode", "miden-air", @@ -1839,9 +1889,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "log", @@ -2006,9 +2056,9 @@ checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" [[package]] name = "p3-air" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ebc58ec27a174420348b3f04dba836fa2e5b5fe8df74601087417352757c643" +checksum = "9f2ec9cbfc642fc5173817287c3f8b789d07743b5f7e812d058b7a03e344f9ab" dependencies = [ "p3-field", "p3-matrix", @@ -2017,9 +2067,9 @@ dependencies = [ [[package]] name = "p3-blake3" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3cacb38c29fbee71fe3e5c6c0a1073632e46dc3e93fbdc50ab4e4fac137b525" +checksum = "b667f43b19499dd939c9e2553aa95688936a88360d50117dae3c8848d07dbc70" dependencies = [ "blake3", "p3-symmetric", @@ -2028,9 +2078,9 @@ dependencies = [ [[package]] name = "p3-challenger" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af9bbcb18fe90271668259aacfc43455e328673c2b5c926cff0663edc8653e4d" +checksum = "4a0b490c745a7d2adeeafff06411814c8078c432740162332b3cd71be0158a76" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -2042,9 +2092,9 @@ dependencies = [ [[package]] name = "p3-commit" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14d07b50c6f6d3bc89ed7c54ae0c569fb4caaa58263fd389dc02fb1b0a6378fa" +checksum = "916ae7989d5c3b49f887f5c55b2f9826bdbb81aaebf834503c4145d8b267c829" dependencies = [ "itertools 0.14.0", "p3-field", @@ -2055,9 +2105,9 @@ dependencies = [ [[package]] name = "p3-dft" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17e7ba0dc20be075eab3f88f0cb820a0901f86218a1c46134e7c817d41597989" +checksum = "55301e91544440254977108b85c32c09d7ea05f2f0dd61092a2825339906a4a7" dependencies = [ "itertools 0.14.0", "p3-field", @@ -2070,9 +2120,9 @@ dependencies = [ [[package]] name = "p3-field" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b8533e6c2f4d0cc61fd2ae5299bb83316898e535f47291808d37e4d666ba088" +checksum = "85affca7fc983889f260655c4cf74163eebb94605f702e4b6809ead707cba54f" dependencies = [ "itertools 0.14.0", "num-bigint", @@ -2086,9 +2136,9 @@ dependencies = [ [[package]] name = "p3-goldilocks" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8102a8c85acee1f896c3764bef5fac908e6026dadfc557c185294970cce0746" +checksum = "0ca1081f5c47b940f2d75a11c04f62ea1cc58a5d480dd465fef3861c045c63cd" dependencies = [ "num-bigint", "p3-challenger", @@ -2106,9 +2156,9 @@ dependencies = [ [[package]] name = "p3-keccak" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65d30dd586d2855906a01c3414c155c2d564f6677d1b51f04186dcac080f757" +checksum = "ebcf27615ece1995e4fcf4c69740f1cf515d1481367a20b4b3ce7f4f1b8d70f7" dependencies = [ "p3-symmetric", "p3-util", @@ -2117,9 +2167,9 @@ dependencies = [ [[package]] name = "p3-matrix" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72bb78444459155c2e4711d71abbfef7b04cc2ba1fa83751ccab241b01957095" +checksum = "53428126b009071563d1d07305a9de8be0d21de00b57d2475289ee32ffca6577" dependencies = [ "itertools 0.14.0", "p3-field", @@ -2132,15 +2182,15 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a0a54345917f500130a9986fa5ff9ecbc26f0c6313080b35b713e26ddc8053" +checksum = "082bf467011c06c768c579ec6eb9accb5e1e62108891634cc770396e917f978a" [[package]] name = "p3-mds" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd514bf3e9bf9f1b7db2db96e5bd2972d9963dd62430de1e193d74522ae96a6" +checksum = "35209e6214102ea6ec6b8cb1b9c15a9b8e597a39f9173597c957f123bced81b3" dependencies = [ "p3-dft", "p3-field", @@ -2247,9 +2297,9 @@ dependencies = [ [[package]] name = "p3-monty-31" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d9340a650f07a6cd42a4e877017ba7b206df87fe50dfc3cf110f01a3c370bd1" +checksum = "ffa8c99ec50c035020bbf5457c6a729ba6a975719c1a8dd3f16421081e4f650c" dependencies = [ "itertools 0.14.0", "num-bigint", @@ -2271,9 +2321,9 @@ dependencies = [ [[package]] name = "p3-poseidon1" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd56ae3a51ded1b77f7b1b21d0b157ae82b9d5ca8f2cba347c0b821fe771a79" +checksum = "6a018b618e3fa0aec8be933b1d8e404edd23f46991f6bf3f5c2f3f95e9413fe9" dependencies = [ "p3-field", "p3-symmetric", @@ -2282,9 +2332,9 @@ dependencies = [ [[package]] name = "p3-poseidon2" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "858aa1c33ec983dfbb8cfc553a213de19d8fde96485e54e6e952b9ac5e70bd4e" +checksum = "256a668a9ba916f8767552f13d0ba50d18968bc74a623bfdafa41e2970c944d0" dependencies = [ "p3-field", "p3-mds", @@ -2295,9 +2345,9 @@ dependencies = [ [[package]] name = "p3-symmetric" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a9a3b20bb8104e52d45219a78d80654c8ac6a4781be0eaa3f3e999f5ae4b9b2" +checksum = "6c60a71a1507c13611b0f2b0b6e83669fd5b76f8e3115bcbced5ccfdf3ca7807" dependencies = [ "itertools 0.14.0", "p3-field", @@ -2307,9 +2357,9 @@ dependencies = [ [[package]] name = "p3-util" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f24495d9cd64693165a9f1b3da0758395ad6d25d2d44dd740bdb34c2bce0c53" +checksum = "f8b766b9e9254bf3fa98d76e42cf8a5b30628c182dfd5272d270076ee12f0fc0" dependencies = [ "serde", "transpose", @@ -2436,6 +2486,17 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "priority-queue" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93980406f12d9f8140ed5abe7155acb10bb1e69ea55c88960b9c2f117445ef96" +dependencies = [ + "equivalent", + "indexmap", + "serde", +] + [[package]] name = "proc-macro2" version = "1.0.106" @@ -2464,6 +2525,20 @@ dependencies = [ "unarray", ] +[[package]] +name = "pubgrub" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f5df7e552bc7edd075f5783a87fbfc21d6a546e32c16985679c488c18192d83" +dependencies = [ + "indexmap", + "log", + "priority-queue", + "rustc-hash", + "thiserror 2.0.18", + "version-ranges", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -2680,6 +2755,12 @@ version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" +[[package]] +name = "rustc-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" + [[package]] name = "rustc_version" version = "0.2.3" @@ -2695,7 +2776,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.27", + "semver 1.0.28", ] [[package]] @@ -2794,9 +2875,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" dependencies = [ "serde", "serde_core", @@ -2818,6 +2899,18 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + [[package]] name = "serde_core" version = "1.0.228" @@ -2873,9 +2966,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876ac351060d4f882bb1032b6369eb0aef79ad9df1ea8bc404874d8cc3d0cd98" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ "serde_core", ] @@ -2959,9 +3052,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] name = "siphasher" @@ -3244,9 +3337,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.50.0" +version = "1.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" +checksum = "2bd1c4c0fc4a7ab90fc15ef6daaa3ec3b893f004f915f2392557ed23237820cd" dependencies = [ "pin-project-lite", "tokio-macros", @@ -3254,9 +3347,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", @@ -3291,17 +3384,17 @@ dependencies = [ [[package]] name = "toml" -version = "1.1.0+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8195ca05e4eb728f4ba94f3e3291661320af739c4e43779cbdfae82ab239fcc" +checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" dependencies = [ "indexmap", "serde_core", - "serde_spanned 1.1.0", - "toml_datetime 1.1.0+spec-1.1.0", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", "toml_writer", - "winnow 1.0.0", + "winnow 1.0.1", ] [[package]] @@ -3315,9 +3408,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.1.0+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] @@ -3338,11 +3431,11 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.1.0+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.0", + "winnow 1.0.1", ] [[package]] @@ -3353,9 +3446,9 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "toml_writer" -version = "1.1.0+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d282ade6016312faf3e41e57ebbba0c073e4056dab1232ab1cb624199648f8ed" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" [[package]] name = "tracing" @@ -3441,7 +3534,7 @@ dependencies = [ "serde_json", "target-triple", "termcolor", - "toml 1.1.0+spec-1.1.0", + "toml 1.1.2+spec-1.1.0", ] [[package]] @@ -3454,6 +3547,12 @@ dependencies = [ "unicode-width 0.2.0", ] +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + [[package]] name = "typenum" version = "1.19.0" @@ -3535,6 +3634,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" +[[package]] +name = "version-ranges" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3595ffe225639f1e0fd8d7269dcc05d2fbfea93cfac2fea367daf1adb60aae91" +dependencies = [ + "smallvec", +] + [[package]] name = "version_check" version = "0.9.5" @@ -3595,9 +3703,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.114" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" dependencies = [ "cfg-if", "once_cell", @@ -3608,9 +3716,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.114" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3618,9 +3726,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.114" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" dependencies = [ "bumpalo", "proc-macro2", @@ -3631,9 +3739,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.114" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" dependencies = [ "unicode-ident", ] @@ -3669,7 +3777,7 @@ dependencies = [ "bitflags", "hashbrown 0.15.5", "indexmap", - "semver 1.0.27", + "semver 1.0.28", ] [[package]] @@ -3820,9 +3928,9 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" [[package]] name = "wit-bindgen" @@ -3904,7 +4012,7 @@ dependencies = [ "id-arena", "indexmap", "log", - "semver 1.0.27", + "semver 1.0.28", "serde", "serde_derive", "serde_json", @@ -3933,18 +4041,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.47" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbb2a062be311f2ba113ce66f697a4dc589f85e78a4aea276200804cea0ed87" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.47" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 270cb9b..2deac3b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ name = "compile-masm" required-features = ["std"] [features] -default = ["tui"] +default = ["tui", "dap"] tui = ["std", "dep:crossterm", "dep:env_logger", "dep:ratatui", "dep:tui-input", "dep:signal-hook", "dep:syntect", "miden-debug-engine/tui"] dap = ["dep:dap", "dep:socket2", "miden-debug-engine/dap"] std = ["dep:glob", "clap/std", "clap/env", "miden-assembly-syntax/std", "miden-debug-engine/std"] @@ -53,8 +53,8 @@ miden-core = { version = "0.22", default-features = false } miden-debug-types = { version = "0.22", default-features = false } miden-mast-package = { version = "0.22", default-features = false } miden-processor = { version = "0.22", default-features = false } -miden-protocol = { git = "https://github.com/0xMiden/protocol", rev = "ae4b45778c7e2c73be87b67906b7fa1ae8e2a285", default-features = false } -miden-tx = { git = "https://github.com/0xMiden/protocol", rev = "ae4b45778c7e2c73be87b67906b7fa1ae8e2a285", default-features = false } +miden-protocol = { version = "0.14", default-features = false } +miden-tx = { version = "0.14", default-features = false } num-traits = "0.2" ratatui = { version = "0.29.0", optional = true } rustc-demangle = { version = "0.1", features = ["std"] } @@ -89,11 +89,3 @@ proptest = { version = "1.4", optional = true } miden-crypto = { version = "=0.23.0", default-features = false } -[patch.crates-io] -miden-air = { git = "https://github.com/0xMiden/miden-vm.git", rev = "1b60fa4b54e60075cad7a761b593d5c00c6aaf46" } -miden-core = { git = "https://github.com/0xMiden/miden-vm.git", rev = "1b60fa4b54e60075cad7a761b593d5c00c6aaf46" } -miden-debug-types = { git = "https://github.com/0xMiden/miden-vm.git", rev = "1b60fa4b54e60075cad7a761b593d5c00c6aaf46" } -miden-processor = { git = "https://github.com/0xMiden/miden-vm.git", rev = "1b60fa4b54e60075cad7a761b593d5c00c6aaf46" } -miden-utils-diagnostics = { git = "https://github.com/0xMiden/miden-vm.git", rev = "1b60fa4b54e60075cad7a761b593d5c00c6aaf46" } -miden-utils-indexing = { git = "https://github.com/0xMiden/miden-vm.git", rev = "1b60fa4b54e60075cad7a761b593d5c00c6aaf46" } -miden-utils-core-derive = { git = "https://github.com/0xMiden/miden-vm.git", rev = "1b60fa4b54e60075cad7a761b593d5c00c6aaf46" } diff --git a/crates/engine/Cargo.toml b/crates/engine/Cargo.toml index 87ae5f6..5733ad7 100644 --- a/crates/engine/Cargo.toml +++ b/crates/engine/Cargo.toml @@ -30,7 +30,7 @@ miden-core = { version = "0.22", default-features = false } miden-debug-types = { version = "0.22", default-features = false } miden-mast-package = { version = "0.22", default-features = false } miden-processor = { version = "0.22", default-features = false } -miden-tx = { git = "https://github.com/0xMiden/protocol", rev = "ae4b45778c7e2c73be87b67906b7fa1ae8e2a285", default-features = false } +miden-tx = { version = "0.14", default-features = false } num-traits = "0.2" proptest = { version = "1.4", optional = true } rustc-demangle = { version = "0.1", features = ["std"] } diff --git a/crates/engine/src/exec/executor.rs b/crates/engine/src/exec/executor.rs index d702d96..378edcd 100644 --- a/crates/engine/src/exec/executor.rs +++ b/crates/engine/src/exec/executor.rs @@ -8,12 +8,10 @@ use std::{ }; use miden_assembly_syntax::{Library, diagnostics::Report}; +use miden_core::Word; use miden_core::program::{Program, StackInputs}; use miden_debug_types::{SourceManager, SourceManagerExt}; -use miden_mast_package::{ - Dependency, DependencyResolver, LocalResolvedDependency, MastArtifact, - MemDependencyResolverByDigest, ResolvedDependency, -}; +use miden_mast_package::Dependency; use miden_processor::{ ContextId, ExecutionError, ExecutionOptions, FastProcessor, Felt, advice::{AdviceInputs, AdviceMutation}, @@ -37,7 +35,7 @@ pub struct Executor { options: ExecutionOptions, libraries: Vec>, event_handlers: Vec<(EventName, Arc)>, - dependency_resolver: MemDependencyResolverByDigest, + dependency_resolver: BTreeMap>, } impl Executor { /// Construct an executor with the given arguments on the operand stack @@ -60,7 +58,7 @@ impl Executor { options, } = config; let options = options.with_tracing(true).with_debugging(true); - let dependency_resolver = MemDependencyResolverByDigest::default(); + let dependency_resolver = BTreeMap::new(); Self { stack: inputs, @@ -96,25 +94,11 @@ impl Executor { dependencies: impl Iterator, ) -> Result<&mut Self, Report> { for dep in dependencies { - match self.dependency_resolver.resolve(dep) { - Some(resolution) => { - log::debug!("dependency {dep:?} resolved to {resolution:?}"); - log::debug!("loading library from package dependency: {dep:?}"); - match resolution { - ResolvedDependency::Local(LocalResolvedDependency::Library(lib)) => { - self.with_library(lib); - } - ResolvedDependency::Local(LocalResolvedDependency::Package(pkg)) => { - if let MastArtifact::Library(lib) = &pkg.mast { - self.with_library(lib.clone()); - } else { - Err(Report::msg(format!( - "expected package {} to contain library", - pkg.name - )))?; - } - } - } + let digest = dep.digest; + match self.dependency_resolver.get(&digest) { + Some(lib) => { + log::debug!("dependency {dep:?} resolved"); + self.with_library(lib.clone()); } None => panic!("{dep:?} not found in resolver"), } @@ -350,15 +334,14 @@ impl Executor { out.parse_result().expect("invalid result") } - pub fn dependency_resolver_mut(&mut self) -> &mut MemDependencyResolverByDigest { + pub fn dependency_resolver_mut(&mut self) -> &mut BTreeMap> { &mut self.dependency_resolver } /// Register a library with the dependency resolver so it can be found when resolving package dependencies pub fn register_library_dependency(&mut self, lib: Arc) { let digest = *lib.digest(); - self.dependency_resolver - .add(digest, ResolvedDependency::Local(LocalResolvedDependency::Library(lib))); + self.dependency_resolver.insert(digest, lib); } } diff --git a/examples/compile-masm.rs b/examples/compile-masm.rs index ffb335c..c89b937 100644 --- a/examples/compile-masm.rs +++ b/examples/compile-masm.rs @@ -10,7 +10,7 @@ use std::{env, path::PathBuf, sync::Arc}; use miden_assembly::{Assembler, DefaultSourceManager, SourceManager}; use miden_core::serde::Serializable; -use miden_mast_package::{MastArtifact, Package, PackageKind, PackageManifest}; +use miden_mast_package::{Package, PackageManifest, TargetType, Version}; fn main() -> Result<(), Box> { let args: Vec = env::args().collect(); @@ -22,19 +22,19 @@ fn main() -> Result<(), Box> { let input_path = PathBuf::from(&args[1]); let source_manager: Arc = Arc::new(DefaultSourceManager::default()); - // Read and assemble the MASM source + // Read and assemble the MASM source as a library let source = std::fs::read_to_string(&input_path)?; let assembler = Assembler::new(source_manager.clone()); - let program = assembler.assemble_program(&source)?; + let library = assembler.assemble_library([source.as_str()])?; - // Build a package from the program + // Build a package from the library let package = Package { - name: input_path.file_stem().and_then(|s| s.to_str()).unwrap_or("program").to_string(), - version: None, + name: input_path.file_stem().and_then(|s| s.to_str()).unwrap_or("program").into(), + version: Version::new(0, 0, 0), description: None, - kind: PackageKind::Executable, - mast: MastArtifact::Executable(Arc::new(program)), - manifest: PackageManifest::new(vec![]), + kind: TargetType::Executable, + mast: library, + manifest: PackageManifest::new(core::iter::empty())?, sections: vec![], }; diff --git a/src/linker.rs b/src/linker.rs index 97635b9..da424b6 100644 --- a/src/linker.rs +++ b/src/linker.rs @@ -101,9 +101,7 @@ impl LinkLibrary { false, )?; - miden_assembly::Assembler::new(source_manager) - .assemble_library(modules) - .map(Arc::new) + miden_assembly::Assembler::new(source_manager).assemble_library(modules) } LibraryKind::Masp => { use miden_core::serde::Deserializable; @@ -115,16 +113,7 @@ impl LinkLibrary { path.display() )) })?; - let lib = match package.mast { - miden_mast_package::MastArtifact::Executable(_) => { - return Err(Report::msg(format!( - "Expected Miden package to contain a Library, got Program: '{}'", - path.display() - ))); - } - miden_mast_package::MastArtifact::Library(lib) => lib.clone(), - }; - Ok(lib) + Ok(package.mast.clone()) } } } diff --git a/src/ui/state.rs b/src/ui/state.rs index 36690ca..396f09f 100644 --- a/src/ui/state.rs +++ b/src/ui/state.rs @@ -810,14 +810,7 @@ fn load_sysroot_libs( let package = miden_mast_package::Package::read_from_bytes(&bytes).map_err(|e| { Report::msg(format!("failed to load package '{}': {e}", path.display())) })?; - match package.mast { - miden_mast_package::MastArtifact::Library(lib) => { - libs.push(lib.clone()); - } - miden_mast_package::MastArtifact::Executable(_) => { - log::debug!(target: "state", "skipping executable package: {}", path.display()); - } - } + libs.push(package.mast.clone()); } else if ext == "masl" { log::debug!(target: "state", "loading library from sysroot: {}", path.display()); let bytes = std::fs::read(&path).into_diagnostic()?;