From 3b0c559ded9eb0d9e0b991d950d02441bd6f2c61 Mon Sep 17 00:00:00 2001 From: Denys Zadorozhnyi Date: Wed, 22 Jan 2025 08:40:15 +0200 Subject: [PATCH] chore: update the Miden VM with updated `miden-package` crate --- Cargo.lock | 244 +++++++++--------- Cargo.toml | 18 +- codegen/masm/src/emulator/mod.rs | 5 +- hir/src/asm/builder.rs | 3 - hir/src/asm/display.rs | 7 - hir/src/asm/isa.rs | 100 ++----- midenc-compile/src/stages/assemble.rs | 6 +- midenc-debug/src/exec/executor.rs | 13 +- midenc-debug/src/exec/host.rs | 28 +- midenc-debug/src/exec/state.rs | 7 +- midenc-debug/src/ui/state.rs | 10 +- midenc-session/src/emit.rs | 2 +- midenc-session/src/libs.rs | 3 +- .../expected/rust_sdk/cross_ctx_account.masm | 2 +- .../expected/rust_sdk/cross_ctx_note.masm | 6 +- .../src/rust_masm_tests/rust_sdk.rs | 4 +- 16 files changed, 189 insertions(+), 269 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4c5a55d0d..615980b86 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "Inflector" @@ -335,7 +335,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -370,7 +370,7 @@ checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -748,7 +748,7 @@ dependencies = [ "semver 1.0.23", "serde 1.0.210", "tempfile", - "thiserror", + "thiserror 1.0.63", "time", "toml 0.8.19", "walkdir", @@ -818,7 +818,7 @@ dependencies = [ "semver 1.0.23", "serde 1.0.210", "serde_json", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -847,9 +847,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.21" +version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" dependencies = [ "jobserver", "libc", @@ -925,7 +925,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -961,7 +961,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f76990911f2267d837d9d0ad060aa63aaad170af40904b29461734c339030d4d" dependencies = [ "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -1207,7 +1207,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -1218,7 +1218,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -1263,7 +1263,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -1275,7 +1275,7 @@ dependencies = [ "console", "shell-words", "tempfile", - "thiserror", + "thiserror 1.0.63", "zeroize", ] @@ -1464,7 +1464,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -1760,7 +1760,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -1863,7 +1863,7 @@ dependencies = [ "gix-date", "gix-utils", "itoa", - "thiserror", + "thiserror 1.0.63", "winnow 0.6.18", ] @@ -1883,7 +1883,7 @@ dependencies = [ "memchr", "once_cell", "smallvec", - "thiserror", + "thiserror 1.0.63", "unicode-bom", "winnow 0.6.18", ] @@ -1898,7 +1898,7 @@ dependencies = [ "bstr", "gix-path", "libc", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -1910,7 +1910,7 @@ dependencies = [ "bstr", "itoa", "jiff", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -1958,7 +1958,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93d7df7366121b5018f947a04d37f034717e113dcf9ccd85c34b58e57a74d5e" dependencies = [ "faster-hex", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -1969,7 +1969,7 @@ checksum = "e3bc7fe297f1f4614774989c00ec8b1add59571dc9b024b4c00acb7dedd4e19d" dependencies = [ "gix-tempfile", "gix-utils", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -1987,7 +1987,7 @@ dependencies = [ "gix-validate", "itoa", "smallvec", - "thiserror", + "thiserror 1.0.63", "winnow 0.6.18", ] @@ -2001,7 +2001,7 @@ dependencies = [ "gix-trace", "home", "once_cell", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -2021,7 +2021,7 @@ dependencies = [ "gix-utils", "gix-validate", "memmap2", - "thiserror", + "thiserror 1.0.63", "winnow 0.6.18", ] @@ -2073,7 +2073,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81f2badbb64e57b404593ee26b752c26991910fd0d81fe6f9a71c1a8309b6c86" dependencies = [ "bstr", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -2476,7 +2476,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b23a0c8dfe501baac4adf6ebbfa6eddf8f0c07f56b058cc1288017e32397846c" dependencies = [ "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -2858,7 +2858,7 @@ checksum = "3b51f1d220e3fa869e24cfd75915efe3164bd09bb11b3165db3f37f57bf673e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -2913,7 +2913,7 @@ dependencies = [ "proc-macro2", "quote", "regex-syntax 0.8.4", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -3001,10 +3001,10 @@ dependencies = [ [[package]] name = "miden-air" version = "0.11.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=75bd636a6b83fd6cb134b0981663aa28e49a811c#75bd636a6b83fd6cb134b0981663aa28e49a811c" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=a1b44a7e28a64da99c2d0a7260498e1b84f57532#a1b44a7e28a64da99c2d0a7260498e1b84f57532" dependencies = [ "miden-core", - "miden-thiserror", + "thiserror 2.0.11", "winter-air", "winter-prover", ] @@ -3012,17 +3012,16 @@ dependencies = [ [[package]] name = "miden-assembly" version = "0.11.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=75bd636a6b83fd6cb134b0981663aa28e49a811c#75bd636a6b83fd6cb134b0981663aa28e49a811c" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=a1b44a7e28a64da99c2d0a7260498e1b84f57532#a1b44a7e28a64da99c2d0a7260498e1b84f57532" dependencies = [ "aho-corasick", "lalrpop", "lalrpop-util", "miden-core", "miden-miette", - "miden-thiserror", "rustc_version 0.4.1", - "serde 1.0.210", "smallvec", + "thiserror 2.0.11", "tracing", "unicode-width 0.2.0", ] @@ -3038,7 +3037,7 @@ dependencies = [ [[package]] name = "miden-core" version = "0.11.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=75bd636a6b83fd6cb134b0981663aa28e49a811c#75bd636a6b83fd6cb134b0981663aa28e49a811c" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=a1b44a7e28a64da99c2d0a7260498e1b84f57532#a1b44a7e28a64da99c2d0a7260498e1b84f57532" dependencies = [ "lock_api", "loom", @@ -3046,19 +3045,19 @@ dependencies = [ "miden-crypto", "miden-formatting", "miden-miette", - "miden-thiserror", "num-derive", "num-traits 0.2.19", "parking_lot", + "thiserror 2.0.11", "winter-math", "winter-utils", ] [[package]] name = "miden-crypto" -version = "0.12.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f50a68deed96cde1f51eb623f75828e320f699e0d798f11592f8958ba8b512c3" +checksum = "a06bf3ad2a85f3f8f0da73b6357c77e482b1ceb36cacda8a2d85caae3bd1f702" dependencies = [ "blake3", "cc", @@ -3068,6 +3067,7 @@ dependencies = [ "rand", "rand_core", "sha3", + "thiserror 2.0.11", "winter-crypto", "winter-math", "winter-utils", @@ -3123,9 +3123,9 @@ version = "0.0.0" [[package]] name = "miden-miette" -version = "7.1.1" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c532250422d933f15b148fb81e4522a5d649c178ab420d0d596c86228da35570" +checksum = "eef536978f24a179d94fa2a41e4f92b28e7d8aab14b8d23df28ad2a3d7098b20" dependencies = [ "backtrace", "backtrace-ext", @@ -3134,7 +3134,6 @@ dependencies = [ "indenter", "lazy_static 1.5.0", "miden-miette-derive", - "miden-thiserror", "owo-colors", "regex", "rustc_version 0.2.3", @@ -3145,45 +3144,43 @@ dependencies = [ "supports-color", "supports-hyperlinks", "supports-unicode", - "syn 2.0.77", + "syn 2.0.96", "terminal_size", "textwrap", + "thiserror 2.0.11", "trybuild", "unicode-width 0.1.14", ] [[package]] name = "miden-miette-derive" -version = "7.1.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cc759f0a2947acae217a2f32f722105cacc57d17d5f93bc16362142943a4edd" +checksum = "86a905f3ea65634dd4d1041a4f0fd0a3e77aa4118341d265af1a94339182222f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] name = "miden-package" version = "0.11.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=75bd636a6b83fd6cb134b0981663aa28e49a811c#75bd636a6b83fd6cb134b0981663aa28e49a811c" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=a1b44a7e28a64da99c2d0a7260498e1b84f57532#a1b44a7e28a64da99c2d0a7260498e1b84f57532" dependencies = [ - "bitcode", + "derive_more", "miden-assembly", "miden-core", - "serde 1.0.210", - "serde_bytes", - "serde_repr", ] [[package]] name = "miden-processor" version = "0.11.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=75bd636a6b83fd6cb134b0981663aa28e49a811c#75bd636a6b83fd6cb134b0981663aa28e49a811c" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=a1b44a7e28a64da99c2d0a7260498e1b84f57532#a1b44a7e28a64da99c2d0a7260498e1b84f57532" dependencies = [ "miden-air", "miden-core", - "miden-package", + "thiserror 2.0.11", "tracing", "winter-prover", ] @@ -3195,7 +3192,7 @@ version = "0.0.7" [[package]] name = "miden-stdlib" version = "0.11.0" -source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=75bd636a6b83fd6cb134b0981663aa28e49a811c#75bd636a6b83fd6cb134b0981663aa28e49a811c" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=a1b44a7e28a64da99c2d0a7260498e1b84f57532#a1b44a7e28a64da99c2d0a7260498e1b84f57532" dependencies = [ "miden-assembly", ] @@ -3221,7 +3218,7 @@ checksum = "0ee4176a0f2e7d29d2a8ee7e60b6deb14ce67a20e94c3e2c7275cdb8804e1862" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -3449,7 +3446,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -3548,7 +3545,7 @@ checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1" dependencies = [ "cfg-if", "miette-derive", - "thiserror", + "thiserror 1.0.63", "unicode-width 0.1.14", ] @@ -3560,7 +3557,7 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -3722,7 +3719,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -3811,7 +3808,7 @@ dependencies = [ "serde 1.0.210", "serde_json", "sha2", - "thiserror", + "thiserror 1.0.63", "tokio", "tracing", "unicase", @@ -4075,7 +4072,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.63", "ucd-trie", ] @@ -4099,7 +4096,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -4149,7 +4146,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -4276,7 +4273,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -4300,9 +4297,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -4360,7 +4357,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.77", + "syn 2.0.96", "tempfile", ] @@ -4374,7 +4371,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -4411,7 +4408,7 @@ dependencies = [ "prost-reflect", "prost-types", "protox-parse", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -4423,7 +4420,7 @@ dependencies = [ "logos", "miette", "prost-types", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -4461,7 +4458,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2 0.5.7", - "thiserror", + "thiserror 1.0.63", "tokio", "tracing", ] @@ -4478,7 +4475,7 @@ dependencies = [ "rustc-hash", "rustls", "slab", - "thiserror", + "thiserror 1.0.63", "tinyvec", "tracing", ] @@ -4597,7 +4594,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -4741,7 +4738,7 @@ checksum = "a5a11a05ee1ce44058fa3d5961d05194fdbe3ad6b40f904af764d81b86450e6b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -5092,7 +5089,7 @@ checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -5115,7 +5112,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -5166,7 +5163,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -5330,9 +5327,6 @@ name = "smallvec" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -dependencies = [ - "serde 1.0.210", -] [[package]] name = "smartstring" @@ -5455,7 +5449,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -5498,9 +5492,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -5532,7 +5526,7 @@ dependencies = [ "serde 1.0.210", "serde_derive", "serde_json", - "thiserror", + "thiserror 1.0.63", "walkdir", "yaml-rust", ] @@ -5639,7 +5633,16 @@ version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.63", +] + +[[package]] +name = "thiserror" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", ] [[package]] @@ -5650,7 +5653,18 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", ] [[package]] @@ -5753,7 +5767,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -5775,7 +5789,7 @@ checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f" dependencies = [ "either", "futures-util", - "thiserror", + "thiserror 1.0.63", "tokio", ] @@ -5894,7 +5908,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -6210,7 +6224,7 @@ dependencies = [ "itertools 0.12.1", "serde 1.0.210", "serde_with", - "thiserror", + "thiserror 1.0.63", "warg-crypto", "warg-protocol", ] @@ -6244,7 +6258,7 @@ dependencies = [ "serde_json", "sha256", "tempfile", - "thiserror", + "thiserror 1.0.63", "tokio", "tokio-util", "tracing", @@ -6279,7 +6293,7 @@ dependencies = [ "serde 1.0.210", "sha2", "signature", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -6317,7 +6331,7 @@ dependencies = [ "semver 1.0.23", "serde 1.0.210", "serde_with", - "thiserror", + "thiserror 1.0.63", "warg-crypto", "warg-protobuf", "warg-transparency", @@ -6333,7 +6347,7 @@ dependencies = [ "anyhow", "indexmap 2.5.0", "prost", - "thiserror", + "thiserror 1.0.63", "warg-crypto", "warg-protobuf", ] @@ -6372,7 +6386,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", "wasm-bindgen-shared", ] @@ -6406,7 +6420,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6528,7 +6542,7 @@ dependencies = [ "serde 1.0.210", "serde_json", "sha2", - "thiserror", + "thiserror 1.0.63", "tokio", "tokio-util", "toml 0.8.19", @@ -6558,7 +6572,7 @@ dependencies = [ "serde 1.0.210", "serde_json", "sha2", - "thiserror", + "thiserror 1.0.63", "tokio", "toml 0.8.19", "tracing", @@ -6763,7 +6777,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -6774,7 +6788,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -6981,9 +6995,9 @@ checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" [[package]] name = "winter-air" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29bec0b06b741543f43e3a6677b95b200d4cad2daab76e6721e14345345bfd0e" +checksum = "3a8fdb702503625f54dcaf9222aa2c7a0b2e868b3eb84b90d1837d68034bf999" dependencies = [ "libm", "winter-crypto", @@ -6994,9 +7008,9 @@ dependencies = [ [[package]] name = "winter-crypto" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "163da45f1d4d65cac361b8df4835a6daa95b3399154e16eb0305c178c6f6c1f4" +checksum = "67c57748fd2da77742be601f03eda639ff6046879738fd1faae86e80018263cb" dependencies = [ "blake3", "sha3", @@ -7006,9 +7020,9 @@ dependencies = [ [[package]] name = "winter-fri" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7b394670d68979a4cc21a37a95ef8ef350cf84be9256c53effe3052df50d26" +checksum = "3f9f999bc248c6254138b627035cb6d2c319580eb37dadcab6672298dbf00e41" dependencies = [ "winter-crypto", "winter-math", @@ -7017,28 +7031,28 @@ dependencies = [ [[package]] name = "winter-math" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8ba832121679e79b004b0003018c85873956d742a39c348c247f680fe15e00" +checksum = "6020c17839fa107ce4a7cc178e407ebbc24adfac1980f4fa2111198e052700ab" dependencies = [ "winter-utils", ] [[package]] name = "winter-maybe-async" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be43529f43f70306437d2c2c9f9e2b3a4d39b42e86702d8d7577f2357ea32fa6" +checksum = "91ce144fde121b98523bb8a6c15a311773e1d534d33c1cb47f5580bba9cff8e7" dependencies = [ "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] name = "winter-prover" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f55f0153d26691caaf969066a13a824bcf3c98719d71b0f569bf8dc40a06fb9" +checksum = "b6c2f3cf80955f084fd614c86883195331116b6c96dc88532d43d6836bd7adee" dependencies = [ "tracing", "winter-air", @@ -7051,9 +7065,9 @@ dependencies = [ [[package]] name = "winter-utils" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76b116c8ade0172506f8bda32dc674cf6b230adc8516e5138a0173ae69158a4f" +checksum = "1507ef312ea5569d54c2c7446a18b82143eb2a2e21f5c3ec7cfbe8200c03bd7c" [[package]] name = "wit-bindgen-core" @@ -7074,7 +7088,7 @@ dependencies = [ "heck 0.5.0", "indexmap 2.5.0", "prettyplease", - "syn 2.0.77", + "syn 2.0.96", "wasm-metadata 0.216.0", "wit-bindgen-core", "wit-component 0.216.0", @@ -7272,7 +7286,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 4ebd0de92..651c43b1a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -87,12 +87,8 @@ thiserror = { package = "miden-thiserror", version = "1.0" } toml = { version = "0.8", features = ["preserve_order"] } derive_more = "0.99" indexmap = "2.2" -# miden-assembly = { version = "0.10.3" } -# miden-core = { version = "0.10.3" } miden-formatting = { version = "0.1", default-features = false } miden-parsing = "0.1" -# miden-processor = { version = "0.10.3" } -# miden-stdlib = { version = "0.10.3", features = ["with-debug-info"] } # miden-assembly = { version = "0.11.0", path = "../vm-aux/assembly" } # miden-core = { version = "0.11.0", path = "../vm-aux/core" } @@ -100,18 +96,14 @@ miden-parsing = "0.1" # miden-stdlib = { version = "0.11.0", path = "../vm-aux/stdlib" } # miden-package = { version = "0.11.0", path = "../vm-aux/package" } -miden-assembly = { version = "0.11.0", git = "https://github.com/0xPolygonMiden/miden-vm", rev = "75bd636a6b83fd6cb134b0981663aa28e49a811c" } -miden-core = { version = "0.11.0", git = "https://github.com/0xPolygonMiden/miden-vm", rev = "75bd636a6b83fd6cb134b0981663aa28e49a811c" } -miden-processor = { version = "0.11.0", git = "https://github.com/0xPolygonMiden/miden-vm", rev = "75bd636a6b83fd6cb134b0981663aa28e49a811c" } -miden-stdlib = { version = "0.11.0", git = "https://github.com/0xPolygonMiden/miden-vm", rev = "75bd636a6b83fd6cb134b0981663aa28e49a811c", features = [ +miden-assembly = { version = "0.11.0", git = "https://github.com/0xPolygonMiden/miden-vm", rev = "a1b44a7e28a64da99c2d0a7260498e1b84f57532" } +miden-core = { version = "0.11.0", git = "https://github.com/0xPolygonMiden/miden-vm", rev = "a1b44a7e28a64da99c2d0a7260498e1b84f57532" } +miden-processor = { version = "0.11.0", git = "https://github.com/0xPolygonMiden/miden-vm", rev = "a1b44a7e28a64da99c2d0a7260498e1b84f57532" } +miden-stdlib = { version = "0.11.0", git = "https://github.com/0xPolygonMiden/miden-vm", rev = "a1b44a7e28a64da99c2d0a7260498e1b84f57532", features = [ "with-debug-info", ] } -miden-package = { version = "0.11.0", git = "https://github.com/0xPolygonMiden/miden-vm", rev = "75bd636a6b83fd6cb134b0981663aa28e49a811c" } +miden-package = { version = "0.11.0", git = "https://github.com/0xPolygonMiden/miden-vm", rev = "a1b44a7e28a64da99c2d0a7260498e1b84f57532" } -#miden-assembly = { git = "https://github.com/0xPolygonMiden/miden-vm", rev = "828557c28ca1d159bfe42195e7ea73256ce4aa06" } -#miden-core = { git = "https://github.com/0xPolygonMiden/miden-vm", rev = "828557c28ca1d159bfe42195e7ea73256ce4aa06" } -#miden-processor = { git = "https://github.com/0xPolygonMiden/miden-vm", rev = "828557c28ca1d159bfe42195e7ea73256ce4aa06" } -#miden-stdlib = { git = "https://github.com/0xPolygonMiden/miden-vm", rev = "828557c28ca1d159bfe42195e7ea73256ce4aa06" } midenc-codegen-masm = { version = "0.0.7", path = "codegen/masm" } midenc-dialect-hir = { version = "0.0.7", path = "dialects/hir" } midenc-hir = { version = "0.0.7", path = "hir" } diff --git a/codegen/masm/src/emulator/mod.rs b/codegen/masm/src/emulator/mod.rs index 892abdfe9..4b6e636d7 100644 --- a/codegen/masm/src/emulator/mod.rs +++ b/codegen/masm/src/emulator/mod.rs @@ -1418,12 +1418,9 @@ impl Emulator { Op::AdvInjectInsertMem | Op::AdvInjectInsertHperm | Op::AdvInjectInsertHdword - | Op::AdvInjectInsertHdwordImm(_) | Op::AdvInjectPushMTreeNode | Op::AdvInjectPushMapVal - | Op::AdvInjectPushMapValImm(_) - | Op::AdvInjectPushMapValN - | Op::AdvInjectPushMapValNImm(_) => unimplemented!(), + | Op::AdvInjectPushMapValN => unimplemented!(), Op::Assert => { let cond = pop_bool!(self); assert!(cond, "assertion failed: expected true, got false"); diff --git a/hir/src/asm/builder.rs b/hir/src/asm/builder.rs index d1bfb46c7..0d928825a 100644 --- a/hir/src/asm/builder.rs +++ b/hir/src/asm/builder.rs @@ -1861,11 +1861,8 @@ fn apply_op_stack_effects( MasmOp::AdvInjectInsertMem | MasmOp::AdvInjectInsertHperm | MasmOp::AdvInjectInsertHdword - | MasmOp::AdvInjectInsertHdwordImm(_) | MasmOp::AdvInjectPushMapVal - | MasmOp::AdvInjectPushMapValImm(_) | MasmOp::AdvInjectPushMapValN - | MasmOp::AdvInjectPushMapValNImm(_) | MasmOp::AdvInjectPushU64Div | MasmOp::AdvInjectPushMTreeNode | MasmOp::AdvInjectPushSignature(_) => (), diff --git a/hir/src/asm/display.rs b/hir/src/asm/display.rs index d92058082..e8b3f8135 100644 --- a/hir/src/asm/display.rs +++ b/hir/src/asm/display.rs @@ -293,13 +293,6 @@ impl PrettyPrint for DisplayOp<'_> { | MasmOp::U32ShrImm(imm) | MasmOp::U32RotlImm(imm) | MasmOp::U32RotrImm(imm)) => text(format!("{op}")) + const_text(".") + display(*imm), - op @ (MasmOp::AdvInjectPushMapValImm(offset) - | MasmOp::AdvInjectPushMapValNImm(offset)) => { - text(format!("{op}")) + const_text(".") + display(*offset) - } - op @ MasmOp::AdvInjectInsertHdwordImm(domain) => { - text(format!("{op}")) + const_text(".") + display(*domain) - } op @ MasmOp::DebugStackN(n) => text(format!("{op}")) + const_text(".") + display(*n), op @ MasmOp::DebugMemoryAt(start) => { text(format!("{op}")) + const_text(".") + display(*start) diff --git a/hir/src/asm/isa.rs b/hir/src/asm/isa.rs index f365ff1b1..7ea24c760 100644 --- a/hir/src/asm/isa.rs +++ b/hir/src/asm/isa.rs @@ -1,7 +1,8 @@ use std::{collections::BTreeSet, fmt}; use cranelift_entity::entity_impl; -pub use miden_assembly::ast::{AdviceInjectorNode, DebugOptions}; +pub use miden_assembly::ast::DebugOptions; +use miden_assembly::ast::SystemEventNode; use smallvec::{smallvec, SmallVec}; use crate::{ @@ -264,15 +265,6 @@ pub enum MasmOp { /// [K] /// ``` AdvInjectPushMapVal, - /// Pushes a list of field elements on the advice stack. - /// - /// The list is looked up in the advice map using the word starting at `index` on the operand - /// stack. - /// - /// ```text,ignore - /// [K] - /// ``` - AdvInjectPushMapValImm(u8), /// Pushes a list of field elements, along with the number of elements on the advice stack. /// /// The list is looked up in the advice map using the word on top of the operand stack. @@ -281,15 +273,6 @@ pub enum MasmOp { /// [K] /// ``` AdvInjectPushMapValN, - /// Pushes a list of field elements, along with the number of elements on the advice stack. - /// - /// The list is looked up in the advice map using the word starting at `index` on the operand - /// stack. - /// - /// ```text,ignore - /// [K] - /// ``` - AdvInjectPushMapValNImm(u8), /// Pushes a node of a Merkle tree with root `R` at depth `d` and index `i` from the Merkle /// store onto the advice stack /// @@ -311,16 +294,6 @@ pub enum MasmOp { /// [B, A] /// ``` AdvInjectInsertHdword, - /// Reads the top two words from the stack, and computes a key `K` as `hash(A || B, d)`. - /// - /// `d` is a domain value which can be in the range 0..=255 - /// - /// The two words that were hashed are then saved into the advice map under `K` as `[A, B]`. - /// - /// ```text,ignore - /// [B, A] - /// ``` - AdvInjectInsertHdwordImm(u8), /// Reads the top three words from the stack, and computes a key `K` as `permute(C, A, /// B).digest`. /// @@ -1119,13 +1092,10 @@ impl MasmOp { | Self::Trace(_) | Self::AdvInjectPushU64Div | Self::AdvInjectPushMapVal - | Self::AdvInjectPushMapValImm(_) | Self::AdvInjectPushMapValN - | Self::AdvInjectPushMapValNImm(_) | Self::AdvInjectPushMTreeNode | Self::AdvInjectInsertMem | Self::AdvInjectInsertHdword - | Self::AdvInjectInsertHdwordImm(_) | Self::AdvInjectInsertHperm | Self::AdvInjectPushSignature(_) | Self::DebugStack @@ -1369,26 +1339,17 @@ impl MasmOp { Instruction::AdvPipe => Self::AdvPipe, Instruction::AdvPush(byte) => Self::AdvPush(unwrap_u8!(byte)), Instruction::AdvLoadW => Self::AdvLoadw, - Instruction::AdvInject(AdviceInjectorNode::InsertMem) => Self::AdvInjectInsertMem, - Instruction::AdvInject(AdviceInjectorNode::InsertHperm) => Self::AdvInjectInsertHperm, - Instruction::AdvInject(AdviceInjectorNode::InsertHdword) => Self::AdvInjectInsertHdword, - Instruction::AdvInject(AdviceInjectorNode::InsertHdwordImm { domain }) => { - Self::AdvInjectInsertHdwordImm(unwrap_u8!(domain)) - } - Instruction::AdvInject(AdviceInjectorNode::PushU64Div) => Self::AdvInjectPushU64Div, - Instruction::AdvInject(AdviceInjectorNode::PushMtNode) => Self::AdvInjectPushMTreeNode, - Instruction::AdvInject(AdviceInjectorNode::PushMapVal) => Self::AdvInjectPushMapVal, - Instruction::AdvInject(AdviceInjectorNode::PushMapValImm { offset }) => { - Self::AdvInjectPushMapValImm(unwrap_u8!(offset)) - } - Instruction::AdvInject(AdviceInjectorNode::PushMapValN) => Self::AdvInjectPushMapValN, - Instruction::AdvInject(AdviceInjectorNode::PushMapValNImm { offset }) => { - Self::AdvInjectPushMapValNImm(unwrap_u8!(offset)) - } - Instruction::AdvInject(AdviceInjectorNode::PushSignature { kind }) => { + Instruction::SysEvent(SystemEventNode::InsertMem) => Self::AdvInjectInsertMem, + Instruction::SysEvent(SystemEventNode::InsertHperm) => Self::AdvInjectInsertHperm, + Instruction::SysEvent(SystemEventNode::InsertHdword) => Self::AdvInjectInsertHdword, + Instruction::SysEvent(SystemEventNode::PushU64Div) => Self::AdvInjectPushU64Div, + Instruction::SysEvent(SystemEventNode::PushMtNode) => Self::AdvInjectPushMTreeNode, + Instruction::SysEvent(SystemEventNode::PushMapVal) => Self::AdvInjectPushMapVal, + Instruction::SysEvent(SystemEventNode::PushMapValN) => Self::AdvInjectPushMapValN, + Instruction::SysEvent(SystemEventNode::PushSignature { kind }) => { Self::AdvInjectPushSignature(kind) } - Instruction::AdvInject(injector) => { + Instruction::SysEvent(injector) => { unimplemented!("unsupported advice injector: {injector:?}") } ref ix @ (Instruction::Exec(ref target) @@ -1596,26 +1557,15 @@ impl MasmOp { Self::AdvPipe => Instruction::AdvPipe, Self::AdvPush(n) => Instruction::AdvPush(n.into()), Self::AdvLoadw => Instruction::AdvLoadW, - Self::AdvInjectPushU64Div => Instruction::AdvInject(AdviceInjectorNode::PushU64Div), - Self::AdvInjectPushMTreeNode => Instruction::AdvInject(AdviceInjectorNode::PushMtNode), - Self::AdvInjectPushMapVal => Instruction::AdvInject(AdviceInjectorNode::PushMapVal), - Self::AdvInjectPushMapValImm(n) => { - Instruction::AdvInject(AdviceInjectorNode::PushMapValImm { offset: n.into() }) - } - Self::AdvInjectPushMapValN => Instruction::AdvInject(AdviceInjectorNode::PushMapValN), - Self::AdvInjectPushMapValNImm(n) => { - Instruction::AdvInject(AdviceInjectorNode::PushMapValNImm { offset: n.into() }) - } - Self::AdvInjectInsertMem => Instruction::AdvInject(AdviceInjectorNode::InsertMem), - Self::AdvInjectInsertHperm => Instruction::AdvInject(AdviceInjectorNode::InsertHperm), - Self::AdvInjectInsertHdword => Instruction::AdvInject(AdviceInjectorNode::InsertHdword), - Self::AdvInjectInsertHdwordImm(domain) => { - Instruction::AdvInject(AdviceInjectorNode::InsertHdwordImm { - domain: domain.into(), - }) - } + Self::AdvInjectPushU64Div => Instruction::SysEvent(SystemEventNode::PushU64Div), + Self::AdvInjectPushMTreeNode => Instruction::SysEvent(SystemEventNode::PushMtNode), + Self::AdvInjectPushMapVal => Instruction::SysEvent(SystemEventNode::PushMapVal), + Self::AdvInjectPushMapValN => Instruction::SysEvent(SystemEventNode::PushMapValN), + Self::AdvInjectInsertMem => Instruction::SysEvent(SystemEventNode::InsertMem), + Self::AdvInjectInsertHperm => Instruction::SysEvent(SystemEventNode::InsertHperm), + Self::AdvInjectInsertHdword => Instruction::SysEvent(SystemEventNode::InsertHdword), Self::AdvInjectPushSignature(kind) => { - Instruction::AdvInject(AdviceInjectorNode::PushSignature { kind }) + Instruction::SysEvent(SystemEventNode::PushSignature { kind }) } Self::If(..) | Self::While(_) | Self::Repeat(..) => { panic!("control flow instructions are meant to be handled specially by the caller") @@ -1871,17 +1821,11 @@ impl fmt::Display for MasmOp { Self::AdvLoadw => f.write_str("adv_loadw"), Self::AdvInjectPushU64Div => f.write_str("adv.push_u64div"), Self::AdvInjectPushMTreeNode => f.write_str("adv.push_mtnode"), - Self::AdvInjectPushMapVal | Self::AdvInjectPushMapValImm(_) => { - f.write_str("adv.push_mapval") - } - Self::AdvInjectPushMapValN | Self::AdvInjectPushMapValNImm(_) => { - f.write_str("adv.push_mapvaln") - } + Self::AdvInjectPushMapVal => f.write_str("adv.push_mapval"), + Self::AdvInjectPushMapValN => f.write_str("adv.push_mapvaln"), Self::AdvInjectInsertMem => f.write_str("adv.insert_mem"), Self::AdvInjectInsertHperm => f.write_str("adv.insert_hperm"), - Self::AdvInjectInsertHdword | Self::AdvInjectInsertHdwordImm(_) => { - f.write_str("adv.insert_hdword") - } + Self::AdvInjectInsertHdword => f.write_str("adv.insert_hdword"), Self::AdvInjectPushSignature(kind) => write!(f, "adv.push_sig.{kind}"), Self::If(..) => f.write_str("if.true"), Self::While(_) => f.write_str("while.true"), diff --git a/midenc-compile/src/stages/assemble.rs b/midenc-compile/src/stages/assemble.rs index d7dff3e96..25dfdd93a 100644 --- a/midenc-compile/src/stages/assemble.rs +++ b/midenc-compile/src/stages/assemble.rs @@ -1,3 +1,4 @@ +use miden_assembly::ast::QualifiedProcedureName; use miden_package::{Dependency, MastArtifact, Package}; use midenc_codegen_masm::MasmArtifact; @@ -102,10 +103,9 @@ fn build_package(mast: MastArtifact, masm: &MasmArtifact, session: &Session) -> unreachable!("expected MasmArtifact to be a library"); }; for module_info in lib.module_infos() { - let module_path = module_info.path().path(); for (_, proc_info) in module_info.procedures() { - let proc_name = proc_info.name.as_str(); - let name = format!("{module_path}::{proc_name}"); + let name = + QualifiedProcedureName::new(module_info.path().clone(), proc_info.name.clone()); let digest = proc_info.digest; manifest.exports.insert(miden_package::PackageExport { name, digest }); } diff --git a/midenc-debug/src/exec/executor.rs b/midenc-debug/src/exec/executor.rs index ed936eb23..7d370271a 100644 --- a/midenc-debug/src/exec/executor.rs +++ b/midenc-debug/src/exec/executor.rs @@ -8,8 +8,8 @@ use std::{ use miden_assembly::Library as CompiledLibrary; use miden_core::{Program, StackInputs, Word}; use miden_package::{ - Dependency, DependencyName, DependencyResolution, DependencyResolver, LocalResolution, - MastArtifact, MemDependencyResolverByDigest, SystemLibraryId, + Dependency, DependencyName, DependencyResolver, LocalResolvedDependency, MastArtifact, + MemDependencyResolverByDigest, ResolvedDependency, }; use miden_processor::{ AdviceInputs, ContextId, ExecutionError, Felt, MastForest, MemAdviceProvider, Process, @@ -79,11 +79,11 @@ impl Executor { log::debug!("dependency {:?} resolved to {:?}", dep, resolution); log::debug!("loading library from package dependency: {:?}", dep); match resolution { - DependencyResolution::Local(LocalResolution::Library(lib)) => { + ResolvedDependency::Local(LocalResolvedDependency::Library(lib)) => { let library = lib.as_ref(); self.with_mast_forest(lib.mast_forest().clone()); } - DependencyResolution::Local(LocalResolution::Package(pkg)) => { + ResolvedDependency::Local(LocalResolvedDependency::Package(pkg)) => { if let MastArtifact::Library(lib) = &pkg.mast { self.with_mast_forest(lib.mast_forest().clone()); } else { @@ -151,11 +151,12 @@ impl Executor { let process_state: ProcessState = (&process).into(); let root_context = process_state.ctx(); let result = process.execute(program, &mut host); - let mut iter = VmStateIterator::new(process, result.clone()); + let stack_outputs = result.as_ref().map(|so| so.clone()).unwrap_or_default(); + let mut iter = VmStateIterator::new(process, result); let mut callstack = CallStack::new(trace_events); DebugExecutor { iter, - result, + stack_outputs, contexts: Default::default(), root_context, current_context: root_context, diff --git a/midenc-debug/src/exec/host.rs b/midenc-debug/src/exec/host.rs index 830e4ea6d..b05b8983d 100644 --- a/midenc-debug/src/exec/host.rs +++ b/midenc-debug/src/exec/host.rs @@ -2,8 +2,8 @@ use std::{collections::BTreeMap, sync::Arc}; use miden_core::crypto::hash::RpoDigest; use miden_processor::{ - AdviceExtractor, AdviceInjector, AdviceProvider, ExecutionError, Host, HostResponse, - MastForest, MastForestStore, MemAdviceProvider, MemMastForestStore, ProcessState, RowIndex, + AdviceProvider, ExecutionError, Host, MastForest, MastForestStore, MemAdviceProvider, + MemMastForestStore, ProcessState, RowIndex, }; use super::{TraceEvent, TraceHandler}; @@ -58,31 +58,11 @@ impl DebuggerHost { impl Host for DebuggerHost { type AdviceProvider = MemAdviceProvider; - fn get_advice( - &mut self, - process: ProcessState, - extractor: AdviceExtractor, - ) -> Result { - self.adv_provider.get_advice(process, &extractor) - } - - fn set_advice( - &mut self, - process: ProcessState, - injector: AdviceInjector, - ) -> Result { - self.adv_provider.set_advice(process, &injector) - } - fn get_mast_forest(&self, node_digest: &RpoDigest) -> Option> { self.store.get(node_digest) } - fn on_trace( - &mut self, - process: ProcessState, - trace_id: u32, - ) -> Result { + fn on_trace(&mut self, process: ProcessState, trace_id: u32) -> Result<(), ExecutionError> { let event = TraceEvent::from(trace_id); let clk = process.clk(); if let Some(handlers) = self.tracing_callbacks.get_mut(&trace_id) { @@ -90,7 +70,7 @@ impl Host for DebuggerHost { handler(clk, event); } } - Ok(HostResponse::None) + Ok(()) } fn on_assert_failed(&mut self, process: ProcessState, err_code: u32) -> ExecutionError { diff --git a/midenc-debug/src/exec/state.rs b/midenc-debug/src/exec/state.rs index 5576194fc..f0b0fd14d 100644 --- a/midenc-debug/src/exec/state.rs +++ b/midenc-debug/src/exec/state.rs @@ -18,7 +18,7 @@ pub struct DebugExecutor { /// The underlying [VmStateIterator] being driven pub iter: VmStateIterator, /// The final outcome of the program being executed - pub result: Result, + pub stack_outputs: StackOutputs, /// The set of contexts allocated during execution so far pub contexts: BTreeSet, /// The root context @@ -46,7 +46,7 @@ impl DebugExecutor { /// Returns the call frame exited this cycle, if any pub fn step(&mut self) -> Result, ExecutionError> { if self.stopped { - return self.result.as_ref().map(|_| None).map_err(|err| err.clone()); + return Ok(None); } match self.iter.next() { Some(Ok(state)) => { @@ -85,12 +85,11 @@ impl DebugExecutor { let last_cycle = self.cycle; let trace_len_summary = *self.iter.trace_len_summary(); let (_, _, _, chiplets, _) = self.iter.into_parts(); - let outputs = self.result.unwrap_or_default(); ExecutionTrace { root_context: self.root_context, last_cycle: RowIndex::from(last_cycle), chiplets: Chiplets::new(move |context, clk| chiplets.get_mem_state_at(context, clk)), - outputs, + outputs: self.stack_outputs, trace_len_summary, } } diff --git a/midenc-debug/src/ui/state.rs b/midenc-debug/src/ui/state.rs index 0a3686526..ddf7ffdc8 100644 --- a/midenc-debug/src/ui/state.rs +++ b/midenc-debug/src/ui/state.rs @@ -268,11 +268,13 @@ fn load_package(session: &Session) -> Result, Report let package = match &session.inputs[0].file { InputType::Real(ref path) => { let bytes = std::fs::read(path).into_diagnostic()?; - miden_package::Package::read_from_bytes(bytes).map(Arc::new)? - } - InputType::Stdin { input, .. } => { - miden_package::Package::read_from_bytes(input.as_slice()).map(Arc::new)? + miden_package::Package::read_from_bytes(&bytes) + .map(Arc::new) + .into_diagnostic()? } + InputType::Stdin { input, .. } => miden_package::Package::read_from_bytes(input.as_slice()) + .map(Arc::new) + .into_diagnostic()?, }; if let Some(entry) = session.options.entrypoint.as_ref() { diff --git a/midenc-session/src/emit.rs b/midenc-session/src/emit.rs index c817b1968..02656e60d 100644 --- a/midenc-session/src/emit.rs +++ b/midenc-session/src/emit.rs @@ -403,7 +403,7 @@ impl Emit for miden_package::Package { } }, OutputMode::Binary => { - let bytes = self.write_to_bytes().map_err(std::io::Error::other)?; + let bytes = self.to_bytes(); writer.write_all(bytes.as_slice()) } } diff --git a/midenc-session/src/libs.rs b/midenc-session/src/libs.rs index 0717a6137..d3768972c 100644 --- a/midenc-session/src/libs.rs +++ b/midenc-session/src/libs.rs @@ -10,6 +10,7 @@ pub use miden_assembly::{ Library as CompiledLibrary, LibraryNamespace, LibraryPath, LibraryPathComponent, }; use miden_base_sys::masl::tx::MidenTxKernelLibrary; +use miden_core::utils::Deserializable; use miden_stdlib::StdLibrary; use crate::{ @@ -110,7 +111,7 @@ impl LinkLibrary { }), LibraryKind::Masp => { let bytes = std::fs::read(path).into_diagnostic()?; - let package = miden_package::Package::read_from_bytes(bytes)?; + let package = miden_package::Package::read_from_bytes(&bytes).into_diagnostic()?; let lib = match package.mast { miden_package::MastArtifact::Executable(_) => { return Err(Report::msg(format!( diff --git a/tests/integration/expected/rust_sdk/cross_ctx_account.masm b/tests/integration/expected/rust_sdk/cross_ctx_account.masm index ba0bdeb77..20c84f99b 100644 --- a/tests/integration/expected/rust_sdk/cross_ctx_account.masm +++ b/tests/integration/expected/rust_sdk/cross_ctx_account.masm @@ -2,7 +2,7 @@ use.cross_ctx_account -export."process-felt" +export.process-felt exec.::cross_ctx_account::"miden:cross-ctx-account/foo@1.0.0#process-felt" end diff --git a/tests/integration/expected/rust_sdk/cross_ctx_note.masm b/tests/integration/expected/rust_sdk/cross_ctx_note.masm index 5f5c647ab..d0846c600 100644 --- a/tests/integration/expected/rust_sdk/cross_ctx_note.masm +++ b/tests/integration/expected/rust_sdk/cross_ctx_note.masm @@ -2,8 +2,8 @@ use.miden:cross-ctx-account/foo@1.0.0 -export."process-felt" - call.::miden:cross-ctx-account/foo@1.0.0::"process-felt" +export.process-felt + call.::miden:cross-ctx-account/foo@1.0.0::process-felt end @@ -443,7 +443,7 @@ end export."miden:base/note-script@1.0.0#note-script" exec."wit_bindgen_rt::run_ctors_once" push.7 - exec.::lower-imports-miden:cross-ctx-account/foo@1.0.0::"process-felt" + exec.::lower-imports-miden:cross-ctx-account/foo@1.0.0::process-felt push.10 assert_eq end diff --git a/tests/integration/src/rust_masm_tests/rust_sdk.rs b/tests/integration/src/rust_masm_tests/rust_sdk.rs index ee8836028..0922d2f99 100644 --- a/tests/integration/src/rust_masm_tests/rust_sdk.rs +++ b/tests/integration/src/rust_masm_tests/rust_sdk.rs @@ -1,7 +1,7 @@ use std::{collections::BTreeMap, env, path::PathBuf, sync::Arc}; use expect_test::expect_file; -use miden_core::crypto::hash::RpoDigest; +use miden_core::{crypto::hash::RpoDigest, utils::Deserializable}; use miden_package::Package; use midenc_debug::Executor; use midenc_frontend_wasm::WasmTranslationConfig; @@ -210,7 +210,7 @@ fn rust_sdk_cross_ctx_note() { let mut exec = Executor::new(vec![]); let account_package = - Arc::new(Package::read_from_bytes(std::fs::read(masp_path).unwrap()).unwrap()); + Arc::new(Package::read_from_bytes(&std::fs::read(masp_path).unwrap()).unwrap()); exec.dependency_resolver_mut() .add(account_package.digest(), account_package.into());