AVM evaluate wip

This commit is contained in:
collin 2022-06-20 16:41:21 -07:00
parent 88aa7c478e
commit 6366f44762
5 changed files with 442 additions and 39 deletions

447
Cargo.lock generated
View File

@ -231,6 +231,12 @@ version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf9ff0bbfd639f15c74af777d81383cf53efb7c93613f6cab67c6c11e05bbf8b"
[[package]]
name = "bech32"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c5738be7561b0eeb501ef1d5c5db3f24e01ceb55fededd9b00039aada34966ad"
[[package]]
name = "bincode"
version = "1.3.3"
@ -713,6 +719,22 @@ dependencies = [
"cfg-if",
]
[[package]]
name = "enum_index"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5532bdea562e7be83060c36185eecccba82fe16729d2eaad2891d65417656dd"
[[package]]
name = "enum_index_derive"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ab22c8085548bf06190113dca556e149ecdbb05ae5b972a2b9899f26b944ee4"
dependencies = [
"quote 0.3.15",
"syn 0.11.11",
]
[[package]]
name = "envmnt"
version = "0.8.4"
@ -1185,7 +1207,8 @@ dependencies = [
"self_update",
"serde",
"serde_json",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=51633e2)",
"snarkvm-bytecode",
"snarkvm-circuit",
"sys-info",
"test_dir",
"toml",
@ -1417,6 +1440,17 @@ dependencies = [
"num-traits",
]
[[package]]
name = "num-derive"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
dependencies = [
"proc-macro2 1.0.40",
"quote 1.0.20",
"syn 1.0.98",
]
[[package]]
name = "num-integer"
version = "0.1.45"
@ -1685,6 +1719,16 @@ dependencies = [
"toml",
]
[[package]]
name = "proc-macro-crate"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
dependencies = [
"thiserror",
"toml",
]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
@ -1715,7 +1759,7 @@ version = "0.4.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
dependencies = [
"unicode-xid",
"unicode-xid 0.1.0",
]
[[package]]
@ -1736,6 +1780,12 @@ dependencies = [
"memchr",
]
[[package]]
name = "quote"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
[[package]]
name = "quote"
version = "0.6.13"
@ -2157,13 +2207,285 @@ dependencies = [
"serde",
"sha2",
"smallvec",
"snarkvm-curves",
"snarkvm-fields",
"snarkvm-r1cs",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-r1cs 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"thiserror",
]
[[package]]
name = "snarkvm-bytecode"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"enum_index",
"enum_index_derive",
"indexmap",
"nom",
"once_cell",
"paste",
"snarkvm-circuit",
"snarkvm-console-program",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-circuit"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"snarkvm-circuit-account",
"snarkvm-circuit-algorithms",
"snarkvm-circuit-environment",
"snarkvm-circuit-network",
"snarkvm-circuit-program",
"snarkvm-circuit-types",
]
[[package]]
name = "snarkvm-circuit-account"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"snarkvm-circuit-algorithms",
"snarkvm-circuit-network",
"snarkvm-circuit-types",
"snarkvm-console-account",
]
[[package]]
name = "snarkvm-circuit-algorithms"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"snarkvm-circuit-types",
"snarkvm-console-algorithms",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-circuit-environment"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"indexmap",
"itertools",
"nom",
"num-derive",
"num-traits",
"once_cell",
"rayon",
"snarkvm-circuit-environment-witness",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-r1cs 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-circuit-environment-witness"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
[[package]]
name = "snarkvm-circuit-network"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"snarkvm-circuit-algorithms",
"snarkvm-circuit-types",
"snarkvm-console-network",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-circuit-program"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"nom",
"snarkvm-circuit-account",
"snarkvm-circuit-algorithms",
"snarkvm-circuit-network",
"snarkvm-circuit-types",
"snarkvm-console-account",
"snarkvm-console-program",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-circuit-types"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"snarkvm-circuit-environment",
"snarkvm-circuit-types-address",
"snarkvm-circuit-types-boolean",
"snarkvm-circuit-types-field",
"snarkvm-circuit-types-group",
"snarkvm-circuit-types-integers",
"snarkvm-circuit-types-scalar",
"snarkvm-circuit-types-string",
]
[[package]]
name = "snarkvm-circuit-types-address"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"bech32 0.9.0",
"snarkvm-circuit-environment",
"snarkvm-circuit-types-boolean",
"snarkvm-circuit-types-field",
"snarkvm-circuit-types-group",
"snarkvm-circuit-types-scalar",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-circuit-types-boolean"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"snarkvm-circuit-environment",
]
[[package]]
name = "snarkvm-circuit-types-field"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"snarkvm-circuit-environment",
"snarkvm-circuit-types-boolean",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-circuit-types-group"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"snarkvm-circuit-environment",
"snarkvm-circuit-types-boolean",
"snarkvm-circuit-types-field",
"snarkvm-circuit-types-scalar",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-circuit-types-integers"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"snarkvm-circuit-environment",
"snarkvm-circuit-types-boolean",
"snarkvm-circuit-types-field",
]
[[package]]
name = "snarkvm-circuit-types-scalar"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"snarkvm-circuit-environment",
"snarkvm-circuit-types-boolean",
"snarkvm-circuit-types-field",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-circuit-types-string"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"snarkvm-circuit-environment",
"snarkvm-circuit-types-boolean",
"snarkvm-circuit-types-field",
"snarkvm-circuit-types-integers",
]
[[package]]
name = "snarkvm-console-account"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"anyhow",
"base58",
"bech32 0.9.0",
"serde",
"snarkvm-console-algorithms",
"snarkvm-console-network",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-console-algorithms"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"anyhow",
"blake2s_simd",
"itertools",
"smallvec",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-console-network"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"anyhow",
"itertools",
"snarkvm-console-algorithms",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-console-program"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"anyhow",
"enum_index",
"enum_index_derive",
"itertools",
"once_cell",
"rayon",
"serde",
"serde_json",
"snarkvm-console-account",
"snarkvm-console-algorithms",
"snarkvm-console-network",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
]
[[package]]
name = "snarkvm-curves"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"derivative",
"rand",
"rustc_version",
"serde",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"thiserror",
]
[[package]]
name = "snarkvm-curves"
version = "0.7.5"
@ -2173,23 +2495,11 @@ dependencies = [
"rand",
"rustc_version",
"serde",
"snarkvm-fields",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"thiserror",
]
[[package]]
name = "snarkvm-derives"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=51633e2#51633e2fac247bc829bd316a93f59b6ba0759661"
dependencies = [
"proc-macro-crate",
"proc-macro-error",
"proc-macro2 1.0.40",
"quote 1.0.20",
"syn 1.0.98",
]
[[package]]
name = "snarkvm-dpc"
version = "0.7.5"
@ -2197,7 +2507,7 @@ source = "git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79#85b7a790659168d6
dependencies = [
"anyhow",
"base58",
"bech32",
"bech32 0.8.1",
"bincode",
"blake2",
"derivative",
@ -2209,16 +2519,30 @@ dependencies = [
"serde",
"serde_json",
"snarkvm-algorithms",
"snarkvm-curves",
"snarkvm-fields",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-gadgets",
"snarkvm-parameters",
"snarkvm-r1cs",
"snarkvm-r1cs 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"thiserror",
"time",
]
[[package]]
name = "snarkvm-fields"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"anyhow",
"derivative",
"rand",
"rayon",
"serde",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"thiserror",
]
[[package]]
name = "snarkvm-fields"
version = "0.7.5"
@ -2243,9 +2567,9 @@ dependencies = [
"itertools",
"num-traits",
"snarkvm-algorithms",
"snarkvm-curves",
"snarkvm-fields",
"snarkvm-r1cs",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-r1cs 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"thiserror",
]
@ -2267,6 +2591,22 @@ dependencies = [
"thiserror",
]
[[package]]
name = "snarkvm-r1cs"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"anyhow",
"cfg-if",
"fxhash",
"indexmap",
"itertools",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"thiserror",
]
[[package]]
name = "snarkvm-r1cs"
version = "0.7.5"
@ -2277,8 +2617,8 @@ dependencies = [
"fxhash",
"indexmap",
"itertools",
"snarkvm-curves",
"snarkvm-fields",
"snarkvm-curves 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-fields 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"snarkvm-utilities 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"thiserror",
]
@ -2286,15 +2626,18 @@ dependencies = [
[[package]]
name = "snarkvm-utilities"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=51633e2#51633e2fac247bc829bd316a93f59b6ba0759661"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"aleo-std",
"anyhow",
"bincode",
"itertools",
"num-bigint",
"num_cpus",
"rand",
"rand_xorshift",
"rayon",
"serde",
"snarkvm-derives",
"snarkvm-utilities-derives 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86)",
"thiserror",
]
@ -2312,16 +2655,28 @@ dependencies = [
"rand_xorshift",
"rayon",
"serde",
"snarkvm-utilities-derives",
"snarkvm-utilities-derives 0.7.5 (git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79)",
"thiserror",
]
[[package]]
name = "snarkvm-utilities-derives"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=327dd86#327dd865154c121ce193ff21c168f76c5ee0c94c"
dependencies = [
"proc-macro-crate 1.1.3",
"proc-macro-error",
"proc-macro2 1.0.40",
"quote 1.0.20",
"syn 1.0.98",
]
[[package]]
name = "snarkvm-utilities-derives"
version = "0.7.5"
source = "git+https://github.com/AleoHQ/snarkVM.git?rev=85b7a79#85b7a790659168d693ebb93bfe49e3b8808fbb41"
dependencies = [
"proc-macro-crate",
"proc-macro-crate 0.1.5",
"proc-macro-error",
"proc-macro2 1.0.40",
"quote 1.0.20",
@ -2350,6 +2705,17 @@ version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "syn"
version = "0.11.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
dependencies = [
"quote 0.3.15",
"synom",
"unicode-xid 0.0.4",
]
[[package]]
name = "syn"
version = "0.15.44"
@ -2358,7 +2724,7 @@ checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
dependencies = [
"proc-macro2 0.4.30",
"quote 0.6.13",
"unicode-xid",
"unicode-xid 0.1.0",
]
[[package]]
@ -2372,6 +2738,15 @@ dependencies = [
"unicode-ident",
]
[[package]]
name = "synom"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
dependencies = [
"unicode-xid 0.0.4",
]
[[package]]
name = "sys-info"
version = "0.9.1"
@ -2679,6 +3054,12 @@ version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
[[package]]
name = "unicode-xid"
version = "0.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
[[package]]
name = "unicode-xid"
version = "0.1.0"

View File

@ -50,9 +50,13 @@ version = "1.5.3"
path = "./leo/span"
version = "1.5.3"
[dependencies.snarkvm-utilities]
[dependencies.snarkvm-bytecode]
git = "https://github.com/AleoHQ/snarkVM.git"
rev = "51633e2"
rev = "327dd86"
[dependencies.snarkvm-circuit]
git = "https://github.com/AleoHQ/snarkVM.git"
rev = "327dd86"
[dependencies.backtrace]
version = "0.3.65"

View File

@ -170,7 +170,8 @@ impl<'a> Compiler<'a> {
/// Returns a compiled Leo program and prints the resulting bytecode.
/// TODO: Remove when code generation is ready to be integrated into the compiler.
///
pub fn compile_and_generate_bytecode(&self) -> Result<(SymbolTable<'_>, String)> {
pub fn compile_and_generate_bytecode(&mut self) -> Result<(SymbolTable<'_>, String)> {
self.parse_program()?;
let symbol_table = self.compiler_stages()?;
let bytecode = CodeGenerator::do_pass((&self.ast, &self.handler))?;

View File

@ -1,3 +1,6 @@
function main() -> u8 {
return 1u8 + 1u8;
function main(
public r0: field,
r1: field
) -> field {
return r0 + r1;
}

View File

@ -25,6 +25,9 @@ use leo_package::{
source::{MainFile, MAIN_FILENAME, SOURCE_DIRECTORY_NAME},
};
use snarkvm_bytecode::{Identifier, Process, Program, Value};
use snarkvm_circuit::prelude::*;
use clap::StructOpt;
use tracing::span::Span;
@ -176,6 +179,17 @@ impl Command for Build {
tracing::info!("Printing bytecode...\n");
println!("{}", bytecode);
{
// Initialize AVM bytecode.
Process::from_str(&bytecode);
// Run program todo: run with real inputs.
// Run the `HelloWorld` program with the given inputs.
let first = Value::from_str("1field.public");
let second = Value::from_str("1field.private");
let output = Process::get_function(&Identifier::from_str("main")).unwrap().evaluate(&[first, second]);
println!("program output: {}", output.first().unwrap());
}
// }
// }
@ -233,4 +247,4 @@ impl Command for Build {
Ok((program.input_ast, program.ast, checksum_differs))
}
}
}