diff --git a/Cargo.toml b/Cargo.toml index 8566c2d8..04f70d56 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,6 +39,7 @@ implicit_hasher = "allow" match_same_arms = "allow" similar_names = "allow" cast_possible_truncation = "allow" +case_sensitive_file_extension_comparisons = "allow" [workspace.dependencies] rue-lexer = { path = "crates/rue-lexer", version = "0.6.0" } diff --git a/crates/rue-cli/src/main.rs b/crates/rue-cli/src/main.rs index aaa5cfb1..32dd1bd5 100644 --- a/crates/rue-cli/src/main.rs +++ b/crates/rue-cli/src/main.rs @@ -245,7 +245,7 @@ fn test(args: TestArgs) -> Result<()> { process::exit(1); } - let tests = tree.tests(&mut ctx, &mut allocator, None, None, &base_path)?; + let tests = tree.tests(&mut ctx, &mut allocator, None, None, &base_path, false)?; let len = tests.len(); diff --git a/crates/rue-compiler/src/file.rs b/crates/rue-compiler/src/file.rs index 2eed2b7d..93d75fbb 100644 --- a/crates/rue-compiler/src/file.rs +++ b/crates/rue-compiler/src/file.rs @@ -65,6 +65,10 @@ pub enum FileTree { static STD_DIR: Dir<'_> = include_dir!("$CARGO_MANIFEST_DIR/src/std"); impl FileTree { + pub fn empty(ctx: &mut Compiler) -> Result { + Self::load_std_dir(ctx, "empty".to_string(), &[]) + } + pub(crate) fn load_std(ctx: &mut Compiler) -> Result { Self::load_std_dir(ctx, "std".to_string(), STD_DIR.entries()) } @@ -167,7 +171,6 @@ impl FileTree { .to_string(); if fs::metadata(path)?.is_file() { - #[allow(clippy::case_sensitive_file_extension_comparisons)] if !file_name.ends_with(".rue") { return Ok(None); } @@ -391,6 +394,7 @@ impl FileTree { path: Option<&SourceKind>, search_term: Option<&str>, base_path: &Path, + std: bool, ) -> Result, Error> { let tests = ctx .tests() @@ -401,6 +405,10 @@ impl FileTree { return false; } + if matches!(test.path, SourceKind::Std(_)) && !std { + return false; + } + if let Some(search_term) = search_term { let Some(name) = &test.name else { return false; diff --git a/crates/rue-hir/src/lower.rs b/crates/rue-hir/src/lower.rs index a8bce4e8..257e7a1d 100644 --- a/crates/rue-hir/src/lower.rs +++ b/crates/rue-hir/src/lower.rs @@ -245,12 +245,12 @@ impl<'d, 'a, 'g> Lowerer<'d, 'a, 'g> { BinaryOp::BitwiseAnd => self.arena.alloc(Lir::Logand(vec![left, right])), BinaryOp::BitwiseOr => self.arena.alloc(Lir::Logior(vec![left, right])), BinaryOp::BitwiseXor => self.arena.alloc(Lir::Logxor(vec![left, right])), - BinaryOp::LeftShift => { + BinaryOp::RightShift => { let zero = self.arena.alloc(Lir::Atom(vec![])); let neg = self.arena.alloc(Lir::Sub(vec![zero, right])); self.arena.alloc(Lir::Ash(left, neg)) } - BinaryOp::RightShift => self.arena.alloc(Lir::Ash(left, right)), + BinaryOp::LeftShift => self.arena.alloc(Lir::Ash(left, right)), BinaryOp::Gt => self.arena.alloc(Lir::Gt(left, right)), BinaryOp::Lt => self.arena.alloc(Lir::Gt(right, left)), BinaryOp::Gte => { @@ -657,7 +657,7 @@ impl<'d, 'a, 'g> Lowerer<'d, 'a, 'g> { let raise = if self.options.debug_symbols { let error = self.arena.alloc(Lir::Atom( - format!("assertion failed at {}", srcloc.start()).into_bytes(), + format!("assertion failed at {}", srcloc.display(&self.base_path)).into_bytes(), )); vec![error] } else { @@ -677,7 +677,7 @@ impl<'d, 'a, 'g> Lowerer<'d, 'a, 'g> { } let error = self.arena.alloc(Lir::Atom( - format!("raise called at {}", srcloc.start()).into_bytes(), + format!("raise called at {}", srcloc.display(&self.base_path)).into_bytes(), )); let lir = hir.map(|hir| self.lower_hir(env, hir)); diff --git a/crates/rue-tests/src/main.rs b/crates/rue-tests/src/main.rs index 7d88a63c..a79d6b14 100644 --- a/crates/rue-tests/src/main.rs +++ b/crates/rue-tests/src/main.rs @@ -94,6 +94,81 @@ fn run_tests(filter_arg: Option<&str>, base_path: &Path, update: bool) -> Result walk_dir(&base_path.join("tests"), filter_arg, update, &mut failed)?; walk_dir(&base_path.join("examples"), filter_arg, update, &mut failed)?; + println!("Running std tests"); + + let yaml_file = base_path.join("std_tests.yaml"); + + let mut file: TestFile = if yaml_file.try_exists()? { + serde_yml::from_str(&fs::read_to_string(&yaml_file)?)? + } else { + TestFile::default() + }; + + let original = file.clone(); + + let mut allocator = Allocator::new(); + + let mut ctx = Compiler::new(CompilerOptions::default()); + let mut debug_ctx = Compiler::new(CompilerOptions::debug()); + + let unit = FileTree::empty(&mut ctx)?; + let debug_unit = FileTree::empty(&mut debug_ctx)?; + + file.diagnostics = Vec::new(); + + let mut codegen = true; + + for diagnostic in ctx.take_diagnostics() { + file.diagnostics.push(diagnostic.message(base_path)); + + if diagnostic.kind.severity() == DiagnosticSeverity::Error { + codegen = false; + } + } + + let tests = codegen + .then(|| unit.tests(&mut ctx, &mut allocator, None, None, base_path, true)) + .transpose()? + .unwrap_or_default(); + let debug_tests = codegen + .then(|| debug_unit.tests(&mut debug_ctx, &mut allocator, None, None, base_path, true)) + .transpose()? + .unwrap_or_default(); + + if file.tests.len() > tests.len() { + file.tests.truncate(tests.len()); + } + + for _ in file.tests.len()..tests.len() { + file.tests.push(TestCase::default()); + } + + assert_eq!(debug_tests.len(), tests.len()); + + for (i, test_case) in file.tests.iter_mut().enumerate() { + test_case.name.clone_from(&tests[i].name); + + handle_test_case( + &mut allocator, + test_case, + Some(tests[i].ptr), + Some(debug_tests[i].ptr), + )?; + } + + if file != original { + if update { + eprintln!("Test failed, updated yaml file"); + } else { + eprintln!("Test failed, moving on"); + } + failed = true; + } + + if update { + fs::write(yaml_file, serde_yml::to_string(&file)?)?; + } + Ok(failed) } @@ -224,11 +299,20 @@ fn handle_test_file( .flatten(); let tests = codegen - .then(|| unit.tests(&mut ctx, &mut allocator, None, None, &base_path)) + .then(|| unit.tests(&mut ctx, &mut allocator, None, None, &base_path, false)) .transpose()? .unwrap_or_default(); let debug_tests = codegen - .then(|| debug_unit.tests(&mut debug_ctx, &mut allocator, None, None, &base_path)) + .then(|| { + debug_unit.tests( + &mut debug_ctx, + &mut allocator, + None, + None, + &base_path, + false, + ) + }) .transpose()? .unwrap_or_default(); diff --git a/examples/factorial.yaml b/examples/factorial.yaml index f2a8ebe0..7d9cad19 100644 --- a/examples/factorial.yaml +++ b/examples/factorial.yaml @@ -8,7 +8,7 @@ total_cost: 1008876 tests: - name: tests program: (a (q 2 (i (= (a 2 (c 2 (q . -1))) (q . 1)) (q 2 (i (= (a 2 (c 2 ())) (q . 1)) (q 2 (i (= (a 2 (c 2 (q . 1))) (q . 1)) (q 2 (i (= (a 2 (c 2 (q . 2))) (q . 2)) (q 2 (i (= (a 2 (c 2 (q . 3))) (q . 6)) (q 2 (i (= (a 2 (c 2 (q . 4))) (q . 24)) (q 2 (i (= (a 2 (c 2 (q . 5))) (q . 120)) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (c (q 2 (i (> 3 (q . 1)) (q 18 3 (a 2 (c 2 (- 3 (q . 1))))) (q 1 . 1)) 1) ())) - debug_program: (a (q 2 (i (= (a 2 (c 2 (- () (q . 1)))) (q . 1)) (q 2 (i (= (a 2 (c 2 ())) (q . 1)) (q 2 (i (= (a 2 (c 2 (q . 1))) (q . 1)) (q 2 (i (= (a 2 (c 2 (q . 2))) (q . 2)) (q 2 (i (= (a 2 (c 2 (q . 3))) (q . 6)) (q 2 (i (= (a 2 (c 2 (q . 4))) (q . 24)) (q 2 (i (= (a 2 (c 2 (q . 5))) (q . 120)) (q) (q 8 (q . "assertion failed at 20:5"))) 1) (q 8 (q . "assertion failed at 19:5"))) 1) (q 8 (q . "assertion failed at 18:5"))) 1) (q 8 (q . "assertion failed at 17:5"))) 1) (q 8 (q . "assertion failed at 16:5"))) 1) (q 8 (q . "assertion failed at 15:5"))) 1) (q 8 (q . "assertion failed at 14:5"))) 1) (c (q 2 (i (> 3 (q . 1)) (q 18 3 (a 2 (c 2 (- 3 (q . 1))))) (q 1 . 1)) 1) ())) + debug_program: (a (q 2 (i (= (a 2 (c 2 (- () (q . 1)))) (q . 1)) (q 2 (i (= (a 2 (c 2 ())) (q . 1)) (q 2 (i (= (a 2 (c 2 (q . 1))) (q . 1)) (q 2 (i (= (a 2 (c 2 (q . 2))) (q . 2)) (q 2 (i (= (a 2 (c 2 (q . 3))) (q . 6)) (q 2 (i (= (a 2 (c 2 (q . 4))) (q . 24)) (q 2 (i (= (a 2 (c 2 (q . 5))) (q . 120)) (q) (q 8 (q . "assertion failed at factorial.rue:20:5"))) 1) (q 8 (q . "assertion failed at factorial.rue:19:5"))) 1) (q 8 (q . "assertion failed at factorial.rue:18:5"))) 1) (q 8 (q . "assertion failed at factorial.rue:17:5"))) 1) (q 8 (q . "assertion failed at factorial.rue:16:5"))) 1) (q 8 (q . "assertion failed at factorial.rue:15:5"))) 1) (q 8 (q . "assertion failed at factorial.rue:14:5"))) 1) (c (q 2 (i (> 3 (q . 1)) (q 18 3 (a 2 (c 2 (- 3 (q . 1))))) (q 1 . 1)) 1) ())) output: () runtime_cost: 39041 byte_cost: 4368000 diff --git a/examples/fizz_buzz.yaml b/examples/fizz_buzz.yaml index 9669a2f1..66454a09 100644 --- a/examples/fizz_buzz.yaml +++ b/examples/fizz_buzz.yaml @@ -8,7 +8,7 @@ total_cost: 5860496 tests: - name: tests program: (a (q 2 (i (= (a 4 (c 4 (a 10 (c (c 10 (c 22 (c 46 62))) (c (q . 1) (q . 1)))))) (a 4 (c 4 (c (q . 49) ())))) (q 2 (i (= (a 4 (c 4 (a 10 (c (c 10 (c 22 (c 46 62))) (c (q . 1) (q . 5)))))) (a 4 (c 4 (c (q . 49) (c (q . 50) (c (q . "Fizz") (c (q . 52) (c (q . "Buzz") ())))))))) (q 2 (i (= (a 4 (c 4 (a 10 (c (c 10 (c 22 (c 46 62))) (c (q . 1) (q . 15)))))) (a 4 (c 4 (c (q . 49) (c (q . 50) (c (q . "Fizz") (c (q . 52) (c (q . "Buzz") (c (q . "Fizz") (c (q . 55) (c (q . 56) (c (q . "Fizz") (c (q . "Buzz") (c (q . 12593) (c (q . "Fizz") (c (q . 12595) (c (q . 12596) (c (q . "FizzBuzz") ())))))))))))))))))) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (c (c (q 2 (i (l 3) (q 11 (q . 2) (a 2 (c 2 5)) (a 2 (c 2 7))) (q 11 (q . 1) 3)) 1) (c (q 4 (a 30 (c (c 10 22) 5)) (a (i (= 5 7) (q) (q 2 4 (c (c 4 (c 10 (c 22 30))) (c (+ 5 (q . 1)) 7)))) 1)) (c (q 2 (i (> () 3) (q 14 (q . 45) (a 4 (c (c 4 6) (- () 3)))) (q 2 (i (> (q . 10) 3) (q 2 6 3) (q 14 (a 4 (c (c 4 6) (/ 3 (q . 10)))) (a 6 (% 3 (q . 10))))) 1)) 1) (c (q 16 1 (q . 48)) (q 2 (i (a (i (% 3 (q . 3)) (q) (q 2 (i (% 3 (q . 5)) (q) (q 1 . 1)) 1)) 1) (q 1 . "FizzBuzz") (q 2 (i (% 3 (q . 3)) (q 2 (i (% 3 (q . 5)) (q 2 4 (c (c 4 6) 3)) (q 1 . "Buzz")) 1) (q 1 . "Fizz")) 1)) 1))))) ())) - debug_program: (a (q 2 (i (= (a 4 (c 4 (a 10 (c (c 10 (c 22 (c 46 62))) (c (q . 1) (q . 1)))))) (a 4 (c 4 (c (q . 49) ())))) (q 2 (i (= (a 4 (c 4 (a 10 (c (c 10 (c 22 (c 46 62))) (c (q . 1) (q . 5)))))) (a 4 (c 4 (c (q . 49) (c (q . 50) (c (q . "Fizz") (c (q . 52) (c (q . "Buzz") ())))))))) (q 2 (i (= (a 4 (c 4 (a 10 (c (c 10 (c 22 (c 46 62))) (c (q . 1) (q . 15)))))) (a 4 (c 4 (c (q . 49) (c (q . 50) (c (q . "Fizz") (c (q . 52) (c (q . "Buzz") (c (q . "Fizz") (c (q . 55) (c (q . 56) (c (q . "Fizz") (c (q . "Buzz") (c (q . 12593) (c (q . "Fizz") (c (q . 12595) (c (q . 12596) (c (q . "FizzBuzz") ())))))))))))))))))) (q) (q 8 (q . "assertion failed at 43:5"))) 1) (q 8 (q . "assertion failed at 42:5"))) 1) (q 8 (q . "assertion failed at 41:5"))) 1) (c (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (c (q 2 (q 4 (a 61 (c (c 21 45) 11)) 2) (c (a (i (= 5 7) (q) (q 2 4 (c (c 4 (c 10 (c 22 30))) (c (+ 5 (q . 1)) 7)))) 1) 1)) (c (q 2 (i (> () 3) (q 14 (q . 45) (a 4 (c (c 4 6) (- () 3)))) (q 2 (i (> (q . 10) 3) (q 2 6 3) (q 14 (a 4 (c (c 4 6) (/ 3 (q . 10)))) (a 6 (% 3 (q . 10))))) 1)) 1) (c (q 16 (q . 48) 1) (q 2 (i (a (i (= (% 3 (q . 3)) ()) (q 2 (i (= (% 3 (q . 5)) ()) (q 1 . 1) (q)) 1) (q)) 1) (q 1 . "FizzBuzz") (q 2 (i (= (% 3 (q . 3)) ()) (q 1 . "Fizz") (q 2 (i (= (% 3 (q . 5)) ()) (q 1 . "Buzz") (q 2 4 (c (c 4 6) 3))) 1)) 1)) 1))))) ())) + debug_program: (a (q 2 (i (= (a 4 (c 4 (a 10 (c (c 10 (c 22 (c 46 62))) (c (q . 1) (q . 1)))))) (a 4 (c 4 (c (q . 49) ())))) (q 2 (i (= (a 4 (c 4 (a 10 (c (c 10 (c 22 (c 46 62))) (c (q . 1) (q . 5)))))) (a 4 (c 4 (c (q . 49) (c (q . 50) (c (q . "Fizz") (c (q . 52) (c (q . "Buzz") ())))))))) (q 2 (i (= (a 4 (c 4 (a 10 (c (c 10 (c 22 (c 46 62))) (c (q . 1) (q . 15)))))) (a 4 (c 4 (c (q . 49) (c (q . 50) (c (q . "Fizz") (c (q . 52) (c (q . "Buzz") (c (q . "Fizz") (c (q . 55) (c (q . 56) (c (q . "Fizz") (c (q . "Buzz") (c (q . 12593) (c (q . "Fizz") (c (q . 12595) (c (q . 12596) (c (q . "FizzBuzz") ())))))))))))))))))) (q) (q 8 (q . "assertion failed at fizz_buzz.rue:43:5"))) 1) (q 8 (q . "assertion failed at fizz_buzz.rue:42:5"))) 1) (q 8 (q . "assertion failed at fizz_buzz.rue:41:5"))) 1) (c (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (c (q 2 (q 4 (a 61 (c (c 21 45) 11)) 2) (c (a (i (= 5 7) (q) (q 2 4 (c (c 4 (c 10 (c 22 30))) (c (+ 5 (q . 1)) 7)))) 1) 1)) (c (q 2 (i (> () 3) (q 14 (q . 45) (a 4 (c (c 4 6) (- () 3)))) (q 2 (i (> (q . 10) 3) (q 2 6 3) (q 14 (a 4 (c (c 4 6) (/ 3 (q . 10)))) (a 6 (% 3 (q . 10))))) 1)) 1) (c (q 16 (q . 48) 1) (q 2 (i (a (i (= (% 3 (q . 3)) ()) (q 2 (i (= (% 3 (q . 5)) ()) (q 1 . 1) (q)) 1) (q)) 1) (q 1 . "FizzBuzz") (q 2 (i (= (% 3 (q . 3)) ()) (q 1 . "Fizz") (q 2 (i (= (% 3 (q . 5)) ()) (q 1 . "Buzz") (q 2 4 (c (c 4 6) 3))) 1)) 1)) 1))))) ())) output: () runtime_cost: 316023 byte_cost: 11940000 diff --git a/examples/hello_world.yaml b/examples/hello_world.yaml index f54ea7a2..d2000bc9 100644 --- a/examples/hello_world.yaml +++ b/examples/hello_world.yaml @@ -8,7 +8,7 @@ total_cost: 192020 tests: - name: tests program: (a (i (= (q . "Hello, world!") (q . "Hello, world!")) (q) (q 8)) 1) - debug_program: (a (q 2 (i (= (a 2 ()) (q . "Hello, world!")) (q) (q 8 (q . "assertion failed at 6:5"))) 1) (c (q 1 . "Hello, world!") ())) + debug_program: (a (q 2 (i (= (a 2 ()) (q . "Hello, world!")) (q) (q 8 (q . "assertion failed at hello_world.rue:6:5"))) 1) (c (q 1 . "Hello, world!") ())) output: () runtime_cost: 437 byte_cost: 684000 diff --git a/examples/puzzles/cat.yaml b/examples/puzzles/cat.yaml index 129302a4..966d24d4 100644 --- a/examples/puzzles/cat.yaml +++ b/examples/puzzles/cat.yaml @@ -1,5 +1,5 @@ program: (a (q 2 (q 2 (q 2 (q 4 (c (q . 70) (c 27 ())) (a (i 57 (q 2 (i (= (a 39 (c 39 89)) 95) (q 2 -9 (c -9 (c (a 89 (c (c (c (a 39 (c 39 -65)) 19) (c 27 3071)) (c 13 (c 767 (c 24575 (c 2 (c -71 ()))))))) 2))) (q 8)) 1) (q 2 (i (a (i 13 (q 2 (i 24575 (q) (q 1 . 1)) 1) (q)) 1) (q . 2) (q 8)) 1)) 1)) (c (c (c (q . 60) (c (concat (q . -53) (a 19 (c 19 (c 767 (c 6143 ()))))) ())) (c (c (q . 61) (c (sha256 (coinid 5119 (sha256 (q . 2) (sha256 (q . 258)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 17) (sha256 (q . 2) (a 91 (c 91 (c 41 (c (sha256 (q . 1) 89) (c 11263 ()))))) (sha256 (q . 1))))) 23551) (q . -53) (a 19 (c 19 (c 13 (c (+ 6143 (- 11775 20) 12287) ()))))) ())) 8)) 1)) (c (c (a 21 (c (c 21 45) (c (a 47 95) (c 4 ())))) (a (i -65 (q 2 (i (= 1279 (coinid 319 (sha256 (q . 2) (sha256 (q . 258)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 8) (sha256 (q . 2) (a 45 (c 45 (c 20 (c (sha256 (q . 1) 44) (c 703 ()))))) (sha256 (q . 1))))) 1471)) (q 1 . 1) (q)) 1) (q)) 1)) 1)) (c (c (c 5 (c (sha256 (q . 1) 5) (c 11 ()))) (coinid 639 1407 2943)) 1)) (c (c (q 2 (i (l 3) (q 11 (q . 2) (a 2 (c 2 5)) (a 2 (c 2 7))) (q 11 (q . 1) 3)) 1) (c (q 2 (i 5 (q 2 (i (a (i (= 17 (q . 51)) (q 2 (i 41 (q) (q 1 . 1)) 1) (q)) 1) (q 2 (q 4 4 (c 10 14)) (c (a 4 (c (c 4 6) (c 13 (c 11 (c -71 (c 377 ())))))) 1)) (q 2 (q 4 (c 10 8) (c (+ 20 14) 28)) (c (c (a 4 (c (c 4 6) (c 13 (c 11 15)))) (a (i (= 17 (q . 51)) (q 4 (c (q . 51) (c (sha256 (q . 2) (sha256 (q . 258)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 19) (sha256 (q . 2) (a 6 (c 6 (c 43 (c (sha256 (q . 1) 91) (c 41 ()))))) (sha256 (q . 1))))) (c 89 121))) 89) (q 2 (i (a (i (a (i (= 17 (q . 60)) (q 2 (i (= (strlen 41) (q . 33)) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i (= (substr 41 () (q . 1)) (q . -53)) (q 1 . 1) (q)) 1) (q)) 1) (q 8) (q 4 9 ())) 1)) 1)) 1))) 1) (q 4 () (c () 15))) 1) (c (q 2 (i 3 (q 11 (q . 2) (sha256 (q . 260)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 5) (sha256 (q . 2) (a 2 (c 2 7)) (sha256 (q . 1))))) (q 11 (q . 257))) 1) (q 2 (i 5 (q 4 9 (a 2 (c 2 (c 13 7)))) (q . 7)) 1)))) 1)) -debug_program: (a (q 2 (q 2 (q 2 (q 2 (q 2 (q 2 (q 4 (c (q . 70) (c 351 ())) 2) (c (a (i (not (not (l (r (r 39))))) (q 2 (i (= (a -97 (c -97 (f (r (r 39))))) 383) (q 2 (q 2 1983 (c 1983 (c 2 5))) (c (a (f (r (r 39))) (c -9 (c 87 (c 3071 (c 0x017fff (c 2 (c (f (r (r (r 39)))) ()))))))) 1)) (q 8 (q . "assertion failed at 153:9"))) 1) (q 2 (i (a (i 87 (q 2 (i (= 0x017fff ()) (q 1 . 1) (q)) 1) (q)) 1) (q . 2) (q 8 (q . "assertion failed at 171:9"))) 1)) 1) 1)) (c (c (c (q . 60) (c (concat (q . -53) (a 79 (c 79 (c 3071 (c 24575 ()))))) ())) (c (c (q . 61) (c (sha256 (concat (concat 91 (q . -53)) (a 79 (c 79 (c 87 (c 2 ())))))) ())) (f 19))) 1)) (c (+ (+ 12287 2) 24575) 1)) (c (- (f (r (r 1535))) (f (r 4))) 1)) (c (c (a 21 (c (c 21 45) (c (a 47 95) (c 4 ())))) (c (a (i (l -65) (q 2 (i (= (f 767) (coinid (f -65) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 4)))) (sha256 (concat (concat (q . 2) (a 45 (c 45 (c (f (r 4)) (c (sha256 (concat (q . 1) (f (r (r 4))))) (c (f (r -65)) ())))))) (sha256 (concat (q . 1) ())))))))) (f (r (r -65))))) (q 1 . 1) (q)) 1) (q)) 1) (c (coinid (f 1535) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 4)))) (sha256 (concat (concat (q . 2) (a 45 (c 45 (c (f (r 4)) (c (sha256 (concat (q . 1) (f (r (r 4))))) (c (f (r 1535)) ())))))) (sha256 (concat (q . 1) ())))))))) (f (r (r 1535)))) (c (c 14 4) (c 10 767))))) 1)) (c (c (c 5 (c (sha256 (concat (q . 1) 5)) (c 11 ()))) (c (coinid (f 383) (f (r 383)) (f (r (r 383)))) (a 4 (c 4 23)))) 1)) (c (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (c (q 2 (i (not (l 5)) (q 4 () (c () 15)) (q 2 (i (a (i (= (f (f 5)) (q . 51)) (q 2 (i (= (f (r (f 5))) ()) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (q 4 (f 2) (c (f (r 2)) (r (r 2)))) (c (a 4 (c (c 4 6) (c (r 5) (c 11 (c (f (r (r (r (f 5))))) (c (f (r (r (r (r (f 5)))))) ())))))) 1)) (q 2 (q 4 (c (f 6) (f 4)) (c (+ (f (r 4)) (r 6)) (r (r 4)))) (c (c (a 4 (c (c 4 6) (c (r 5) (c 11 15)))) (a (i (= (f (f 5)) (q . 51)) (q 2 (q 4 2 (f (r (r (f 11))))) (c (c (q . 51) (c (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 11)))) (sha256 (concat (concat (q . 2) (a 6 (c 6 (c (f (r 11)) (c (sha256 (concat (q . 1) (f (r (r 11))))) (c (f (r (f 5))) ())))))) (sha256 (concat (q . 1) ())))))))) (c (f (r (r (f 5)))) (r (r (r (f 5))))))) 1)) (q 2 (i (a (i (a (i (= (f (f 5)) (q . 60)) (q 2 (i (= (strlen (f (r (f 5)))) (q . 33)) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i (= (substr (f (r (f 5))) () (q . 1)) (q . -53)) (q 1 . 1) (q)) 1) (q)) 1) (q 8 (q . "raise called at 243:13") (q . "Created coin announcements must not have the ring morph byte")) (q 4 (f 5) ())) 1)) 1)) 1))) 1)) 1) (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) (q . 1))) (q 11 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 4)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 3)))) (sha256 (concat (concat (q . 2) (a 2 (c 2 (r 3)))) (sha256 (concat (q . 1) ()))))))))) 1) (q 2 (i (l 5) (q 4 (f 5) (a 2 (c 2 (c (r 5) 7)))) (q . 7)) 1)))) 1)) +debug_program: (a (q 2 (q 2 (q 2 (q 2 (q 2 (q 2 (q 4 (c (q . 70) (c 351 ())) 2) (c (a (i (not (not (l (r (r 39))))) (q 2 (i (= (a -97 (c -97 (f (r (r 39))))) 383) (q 2 (q 2 1983 (c 1983 (c 2 5))) (c (a (f (r (r 39))) (c -9 (c 87 (c 3071 (c 0x017fff (c 2 (c (f (r (r (r 39)))) ()))))))) 1)) (q 8 (q . "assertion failed at cat.rue:153:9"))) 1) (q 2 (i (a (i 87 (q 2 (i (= 0x017fff ()) (q 1 . 1) (q)) 1) (q)) 1) (q . 2) (q 8 (q . "assertion failed at cat.rue:171:9"))) 1)) 1) 1)) (c (c (c (q . 60) (c (concat (q . -53) (a 79 (c 79 (c 3071 (c 24575 ()))))) ())) (c (c (q . 61) (c (sha256 (concat (concat 91 (q . -53)) (a 79 (c 79 (c 87 (c 2 ())))))) ())) (f 19))) 1)) (c (+ (+ 12287 2) 24575) 1)) (c (- (f (r (r 1535))) (f (r 4))) 1)) (c (c (a 21 (c (c 21 45) (c (a 47 95) (c 4 ())))) (c (a (i (l -65) (q 2 (i (= (f 767) (coinid (f -65) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 4)))) (sha256 (concat (concat (q . 2) (a 45 (c 45 (c (f (r 4)) (c (sha256 (concat (q . 1) (f (r (r 4))))) (c (f (r -65)) ())))))) (sha256 (concat (q . 1) ())))))))) (f (r (r -65))))) (q 1 . 1) (q)) 1) (q)) 1) (c (coinid (f 1535) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 4)))) (sha256 (concat (concat (q . 2) (a 45 (c 45 (c (f (r 4)) (c (sha256 (concat (q . 1) (f (r (r 4))))) (c (f (r 1535)) ())))))) (sha256 (concat (q . 1) ())))))))) (f (r (r 1535)))) (c (c 14 4) (c 10 767))))) 1)) (c (c (c 5 (c (sha256 (concat (q . 1) 5)) (c 11 ()))) (c (coinid (f 383) (f (r 383)) (f (r (r 383)))) (a 4 (c 4 23)))) 1)) (c (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (c (q 2 (i (not (l 5)) (q 4 () (c () 15)) (q 2 (i (a (i (= (f (f 5)) (q . 51)) (q 2 (i (= (f (r (f 5))) ()) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (q 4 (f 2) (c (f (r 2)) (r (r 2)))) (c (a 4 (c (c 4 6) (c (r 5) (c 11 (c (f (r (r (r (f 5))))) (c (f (r (r (r (r (f 5)))))) ())))))) 1)) (q 2 (q 4 (c (f 6) (f 4)) (c (+ (f (r 4)) (r 6)) (r (r 4)))) (c (c (a 4 (c (c 4 6) (c (r 5) (c 11 15)))) (a (i (= (f (f 5)) (q . 51)) (q 2 (q 4 2 (f (r (r (f 11))))) (c (c (q . 51) (c (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 11)))) (sha256 (concat (concat (q . 2) (a 6 (c 6 (c (f (r 11)) (c (sha256 (concat (q . 1) (f (r (r 11))))) (c (f (r (f 5))) ())))))) (sha256 (concat (q . 1) ())))))))) (c (f (r (r (f 5)))) (r (r (r (f 5))))))) 1)) (q 2 (i (a (i (a (i (= (f (f 5)) (q . 60)) (q 2 (i (= (strlen (f (r (f 5)))) (q . 33)) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i (= (substr (f (r (f 5))) () (q . 1)) (q . -53)) (q 1 . 1) (q)) 1) (q)) 1) (q 8 (q . "raise called at cat.rue:243:13") (q . "Created coin announcements must not have the ring morph byte")) (q 4 (f 5) ())) 1)) 1)) 1))) 1)) 1) (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) (q . 1))) (q 11 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 4)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 3)))) (sha256 (concat (concat (q . 2) (a 2 (c 2 (r 3)))) (sha256 (concat (q . 1) ()))))))))) 1) (q 2 (i (l 5) (q 4 (f 5) (a 2 (c 2 (c (r 5) 7)))) (q . 7)) 1)))) 1)) solution: (0x00f43ce9fcc63d5019e209c103e6b0aaf56bbe7fc7fafae5af7f5ee6887a8719 0xd622c62a7292ffee5cf2537a90360ca0b7337b76d7014ec042930c0a87592213 (q (g1_negate () -113 (a (q 2 (i 47 (q 8) (q 2 (i (= 45 2) () (q 8)) 1)) 1) (c (q . 0x895eb35a355941ba7f6a8679a73bb9b8b62cae2b04ef5351eda42583c0f2d861) 1)) ()) (g1_negate 0xb8705f94744e7fc30300ac9b12d306b283f5a702937ee99beabf665be6023001 1 (0xb8705f94744e7fc30300ac9b12d306b283f5a702937ee99beabf665be6023001))) () () 0x615236766bed52d7abaa41d270407f3ec852981852334b213bd8515924459a5d (0x895eb35a355941ba7f6a8679a73bb9b8b62cae2b04ef5351eda42583c0f2d861 0x1ecb863db5d2ae6c71e9a8b0741acb3e034e8164b8ca0e564d5fad8b9dc875d5 1) (0x895eb35a355941ba7f6a8679a73bb9b8b62cae2b04ef5351eda42583c0f2d861 0x130deb20b44082a68293974f8cab9c51e21f9a9f3005000168eb77e49e0fc378 1) () ()) output: ((70 0x615236766bed52d7abaa41d270407f3ec852981852334b213bd8515924459a5d) (modpow 0xcb7f53b5de05b4afe58ab663b952aa785fd9ad911564709bd8eacbf4c58ba1e589) (% 0x389f1ea7b9fab7a9294104eb3a181d662f2dbe9c43fbe52802ba9b7eef357e77) (g1_negate 0xc9644528436f44cd9b33282684b4964f55d5551cb3a970ab9cf8f536e0d72ad1 1 (0xb8705f94744e7fc30300ac9b12d306b283f5a702937ee99beabf665be6023001))) runtime_cost: 298527 diff --git a/examples/puzzles/partial_offer.yaml b/examples/puzzles/partial_offer.yaml index 0fd1303b..0d09aec6 100644 --- a/examples/puzzles/partial_offer.yaml +++ b/examples/puzzles/partial_offer.yaml @@ -1,5 +1,5 @@ program: (a (q 2 (q 4 (c (q . 63) (c (sha256 23 (a 5 (c 5 (c 1279 (c (c 47 (c (a (i (> 1535 -65) (q . 1535) (q 8)) 1) (c (c 47 ()) ()))) ()))))) ())) (c (c (q . 70) (c (coinid 1279 (a 11 (c 2815 6143)) 5887) ())) (c (i (> 4 ()) (c (q . 51) (c 2815 (c 4 (c (c 2815 ()) ())))) (c (q . 1) ())) (i (a (i 3071 (q 2 (i (> 11263 (q . -1)) (q 1 . 1) (q)) 1) (q)) 1) (c (c (q . 51) 3071) 6) 6)))) (c (c (- 2943 (/ (* 767 319) 447)) (a 47 4095)) 1)) (c (q 2 (i (l 3) (q 11 (q . 2) (a 2 (c 2 5)) (a 2 (c 2 7))) (q 11 (q . 1) 3)) 1) 1)) -debug_program: (a (q 2 (q 2 (q 4 45 (c 61 (c 4 6))) (c (c (i (> 4 ()) (c (q . 51) (c (f (r 767)) (c 4 (c (c (f (r 767)) ()) ())))) (c (q . 1) ())) (i (a (i (not (not (l 3071))) (q 2 (i (> (f (r 3071)) (- () (q . 1))) (q 1 . 1) (q)) 1) (q)) 1) (c (c (q . 51) 3071) 10) 10)) 1)) (c (c (- (f (r (r 383))) (/ (* 767 (f -65)) (r -65))) (c (a 47 4095) (c (c (q . 63) (c (sha256 (concat 11 (a 2 (c 2 (c (f 383) (c (c 23 (c (a (i (> 767 95) (q . 767) (q 8 (q . "raise called at 43:21") (q . "Other asset amount is too small"))) 1) (c (c 23 ()) ()))) ())))))) ())) (c (q . 70) (c (coinid (f 383) (a 5 (c (f (r 383)) 3071)) (f (r (r 383)))) ()))))) 1)) (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) 1)) +debug_program: (a (q 2 (q 2 (q 4 45 (c 61 (c 4 6))) (c (c (i (> 4 ()) (c (q . 51) (c (f (r 767)) (c 4 (c (c (f (r 767)) ()) ())))) (c (q . 1) ())) (i (a (i (not (not (l 3071))) (q 2 (i (> (f (r 3071)) (- () (q . 1))) (q 1 . 1) (q)) 1) (q)) 1) (c (c (q . 51) 3071) 10) 10)) 1)) (c (c (- (f (r (r 383))) (/ (* 767 (f -65)) (r -65))) (c (a 47 4095) (c (c (q . 63) (c (sha256 (concat 11 (a 2 (c 2 (c (f 383) (c (c 23 (c (a (i (> 767 95) (q . 767) (q 8 (q . "raise called at partial_offer.rue:43:21") (q . "Other asset amount is too small"))) 1) (c (c 23 ()) ()))) ())))))) ())) (c (q . 70) (c (coinid (f 383) (a 5 (c (f (r 383)) 3071)) (f (r (r 383)))) ()))))) 1)) (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) 1)) solution: () byte_cost: 5148000 clvm_error: path into atom diff --git a/examples/puzzles/royalty_split.yaml b/examples/puzzles/royalty_split.yaml index e54e058d..dea52ac1 100644 --- a/examples/puzzles/royalty_split.yaml +++ b/examples/puzzles/royalty_split.yaml @@ -1,5 +1,5 @@ program: (a (q 4 (c (q . 60) (c () ())) (c (c (q . 73) (c 11 ())) (a 4 (c (c 4 6) (c (c 5 23) (c 11 (c () 11))))))) (c (c (q 2 (i 9 (q 2 6 (c (c 4 6) (c 9 (c (c (/ (* 11 81) 13) 31) (c 11 (c 13 23)))))) (q 2 (i (= 13 23) (q) (q 8)) 1)) 1) (q 4 (c (q . 51) (c 17 (c (i 13 19 27) (c (c 17 ()) ())))) (a 4 (c (c 4 6) (c (c 13 47) (c 23 (c (+ 63 41) (- 27 19)))))))) 1)) -debug_program: (a (q 4 (c (q . 60) (c () ())) (c (c (q . 73) (c 11 ())) (a 4 (c (c 4 (c 10 14)) (c (c 5 23) (c 11 (c () 11))))))) (c (c (q 2 (i (not (l 9)) (q 2 (i (= 13 23) (q) (q 8 (q . "raise called at 32:9") (q . "Share sum doesn't match total"))) 1) (q 2 14 (c (c 4 (c 10 14)) (c 9 (c (c (a 10 (c 11 (c (f (r (f 9))) 13))) 31) (c 11 (c 13 23))))))) 1) (c (q 19 (* 2 5) 7) (q 2 (q 4 2 (a 9 (c (c 9 (c 21 29)) (c (c (r 11) 95) (c 47 (c (+ 127 (f (r (f 11)))) (- 55 39))))))) (c (c (q . 51) (c (f (f 5)) (c (i (not (l (r 5))) 27 19) (c (c (f (f 5)) ()) ())))) 1)))) 1)) +debug_program: (a (q 4 (c (q . 60) (c () ())) (c (c (q . 73) (c 11 ())) (a 4 (c (c 4 (c 10 14)) (c (c 5 23) (c 11 (c () 11))))))) (c (c (q 2 (i (not (l 9)) (q 2 (i (= 13 23) (q) (q 8 (q . "raise called at royalty_split.rue:32:9") (q . "Share sum doesn't match total"))) 1) (q 2 14 (c (c 4 (c 10 14)) (c 9 (c (c (a 10 (c 11 (c (f (r (f 9))) 13))) 31) (c 11 (c 13 23))))))) 1) (c (q 19 (* 2 5) 7) (q 2 (q 4 2 (a 9 (c (c 9 (c 21 29)) (c (c (r 11) 95) (c 47 (c (+ 127 (f (r (f 11)))) (- 55 39))))))) (c (c (q . 51) (c (f (f 5)) (c (i (not (l (r 5))) 27 19) (c (c (f (f 5)) ()) ())))) 1)))) 1)) solution: (((0x3816a97150946c7745457f45a4fed6c16890637847b2df95f383e439758732d7 80) (0x09731fc56bff8031dc9a16f60dcb6f6462960cd76d4b5233dd5bc21697d7fca7 20)) 1000 100) output: ((modpow ()) (73 1000) (g1_negate 0x3816a97150946c7745457f45a4fed6c16890637847b2df95f383e439758732d7 800 (0x3816a97150946c7745457f45a4fed6c16890637847b2df95f383e439758732d7)) (g1_negate 0x09731fc56bff8031dc9a16f60dcb6f6462960cd76d4b5233dd5bc21697d7fca7 200 (0x09731fc56bff8031dc9a16f60dcb6f6462960cd76d4b5233dd5bc21697d7fca7))) runtime_cost: 15651 diff --git a/examples/puzzles/singleton.yaml b/examples/puzzles/singleton.yaml index 85d1d586..44da8877 100644 --- a/examples/puzzles/singleton.yaml +++ b/examples/puzzles/singleton.yaml @@ -1,5 +1,5 @@ program: (a (q 2 (q 2 (i (all (logand 95 (q . 1)) (any 4 (= 6 43))) (q 4 (c (q . 73) (c 95 ())) (c (c (q . 71) (c 6 ())) (a 9 (c (c 9 (c 21 29)) (c 11 (c (a 23 -65) ())))))) (q 8)) 1) (c (a (i 119 (q 4 (q . 1) (coinid 39 (sha256 (q . 2) (sha256 (q . 258)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 9) (sha256 (q . 2) (a 14 (c 14 (c (a 10 (c 10 5)) (c 87 ())))) (sha256 (q . 1))))) -73)) (q 4 () (coinid 39 29 87))) 1) 1)) (c (c (q 2 (i 11 (q 2 (i (a (i (= 35 (q . 51)) (q 2 (i (logand -77 (q . 1)) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i 15 (q 8) (q 2 (q 2 (i (= 359 (q . -113)) (q . 2) (q 4 (c (q . 51) (c (sha256 (q . 2) (sha256 (q . 258)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 19) (sha256 (q . 2) (a 29 (c 29 (c (a 21 (c 21 11)) (c -89 ())))) (sha256 (q . 1))))) (c 359 487))) 2)) 1) (c (a 4 (c (c 4 (c 10 14)) (c 5 (c 27 (q . 1))))) 1))) 1) (q 4 19 (a 4 (c (c 4 (c 10 14)) (c 5 (c 27 ())))))) 1) (q 2 (i 15 (q) (q 8)) 1)) 1) (c (q 2 (i (l 3) (q 11 (q . 2) (a 2 (c 2 5)) (a 2 (c 2 7))) (q 11 (q . 1) 3)) 1) (q 2 (i 3 (q 11 (q . 2) (sha256 (q . 260)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 5) (sha256 (q . 2) (a 2 (c 2 7)) (sha256 (q . 1))))) (q 11 (q . 257))) 1))) 1)) -debug_program: (a (q 2 (q 2 (q 2 (i (all 13 2) (q 2 (q 4 4 (c 10 14)) (c (c (c (q . 73) (c -65 ())) (c (c (q . 71) (c (r 9) ())) (a 19 (c (c 19 (c 43 59)) (c 23 (c (a 47 383) ())))))) 1)) (q 8 (q . "assertion failed at 50:5"))) 1) (c (any (f 4) (= (r 4) (f (r 11)))) 1)) (c (c (a (i (r (r 23)) (q 4 (q . 1) (coinid (f 23) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 5)))) (sha256 (concat (concat (q . 2) (a 14 (c 14 (c (a 10 (c 10 5)) (c (f (r 23)) ()))))) (sha256 (concat (q . 1) ())))))))) (f (r (r 23))))) (q 4 () (coinid (f 23) (r (r 5)) (f (r 23))))) 1) (= (% 47 (q . 2)) (q . 1))) 1)) (c (c (q 2 (i (not (l 11)) (q 2 (i 15 (q) (q 8 (q . "assertion failed at 75:9"))) 1) (q 2 (i (a (i (= (f (f 11)) (q . 51)) (q 2 (i (= (% (f (r (r (f 11)))) (q . 2)) (q . 1)) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i (not 15) (q 2 (q 2 (i (= (f (r (r (f 23)))) (- () (q . 113))) (q . 2) (q 2 (q 4 2 5) (c (c (q . 51) (c (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 11)))) (sha256 (concat (concat (q . 2) (a 29 (c 29 (c (a 21 (c 21 11)) (c (f (r (f 23))) ()))))) (sha256 (concat (q . 1) ())))))))) (c (f (r (r (f 23)))) (r (r (r (f 23))))))) 1))) 1) (c (a 4 (c (c 4 (c 10 14)) (c 5 (c (r 11) (q . 1))))) 1)) (q 8 (q . "assertion failed at 82:9"))) 1) (q 4 (f 11) (a 4 (c (c 4 (c 10 14)) (c 5 (c (r 11) ())))))) 1)) 1) (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (q 2 (i (not (l 3)) (q 11 (concat (q . 1) (q . 1))) (q 11 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 4)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 3)))) (sha256 (concat (concat (q . 2) (a 2 (c 2 (r 3)))) (sha256 (concat (q . 1) ()))))))))) 1))) 1)) +debug_program: (a (q 2 (q 2 (q 2 (i (all 13 2) (q 2 (q 4 4 (c 10 14)) (c (c (c (q . 73) (c -65 ())) (c (c (q . 71) (c (r 9) ())) (a 19 (c (c 19 (c 43 59)) (c 23 (c (a 47 383) ())))))) 1)) (q 8 (q . "assertion failed at singleton.rue:50:5"))) 1) (c (any (f 4) (= (r 4) (f (r 11)))) 1)) (c (c (a (i (r (r 23)) (q 4 (q . 1) (coinid (f 23) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 5)))) (sha256 (concat (concat (q . 2) (a 14 (c 14 (c (a 10 (c 10 5)) (c (f (r 23)) ()))))) (sha256 (concat (q . 1) ())))))))) (f (r (r 23))))) (q 4 () (coinid (f 23) (r (r 5)) (f (r 23))))) 1) (= (% 47 (q . 2)) (q . 1))) 1)) (c (c (q 2 (i (not (l 11)) (q 2 (i 15 (q) (q 8 (q . "assertion failed at singleton.rue:75:9"))) 1) (q 2 (i (a (i (= (f (f 11)) (q . 51)) (q 2 (i (= (% (f (r (r (f 11)))) (q . 2)) (q . 1)) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i (not 15) (q 2 (q 2 (i (= (f (r (r (f 23)))) (- () (q . 113))) (q . 2) (q 2 (q 4 2 5) (c (c (q . 51) (c (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 11)))) (sha256 (concat (concat (q . 2) (a 29 (c 29 (c (a 21 (c 21 11)) (c (f (r (f 23))) ()))))) (sha256 (concat (q . 1) ())))))))) (c (f (r (r (f 23)))) (r (r (r (f 23))))))) 1))) 1) (c (a 4 (c (c 4 (c 10 14)) (c 5 (c (r 11) (q . 1))))) 1)) (q 8 (q . "assertion failed at singleton.rue:82:9"))) 1) (q 4 (f 11) (a 4 (c (c 4 (c 10 14)) (c 5 (c (r 11) ())))))) 1)) 1) (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (q 2 (i (not (l 3)) (q 11 (concat (q . 1) (q . 1))) (q 11 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 4)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 3)))) (sha256 (concat (concat (q . 2) (a 2 (c 2 (r 3)))) (sha256 (concat (q . 1) ()))))))))) 1))) 1)) solution: ((0x7faa3253bfddd1e0decb0906b2dc6247bbc4cf608f58345d173adb63e8b47c9f 0x1dee7745609c0ebcf4e1cfe01f2b2e7f4deb122eb735217e7af08029ba322b13 . 0xeff07522495060c066f66f32acc2a77e3a3e737aca8baea4d1a64ea4cdc13da9) (a (q 2 (q 2 62 (c 2 (c 5 (c (a 47 95) (c () (c (c (c 11 (c 23 ())) (q ())) (q ()))))))) (c (q ((a . 51) 4 1 . 1) (a 2 (i 5 (q 2 26 (c 2 (c 13 (c (sha256 18 (sha256 44 20) (sha256 18 (sha256 18 (sha256 44 60) 9) (sha256 18 11 (sha256 44 ())))) ())))) (q . 11)) 1) (sha256 18 (sha256 44 16) (sha256 18 (sha256 18 (sha256 44 60) 5) (sha256 18 (a 26 (c 2 (c 7 (c (sha256 44 44) ())))) (sha256 44 ())))) (a (i (l 5) (q 11 (q . 2) (a 46 (c 2 (c 9 ()))) (a 46 (c 2 (c 13 ())))) (q 11 (q . 1) 5)) 1) 2 (i 11 (q 2 (i (= 35 24) (q 2 (i (logand -77 44) (q 2 (i (not 23) (q 2 62 (c 2 (c 5 (c 27 (c 51 (c 47 (c 95 ()))))))) (q 8)) 1) (q 4 19 (a 62 (c 2 (c 5 (c 27 (c 23 (c 47 (c 95 ()))))))))) 1) (q 2 (i (= 35 (q . -24)) (q 2 62 (c 2 (c 5 (c 27 (c 23 (c (a (i (all (= (a 46 (c 2 (c 83 ()))) 335) (not 95)) (q 2 83 (c -113 (c 335 (c -77 ())))) (q 8)) 1) (c 44 ()))))))) (q 4 19 (a 62 (c 2 (c 5 (c 27 (c 23 (c 47 (c 95 ()))))))))) 1)) 1) (q 4 (c 24 (c (a 22 (c 2 (c 5 (c 39 (c (sha256 44 335) (c (a 46 (c 2 (c -113 ()))) (c (sha256 44 5) ()))))))) 55)) -81)) 1) 1)) (c (q . 0xa04d9f57764f54a43e4030befb4d80026e870519aaa66334aef8304f5d0393c2) (c (q (117 "https://chia-monster.ggames.mobi/chia-monster/images/warriors/females/legendary_warrior_v2.jpg") (104 . 0x9beb5d62e9708e3178414dcf7340bc3547fb6fdeadcf93a397d87dbb432bd923) (28021 "https://chia-monster.ggames.mobi/api/cmt/meta/warrior/6f1cb204-b594-4516-af4c-f9f55e30fd39.json") (27765 "https://chia-monster.ggames.mobi/chia-monster/license.txt") (29550 . 1) (29556 . 1) (28008 . 0x347340029cb9234e7a43d75d4c5649136ac11a97cd75c1137da2444868cab52b) (27752 . 0x724672b619bcbb77d46cba416327376944366d6c71e87abe49be19abbca0444f)) (c (q . 0xfe8a4b4e27a2e29a4d3fc7ce9d527adbcaccbab6ada3903ccf3ba9a769d2d78b) (c (q 2 (q 2 (q 2 38 (c 2 (c 5 (c 23 (c 11 (c (a 47 95) ())))))) (c (q ((-21172 2 . 51) (keccak256 . 4) -10 . 1) ((q . 2) (a (i 5 (q 2 42 (c 2 (c 13 (c (sha256 50 (sha256 60 52) (sha256 50 (sha256 50 (sha256 60 34) 9) (sha256 50 11 (sha256 60 ())))) ())))) (q . 11)) 1) 4 (c 56 (c (a 54 (c 2 (c 5 (c 39 (c (a 46 (c 2 (c (a (i -81 (q . -81) (q . 11)) 1) ()))) (c (sha256 60 79) (c (sha256 60 5) ()))))))) 55)) 367) ((a 62 (c 2 (c 5 (c 11 (c 23 (c 47 (c 47 (q () ())))))))) 11 50 (sha256 60 40) (sha256 50 (sha256 50 (sha256 60 34) 5) (sha256 50 (a 42 (c 2 (c 7 (c (sha256 60 60) ())))) (sha256 60 ())))) (a (i (l 5) (q 11 (q . 2) (a 46 (c 2 (c 9 ()))) (a 46 (c 2 (c 13 ())))) (q 11 (q . 1) 5)) 1) 2 (i 95 (q 2 (i (= 287 56) (q 2 (i (= (logand 1439) 60) (q 2 (i (not -65) (q 2 62 (c 2 (c 5 (c 11 (c 23 (c 47 (c -33 (c 415 (c 383 ()))))))))) (q 8)) 1) (q 4 -97 (a 62 (c 2 (c 5 (c 11 (c 23 (c 47 (c -33 (c -65 (c 383 ()))))))))))) 1) (q 2 (i (= 287 44) (q 2 (i (not 383) (q 4 (c 36 (c (concat 16 (a 46 (c 2 (c 415 ())))) ())) (a 62 (c 2 (c 5 (c 11 (c 23 (c 47 (c -33 (c -65 (c (a 11 (c 23 (c 47 (c 415 ())))) ())))))))))) (q 8)) 1) (q 2 (i (= 287 36) (q 2 (i (not (a (i (= (q . 34) (strlen 671)) (q 2 (i (= (substr 671 () (q . 2)) 16) (q 1 . 1) ()) 1) ()) 1)) (q 4 -97 (a 62 (c 2 (c 5 (c 11 (c 23 (c 47 (c -33 (c -65 (c 383 ())))))))))) (q 8)) 1) (q 4 -97 (a 62 (c 2 (c 5 (c 11 (c 23 (c 47 (c -33 (c -65 (c 383 ()))))))))))) 1)) 1)) 1) (q 2 58 (c 2 (c 5 (c 11 (c -65 (c (a (i 383 (q . 383) (q 2 11 (c 23 (c 47 (q ()))))) 1) ()))))))) 1) 1)) (c (q . 0xc5abea79afaa001b5427dfa0c8cf42ca6f38f5841b78f9b3c252733eb2de2726) (c (q) (c (q 2 (q 2 (q 2 (i -65 (q 4 319 (c () (c (a (i (all 319 (not (= 319 47))) (q 4 (c 16 (c (sha256 (a 46 (c 2 (c 9 (c 1471 (c (a 62 (c 2 (c (c 9 (c 319 29)) ()))) ()))))) 21) ())) (a 22 (c 2 (c 11 (c 23 (c 703 (c 21 ()))))))) (q 2 22 (c 2 (c 11 (c 23 (c 703 (c 21 ()))))))) 1) ()))) (q 4 47 (q () ()))) 1) (c (q ((63 . 2) 4 1 . 1) (10000 2 2 (i 5 (q 2 58 (c 2 (c 13 (c (sha256 42 (sha256 44 20) (sha256 42 (sha256 42 (sha256 44 60) 9) (sha256 42 11 (sha256 44 ())))) ())))) (q . 11)) 1) (a (i 23 (q 4 (c 16 (c (sha256 -89 (a 62 (c 2 (c (c 47 (c (c 5 (c (f (divmod (* 71 11) 18)) (c (c 5 ()) ()))) ())) ())))) ())) (a 22 (c 2 (c 5 (c 11 (c 55 (c 47 ()))))))) ()) 1) (sha256 42 (sha256 44 24) (sha256 42 (sha256 42 (sha256 44 60) 5) (sha256 42 (a 58 (c 2 (c 7 (c (sha256 44 44) ())))) (sha256 44 ())))) 2 (i (l 5) (q 11 (q . 2) (a 62 (c 2 (c 9 ()))) (a 62 (c 2 (c 13 ())))) (q 11 (q . 1) 5)) 1) 1)) (c (q 0x7faa3253bfddd1e0decb0906b2dc6247bbc4cf608f58345d173adb63e8b47c9f 0x1dee7745609c0ebcf4e1cfe01f2b2e7f4deb122eb735217e7af08029ba322b13 . 0xeff07522495060c066f66f32acc2a77e3a3e737aca8baea4d1a64ea4cdc13da9) (c (q . 0x15865265653a7cb6f807a227aa9ad05498babe13ec906155b2676d5f92f84d40) (c (q) 1)))) (c (q 2 (q 2 (q 2 (i 11 (q 2 (i (= 5 (point_add 11 (pubkey_for_exp (sha256 11 (a 6 (c 2 (c 23 ()))))))) (q 2 23 47) (q 8)) 1) (q 4 (c 4 (c 5 (c (a 6 (c 2 (c 23 ()))) ()))) (a 23 47))) 1) (c (q 50 2 (i (l 5) (q 11 (q . 2) (a 6 (c 2 (c 9 ()))) (a 6 (c 2 (c 13 ())))) (q 11 (q . 1) 5)) 1) 1)) (c (q . 0xafa76c68cfb723922e67dbfa6bda38fd64609b41d2a4498df49a6c839ed8b2d1c042f5961a2ab9b318cc64aef72364a5) 1)) 1))))) 1))))) (0xdebedabb069cb2564157ff1ca5aa80b3cb3d7eb930f52ff1a40b8b78c84f4125 0x9fc9c96a5f2417e8617ea847651ceaf4789e6528a55101457d120c630a8ac030 1) 1 (((() (q (g1_negate 0x291c295548f95c2462caa05165f67e9f6d806153856edcbb84290162e7f810c5 1 (0x291c295548f95c2462caa05165f67e9f6d806153856edcbb84290162e7f810c5)) (-10 () () ())) ())))) output: ((73 1) (71 0x82acf3e76d5657e98438ad4dc0fcaf84f8e194d78313206ead021e2d5afe5e3a) (g1_multiply 0xafa76c68cfb723922e67dbfa6bda38fd64609b41d2a4498df49a6c839ed8b2d1c042f5961a2ab9b318cc64aef72364a5 0x8f25313e125d83841401ae4bf3831b674256c0fa77c8b30f12dd5a7bce846e75) (keccak256 0xad4c53b883241fddfd1c01b608bd4b6633e3fefd950e27c194aab24e6eb0a49bebd2) (g1_negate 0x899b958268f46b62cc8d2148fef14ce74e8220c507ee9a06a78924fb9efc4d75 1 (0x291c295548f95c2462caa05165f67e9f6d806153856edcbb84290162e7f810c5))) runtime_cost: 1371980 @@ -8,7 +8,7 @@ total_cost: 11811980 tests: - name: tests program: (a (q 2 (q 2 (q 2 (q 2 (i (= (a 39 (c 39 (a -73 (c 87 (c 39 (c -9 (c 2 (c (q . 1) (c (c 19 (c () ())) (c (q . 1) (c (c (c (q . 51) (c 59 (c (q . 1) ()))) ()) ()))))))))))) (a 39 (c 39 (c (c (q . 73) (c (q . 1) ())) (c (c (q . 71) (c 5 ())) (c (c (q . 51) (c (sha256 (q . 2) (sha256 (q . 258)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 4) (sha256 (q . 2) (a -9 (c -9 (c (a 39 (c 39 2)) (c 59 ())))) (sha256 (q . 1))))) (c (q . 1) ()))) ())))))) (q) (q 8)) 1) (c (c (a 19 (c 19 (c (q . 2) (c (c (q . 1) 91) (c (c (q . 4) (c (c (q . 1) 43) (c (c (q . 4) (c (c (q . 1) 19) (c (c (q . 4) (c (c (q . 1) 123) (c (q . 1) ()))) ()))) ()))) ()))))) (c 2 21)) 1)) (c (coinid 4 10 ()) 1)) (c (c (sha256 (q . "parent_parent_coin_info")) (c (sha256 (q . "launcher_puzzle")) (sha256 (q . "p2_puzzle_hash")))) 1)) (c (c (q 2 (i (l 3) (q 11 (q . 2) (a 2 (c 2 5)) (a 2 (c 2 7))) (q 11 (q . 1) 3)) 1) (c (q 2 (i 11 (q 2 (i (a (i (= 35 (q . 51)) (q 2 (i (logand -77 (q . 1)) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i 15 (q 8) (q 2 (q 2 (i (= 359 (q . -113)) (q . 2) (q 4 (c (q . 51) (c (sha256 (q . 2) (sha256 (q . 258)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 19) (sha256 (q . 2) (a 29 (c 29 (c (a 9 (c 9 11)) (c -89 ())))) (sha256 (q . 1))))) (c 359 487))) 2)) 1) (c (a 10 (c (c 4 (c 10 14)) (c 5 (c 27 (q . 1))))) 1))) 1) (q 4 19 (a 10 (c (c 4 (c 10 14)) (c 5 (c 27 ())))))) 1) (q 2 (i 15 (q) (q 8)) 1)) 1) (c (q 2 (q 2 (i (all (logand 383 (q . 1)) (any 4 (= 6 -81))) (q 4 (c (q . 73) (c 383 ())) (c (c (q . 71) (c 6 ())) (a 5 (c (c 11 (c 5 23)) (c 47 (c (a 95 767) ())))))) (q 8)) 1) (c (a (i 479 (q 4 (q . 1) (coinid -97 (sha256 (q . 2) (sha256 (q . 258)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 39) (sha256 (q . 2) (a 11 (c 11 (c (a 5 (c 5 23)) (c 351 ())))) (sha256 (q . 1))))) 735)) (q 4 () (coinid -97 119 351))) 1) 1)) (q 2 (i 3 (q 11 (q . 2) (sha256 (q . 260)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 5) (sha256 (q . 2) (a 2 (c 2 7)) (sha256 (q . 1))))) (q 11 (q . 257))) 1)))) ())) - debug_program: (a (q 2 (q 2 (q 2 (q 2 (q 2 (i (= (a 79 (c 79 2)) (a 79 (c 79 (c (c (q . 73) (c (q . 1) ())) (c (c (q . 71) (c 19 ())) (c (c (q . 51) (c (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 5)))) (sha256 (concat (concat (q . 2) (a 495 (c 495 (c (a 79 (c 79 5)) (c 87 ()))))) (sha256 (concat (q . 1) ())))))))) (c (q . 1) ()))) ())))))) (q) (q 8 (q . "assertion failed at 132:3"))) 1) (c (a -73 (c 87 (c 39 (c -9 (c 2 (c 59 (c 13 (c (q . 1) (c (c (c (q . 51) (c 43 (c (q . 1) ()))) ()) ()))))))))) 1)) (c (c (a 19 (c 19 (c (q . 2) (c (c (q . 1) 91) (c (c (q . 4) (c (c (q . 1) 43) (c (c (q . 4) (c (c (q . 1) 19) (c (c (q . 4) (c (c (q . 1) 123) (c (q . 1) ()))) ()))) ()))) ()))))) (c 4 25)) 1)) (c (c (coinid 8 12 ()) (c 8 (c () ()))) 1)) (c (c (c (sha256 (q . "parent_parent_coin_info")) (sha256 (q . "launcher_puzzle"))) (c (sha256 (q . "p2_puzzle_hash")) (c (q . 2) (c (c (q . 1) (q . 1)) (c (q . 1) ()))))) 1)) (c (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (c (q 2 (i (not (l 11)) (q 2 (i 15 (q) (q 8 (q . "assertion failed at 75:9"))) 1) (q 2 (i (a (i (= (f (f 11)) (q . 51)) (q 2 (i (= (% (f (r (r (f 11)))) (q . 2)) (q . 1)) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i (not 15) (q 2 (q 2 (i (= (f (r (r (f 23)))) (- () (q . 113))) (q . 2) (q 2 (q 4 2 5) (c (c (q . 51) (c (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 11)))) (sha256 (concat (concat (q . 2) (a 29 (c 29 (c (a 9 (c 9 11)) (c (f (r (f 23))) ()))))) (sha256 (concat (q . 1) ())))))))) (c (f (r (r (f 23)))) (r (r (r (f 23))))))) 1))) 1) (c (a 10 (c (c 4 (c 10 14)) (c 5 (c (r 11) (q . 1))))) 1)) (q 8 (q . "assertion failed at 82:9"))) 1) (q 4 (f 11) (a 10 (c (c 4 (c 10 14)) (c 5 (c (r 11) ())))))) 1)) 1) (c (q 2 (q 2 (q 2 (i (all 13 2) (q 2 (q 4 4 (c 10 14)) (c (c (c (q . 73) (c 767 ())) (c (c (q . 71) (c (r 9) ())) (a 11 (c (c 23 (c 11 47)) (c 95 (c (a -65 1535) ())))))) 1)) (q 8 (q . "assertion failed at 50:5"))) 1) (c (any (f 4) (= (r 4) (f (r 47)))) 1)) (c (c (a (i (r (r 95)) (q 4 (q . 1) (coinid (f 95) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 23)))) (sha256 (concat (concat (q . 2) (a 11 (c 11 (c (a 5 (c 5 23)) (c (f (r 95)) ()))))) (sha256 (concat (q . 1) ())))))))) (f (r (r 95))))) (q 4 () (coinid (f 95) (r (r 23)) (f (r 95))))) 1) (= (% -65 (q . 2)) (q . 1))) 1)) (q 2 (i (not (l 3)) (q 11 (concat (q . 1) (q . 1))) (q 11 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 4)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 3)))) (sha256 (concat (concat (q . 2) (a 2 (c 2 (r 3)))) (sha256 (concat (q . 1) ()))))))))) 1)))) ())) + debug_program: (a (q 2 (q 2 (q 2 (q 2 (q 2 (i (= (a 79 (c 79 2)) (a 79 (c 79 (c (c (q . 73) (c (q . 1) ())) (c (c (q . 71) (c 19 ())) (c (c (q . 51) (c (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 5)))) (sha256 (concat (concat (q . 2) (a 495 (c 495 (c (a 79 (c 79 5)) (c 87 ()))))) (sha256 (concat (q . 1) ())))))))) (c (q . 1) ()))) ())))))) (q) (q 8 (q . "assertion failed at singleton.rue:132:3"))) 1) (c (a -73 (c 87 (c 39 (c -9 (c 2 (c 59 (c 13 (c (q . 1) (c (c (c (q . 51) (c 43 (c (q . 1) ()))) ()) ()))))))))) 1)) (c (c (a 19 (c 19 (c (q . 2) (c (c (q . 1) 91) (c (c (q . 4) (c (c (q . 1) 43) (c (c (q . 4) (c (c (q . 1) 19) (c (c (q . 4) (c (c (q . 1) 123) (c (q . 1) ()))) ()))) ()))) ()))))) (c 4 25)) 1)) (c (c (coinid 8 12 ()) (c 8 (c () ()))) 1)) (c (c (c (sha256 (q . "parent_parent_coin_info")) (sha256 (q . "launcher_puzzle"))) (c (sha256 (q . "p2_puzzle_hash")) (c (q . 2) (c (c (q . 1) (q . 1)) (c (q . 1) ()))))) 1)) (c (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (c (q 2 (i (not (l 11)) (q 2 (i 15 (q) (q 8 (q . "assertion failed at singleton.rue:75:9"))) 1) (q 2 (i (a (i (= (f (f 11)) (q . 51)) (q 2 (i (= (% (f (r (r (f 11)))) (q . 2)) (q . 1)) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i (not 15) (q 2 (q 2 (i (= (f (r (r (f 23)))) (- () (q . 113))) (q . 2) (q 2 (q 4 2 5) (c (c (q . 51) (c (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 11)))) (sha256 (concat (concat (q . 2) (a 29 (c 29 (c (a 9 (c 9 11)) (c (f (r (f 23))) ()))))) (sha256 (concat (q . 1) ())))))))) (c (f (r (r (f 23)))) (r (r (r (f 23))))))) 1))) 1) (c (a 10 (c (c 4 (c 10 14)) (c 5 (c (r 11) (q . 1))))) 1)) (q 8 (q . "assertion failed at singleton.rue:82:9"))) 1) (q 4 (f 11) (a 10 (c (c 4 (c 10 14)) (c 5 (c (r 11) ())))))) 1)) 1) (c (q 2 (q 2 (q 2 (i (all 13 2) (q 2 (q 4 4 (c 10 14)) (c (c (c (q . 73) (c 767 ())) (c (c (q . 71) (c (r 9) ())) (a 11 (c (c 23 (c 11 47)) (c 95 (c (a -65 1535) ())))))) 1)) (q 8 (q . "assertion failed at singleton.rue:50:5"))) 1) (c (any (f 4) (= (r 4) (f (r 47)))) 1)) (c (c (a (i (r (r 95)) (q 4 (q . 1) (coinid (f 95) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 23)))) (sha256 (concat (concat (q . 2) (a 11 (c 11 (c (a 5 (c 5 23)) (c (f (r 95)) ()))))) (sha256 (concat (q . 1) ())))))))) (f (r (r 95))))) (q 4 () (coinid (f 95) (r (r 23)) (f (r 95))))) 1) (= (% -65 (q . 2)) (q . 1))) 1)) (q 2 (i (not (l 3)) (q 11 (concat (q . 1) (q . 1))) (q 11 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 4)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 3)))) (sha256 (concat (concat (q . 2) (a 2 (c 2 (r 3)))) (sha256 (concat (q . 1) ()))))))))) 1)))) ())) output: () runtime_cost: 1331664 byte_cost: 17796000 diff --git a/std_tests.yaml b/std_tests.yaml new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/std_tests.yaml @@ -0,0 +1 @@ +{} diff --git a/tests/blocks/raise_stmt.yaml b/tests/blocks/raise_stmt.yaml index b7790cc9..9421c20b 100644 --- a/tests/blocks/raise_stmt.yaml +++ b/tests/blocks/raise_stmt.yaml @@ -1,6 +1,6 @@ program: (x) -debug_program: (x (q . "raise called at 2:5") (q . "Hello, world!")) +debug_program: (x (q . "raise called at raise_stmt.rue:2:5") (q . "Hello, world!")) solution: () byte_cost: 36000 clvm_error: clvm raise () -debug_clvm_error: clvm raise ("raise called at 2:5" "Hello, world!") +debug_clvm_error: clvm raise ("raise called at raise_stmt.rue:2:5" "Hello, world!") diff --git a/tests/builtins.yaml b/tests/builtins.yaml index d66c2b7b..6ef7a706 100644 --- a/tests/builtins.yaml +++ b/tests/builtins.yaml @@ -1,49 +1,49 @@ tests: - name: casting program: (a (i (= (q . "hello") (q . "hello")) (q 2 (i (= (a (q . 1) (q . 42)) (q . 42)) (q 2 (i (= (a (q . 2) (c (q . "hello") (q . "world"))) (q . "hello")) (q 2 (i (= (a (q . 3) (c (q . "hello") (q . "world"))) (q . "world")) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) - debug_program: (a (i (= (q . "hello") (q . "hello")) (q 2 (q 2 (i (= (a 2 (q . 42)) (q . 42)) (q 2 (q 2 (i (= (a 4 (c (q . "hello") (q . "world"))) (q . "hello")) (q 2 (i (= (a 6 (c (q . "hello") (q . "world"))) (q . "world")) (q) (q 8 (q . "assertion failed at 10:5"))) 1) (q 8 (q . "assertion failed at 9:5"))) 1) (c (c (q . 2) (q . 3)) 1)) (q 8 (q . "assertion failed at 5:5"))) 1) (c (q . 1) 1)) (q 8 (q . "assertion failed at 2:5"))) 1) + debug_program: (a (i (= (q . "hello") (q . "hello")) (q 2 (q 2 (i (= (a 2 (q . 42)) (q . 42)) (q 2 (q 2 (i (= (a 4 (c (q . "hello") (q . "world"))) (q . "hello")) (q 2 (i (= (a 6 (c (q . "hello") (q . "world"))) (q . "world")) (q) (q 8 (q . "assertion failed at builtins.rue:10:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:9:5"))) 1) (c (c (q . 2) (q . 3)) 1)) (q 8 (q . "assertion failed at builtins.rue:5:5"))) 1) (c (q . 1) 1)) (q 8 (q . "assertion failed at builtins.rue:2:5"))) 1) output: () runtime_cost: 2159 byte_cost: 2412000 total_cost: 2414159 - name: hash_functions program: (a (i (= (sha256 (q . "hello")) (q . 0x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824)) (q 2 (i (= (a (c (c (q . 11) ()) (c (q . "hel") (c (q . 27759) ()))) ()) (q . 0x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824)) (q 2 (i (= (q . 0x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824) (q . 0x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824)) (q 2 (i (= (keccak256 (q . "hello")) (q . 0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8)) (q 2 (i (= (a (c (c (q . 62) ()) (c (q . "hel") (c (q . 27759) ()))) ()) (q . 0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8)) (q 2 (i (= (q . 0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8) (q . 0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8)) (q 2 (q 2 (q 2 (i (= 2 (sha256 9 21 29)) (q 2 (i (= 2 (q . 0xb74ea4f137ada0db15f35bb38f3ae75e5a92d0c9bb2dc8745ed8b202d8397add)) (q) (q 8)) 1) (q 8)) 1) (c (coinid 4 10 14) 1)) (c (c (sha256 (q . "parent_coin_id")) (c (sha256 (q . "puzzle_hash")) (q . 1))) 1)) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) - debug_program: (a (i (= (sha256 (q . "hello")) (q . 0x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824)) (q 2 (i (= (a (c (c (q . 11) ()) (c (q . "hel") (c (q . 27759) ()))) ()) (q . 0x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824)) (q 2 (i (= (sha256 (q . "hello")) (q . 0x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824)) (q 2 (i (= (keccak256 (q . "hello")) (q . 0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8)) (q 2 (i (= (a (c (c (q . 62) ()) (c (q . "hel") (c (q . 27759) ()))) ()) (q . 0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8)) (q 2 (i (= (keccak256 (q . "hello")) (q . 0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8)) (q 2 (q 2 (q 2 (i (= 2 (sha256 (concat (concat 9 21) 29))) (q 2 (i (= 2 (q . 0xb74ea4f137ada0db15f35bb38f3ae75e5a92d0c9bb2dc8745ed8b202d8397add)) (q) (q 8 (q . "assertion failed at 28:5"))) 1) (q 8 (q . "assertion failed at 27:5"))) 1) (c (coinid 4 10 14) 1)) (c (c (sha256 (q . "parent_coin_id")) (c (sha256 (q . "puzzle_hash")) (q . 1))) 1)) (q 8 (q . "assertion failed at 20:5"))) 1) (q 8 (q . "assertion failed at 19:5"))) 1) (q 8 (q . "assertion failed at 18:5"))) 1) (q 8 (q . "assertion failed at 16:5"))) 1) (q 8 (q . "assertion failed at 15:5"))) 1) (q 8 (q . "assertion failed at 14:5"))) 1) + debug_program: (a (i (= (sha256 (q . "hello")) (q . 0x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824)) (q 2 (i (= (a (c (c (q . 11) ()) (c (q . "hel") (c (q . 27759) ()))) ()) (q . 0x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824)) (q 2 (i (= (sha256 (q . "hello")) (q . 0x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824)) (q 2 (i (= (keccak256 (q . "hello")) (q . 0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8)) (q 2 (i (= (a (c (c (q . 62) ()) (c (q . "hel") (c (q . 27759) ()))) ()) (q . 0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8)) (q 2 (i (= (keccak256 (q . "hello")) (q . 0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8)) (q 2 (q 2 (q 2 (i (= 2 (sha256 (concat (concat 9 21) 29))) (q 2 (i (= 2 (q . 0xb74ea4f137ada0db15f35bb38f3ae75e5a92d0c9bb2dc8745ed8b202d8397add)) (q) (q 8 (q . "assertion failed at builtins.rue:28:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:27:5"))) 1) (c (coinid 4 10 14) 1)) (c (c (sha256 (q . "parent_coin_id")) (c (sha256 (q . "puzzle_hash")) (q . 1))) 1)) (q 8 (q . "assertion failed at builtins.rue:20:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:19:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:18:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:16:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:15:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:14:5"))) 1) output: () runtime_cost: 10909 byte_cost: 8568000 total_cost: 8578909 - name: byte_manipulation program: (a (i (a (c (c (q . 14) ()) ()) ()) (q 8) (q 2 (i (= (a (c (c (q . 14) ()) (c (q . "hello") ())) ()) (q . "hello")) (q 2 (i (= (a (c (c (q . 14) ()) (c (q . "hel") (c (q . 27759) ()))) ()) (q . "hello")) (q 2 (i (= (substr (q . "hello") (q . 2)) (q . "llo")) (q 2 (i (= (substr (q . "hello") () (q . 2)) (q . 26725)) (q 2 (i (= (substr (q . "hello") () (q . 5)) (q . "hello")) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1)) 1) - debug_program: (a (i (= (a (c (c (q . 14) ()) ()) ()) ()) (q 2 (i (= (a (c (c (q . 14) ()) (c (q . "hello") ())) ()) (q . "hello")) (q 2 (i (= (a (c (c (q . 14) ()) (c (q . "hel") (c (q . 27759) ()))) ()) (q . "hello")) (q 2 (i (= (substr (q . "hello") (q . 2)) (q . "llo")) (q 2 (i (= (substr (q . "hello") () (q . 2)) (q . 26725)) (q 2 (i (= (substr (q . "hello") () (q . 5)) (q . "hello")) (q) (q 8 (q . "assertion failed at 38:5"))) 1) (q 8 (q . "assertion failed at 37:5"))) 1) (q 8 (q . "assertion failed at 36:5"))) 1) (q 8 (q . "assertion failed at 34:5"))) 1) (q 8 (q . "assertion failed at 33:5"))) 1) (q 8 (q . "assertion failed at 32:5"))) 1) + debug_program: (a (i (= (a (c (c (q . 14) ()) ()) ()) ()) (q 2 (i (= (a (c (c (q . 14) ()) (c (q . "hello") ())) ()) (q . "hello")) (q 2 (i (= (a (c (c (q . 14) ()) (c (q . "hel") (c (q . 27759) ()))) ()) (q . "hello")) (q 2 (i (= (substr (q . "hello") (q . 2)) (q . "llo")) (q 2 (i (= (substr (q . "hello") () (q . 2)) (q . 26725)) (q 2 (i (= (substr (q . "hello") () (q . 5)) (q . "hello")) (q) (q 8 (q . "assertion failed at builtins.rue:38:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:37:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:36:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:34:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:33:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:32:5"))) 1) output: () runtime_cost: 4721 byte_cost: 3888000 total_cost: 3892721 - name: arithmetic program: (a (i (a (c (c (q . 16) ()) ()) ()) (q 8) (q 2 (i (= (a (c (c (q . 16) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 16) ()) (c (q . 1) (c (q . 2) ()))) ()) (q . 3)) (q 2 (i (a (c (c (q . 17) ()) ()) ()) (q 8) (q 2 (i (= (a (c (c (q . 17) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 17) ()) (c (q . 1) (c (q . 2) ()))) ()) (q . -1)) (q 2 (i (= (a (c (c (q . 18) ()) ()) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 18) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 18) ()) (c (q . 2) (c (q . 3) ()))) ()) (q . 6)) (q 2 (q 2 (i (= 4 (q . 3)) (q 2 (i (= 6 (q . 1)) (q 2 (i (= (modpow (q . 2) (q . 3) (q . 5)) (q . 3)) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (c (c (q . 3) (q . 1)) 1)) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1)) 1) (q 8)) 1) (q 8)) 1)) 1) - debug_program: (a (i (= (a (c (c (q . 16) ()) ()) ()) ()) (q 2 (i (= (a (c (c (q . 16) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 16) ()) (c (q . 1) (c (q . 2) ()))) ()) (q . 3)) (q 2 (i (= (a (c (c (q . 17) ()) ()) ()) ()) (q 2 (i (= (a (c (c (q . 17) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 17) ()) (c (q . 1) (c (q . 2) ()))) ()) (- () (q . 1))) (q 2 (i (= (a (c (c (q . 18) ()) ()) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 18) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 18) ()) (c (q . 2) (c (q . 3) ()))) ()) (q . 6)) (q 2 (q 2 (i (= (f 2) (q . 3)) (q 2 (i (= (r 2) (q . 1)) (q 2 (i (= (modpow (q . 2) (q . 3) (q . 5)) (q . 3)) (q) (q 8 (q . "assertion failed at 58:5"))) 1) (q 8 (q . "assertion failed at 56:5"))) 1) (q 8 (q . "assertion failed at 55:5"))) 1) (c (divmod (q . 10) (q . 3)) 1)) (q 8 (q . "assertion failed at 52:5"))) 1) (q 8 (q . "assertion failed at 51:5"))) 1) (q 8 (q . "assertion failed at 50:5"))) 1) (q 8 (q . "assertion failed at 48:5"))) 1) (q 8 (q . "assertion failed at 47:5"))) 1) (q 8 (q . "assertion failed at 46:5"))) 1) (q 8 (q . "assertion failed at 44:5"))) 1) (q 8 (q . "assertion failed at 43:5"))) 1) (q 8 (q . "assertion failed at 42:5"))) 1) + debug_program: (a (i (= (a (c (c (q . 16) ()) ()) ()) ()) (q 2 (i (= (a (c (c (q . 16) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 16) ()) (c (q . 1) (c (q . 2) ()))) ()) (q . 3)) (q 2 (i (= (a (c (c (q . 17) ()) ()) ()) ()) (q 2 (i (= (a (c (c (q . 17) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 17) ()) (c (q . 1) (c (q . 2) ()))) ()) (- () (q . 1))) (q 2 (i (= (a (c (c (q . 18) ()) ()) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 18) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 18) ()) (c (q . 2) (c (q . 3) ()))) ()) (q . 6)) (q 2 (q 2 (i (= (f 2) (q . 3)) (q 2 (i (= (r 2) (q . 1)) (q 2 (i (= (modpow (q . 2) (q . 3) (q . 5)) (q . 3)) (q) (q 8 (q . "assertion failed at builtins.rue:58:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:56:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:55:5"))) 1) (c (divmod (q . 10) (q . 3)) 1)) (q 8 (q . "assertion failed at builtins.rue:52:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:51:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:50:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:48:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:47:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:46:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:44:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:43:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:42:5"))) 1) output: () runtime_cost: 29815 byte_cost: 7344000 total_cost: 7373815 - name: boolean_logic program: (a (i (a (c (c (q . 33) ()) ()) ()) (q 8) (q 2 (i (a (c (c (q . 33) ()) (c () ())) ()) (q 8) (q 2 (i (= (a (c (c (q . 33) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 33) ()) (c () (c (q . 1) ()))) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 34) ()) ()) ()) (q . 1)) (q 2 (i (a (c (c (q . 34) ()) (c () ())) ()) (q 8) (q 2 (i (= (a (c (c (q . 34) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 34) ()) (c (q . 1) (c (q . 1) ()))) ()) (q . 1)) (q) (q 8)) 1) (q 8)) 1)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1)) 1)) 1) - debug_program: (a (i (= (a (c (c (q . 33) ()) ()) ()) ()) (q 2 (i (= (a (c (c (q . 33) ()) (c () ())) ()) ()) (q 2 (i (= (a (c (c (q . 33) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 33) ()) (c () (c (q . 1) ()))) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 34) ()) ()) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 34) ()) (c () ())) ()) ()) (q 2 (i (= (a (c (c (q . 34) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 34) ()) (c (q . 1) (c (q . 1) ()))) ()) (q . 1)) (q) (q 8 (q . "assertion failed at 70:5"))) 1) (q 8 (q . "assertion failed at 69:5"))) 1) (q 8 (q . "assertion failed at 68:5"))) 1) (q 8 (q . "assertion failed at 67:5"))) 1) (q 8 (q . "assertion failed at 65:5"))) 1) (q 8 (q . "assertion failed at 64:5"))) 1) (q 8 (q . "assertion failed at 63:5"))) 1) (q 8 (q . "assertion failed at 62:5"))) 1) + debug_program: (a (i (= (a (c (c (q . 33) ()) ()) ()) ()) (q 2 (i (= (a (c (c (q . 33) ()) (c () ())) ()) ()) (q 2 (i (= (a (c (c (q . 33) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 33) ()) (c () (c (q . 1) ()))) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 34) ()) ()) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 34) ()) (c () ())) ()) ()) (q 2 (i (= (a (c (c (q . 34) ()) (c (q . 1) ())) ()) (q . 1)) (q 2 (i (= (a (c (c (q . 34) ()) (c (q . 1) (c (q . 1) ()))) ()) (q . 1)) (q) (q 8 (q . "assertion failed at builtins.rue:70:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:69:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:68:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:67:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:65:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:64:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:63:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:62:5"))) 1) output: () runtime_cost: 10536 byte_cost: 5028000 total_cost: 5038536 - name: g1_math program: (a (q 2 (q 2 (i (= (pubkey_for_exp ()) 5) (q 2 (i (= (pubkey_for_exp (q . 0x0000000000000000000000000000000000000000000000000000000000000000)) 5) (q 2 (i (= (pubkey_for_exp (sha256 ())) 4) (q 2 (i (= (a (c (c (q . 29) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 29) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 29) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 29) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 29) ()) (c 4 (c 4 ()))) ()) 6) (q 2 (i (= (a (c (c (q . 49) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 49) ()) (c 4 (c 4 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 6 (c 4 ()))) ()) 4) (q 2 (i (= (a (c (c (q . 49) ()) (c 6 (c 4 (c 4 ())))) ()) 5) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (c (c (q . 0x8646e8b10532e235ddb8fd7edcdb8d8b76c1006af0518e39d6cc2a84d059d1858f7749e4af3571eb8660d0d3aa91954b) (q . 0xa895cfd6482f4ff7328e0aa65a7902654bfaaf473eadf53a30620d04500949b1b2003c4559cd3a4bed3125f9ea2825d5)) 1)) (c (point_add) ())) - debug_program: (a (q 2 (q 2 (i (= (pubkey_for_exp ()) 5) (q 2 (i (= (pubkey_for_exp (q . 0x0000000000000000000000000000000000000000000000000000000000000000)) 5) (q 2 (i (= (pubkey_for_exp (sha256 ())) 4) (q 2 (i (= (a (c (c (q . 29) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 29) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 29) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 29) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 29) ()) (c 4 (c 4 ()))) ()) 6) (q 2 (i (= (a (c (c (q . 49) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 49) ()) (c 4 (c 4 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 6 (c 4 ()))) ()) 4) (q 2 (i (= (a (c (c (q . 49) ()) (c 6 (c 4 (c 4 ())))) ()) 5) (q) (q 8 (q . "assertion failed at 93:5"))) 1) (q 8 (q . "assertion failed at 92:5"))) 1) (q 8 (q . "assertion failed at 91:5"))) 1) (q 8 (q . "assertion failed at 90:5"))) 1) (q 8 (q . "assertion failed at 89:5"))) 1) (q 8 (q . "assertion failed at 88:5"))) 1) (q 8 (q . "assertion failed at 87:5"))) 1) (q 8 (q . "assertion failed at 85:5"))) 1) (q 8 (q . "assertion failed at 84:5"))) 1) (q 8 (q . "assertion failed at 83:5"))) 1) (q 8 (q . "assertion failed at 82:5"))) 1) (q 8 (q . "assertion failed at 81:5"))) 1) (q 8 (q . "assertion failed at 79:5"))) 1) (q 8 (q . "assertion failed at 78:5"))) 1) (q 8 (q . "assertion failed at 77:5"))) 1) (c (c (q . 0x8646e8b10532e235ddb8fd7edcdb8d8b76c1006af0518e39d6cc2a84d059d1858f7749e4af3571eb8660d0d3aa91954b) (q . 0xa895cfd6482f4ff7328e0aa65a7902654bfaaf473eadf53a30620d04500949b1b2003c4559cd3a4bed3125f9ea2825d5)) 1)) (c (point_add) ())) + debug_program: (a (q 2 (q 2 (i (= (pubkey_for_exp ()) 5) (q 2 (i (= (pubkey_for_exp (q . 0x0000000000000000000000000000000000000000000000000000000000000000)) 5) (q 2 (i (= (pubkey_for_exp (sha256 ())) 4) (q 2 (i (= (a (c (c (q . 29) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 29) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 29) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 29) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 29) ()) (c 4 (c 4 ()))) ()) 6) (q 2 (i (= (a (c (c (q . 49) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 49) ()) (c 4 (c 4 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 49) ()) (c 6 (c 4 ()))) ()) 4) (q 2 (i (= (a (c (c (q . 49) ()) (c 6 (c 4 (c 4 ())))) ()) 5) (q) (q 8 (q . "assertion failed at builtins.rue:93:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:92:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:91:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:90:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:89:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:88:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:87:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:85:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:84:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:83:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:82:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:81:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:79:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:78:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:77:5"))) 1) (c (c (q . 0x8646e8b10532e235ddb8fd7edcdb8d8b76c1006af0518e39d6cc2a84d059d1858f7749e4af3571eb8660d0d3aa91954b) (q . 0xa895cfd6482f4ff7328e0aa65a7902654bfaaf473eadf53a30620d04500949b1b2003c4559cd3a4bed3125f9ea2825d5)) 1)) (c (point_add) ())) output: () runtime_cost: 28164481 byte_cost: 11028000 total_cost: 39192481 - name: g2_math program: (a (q 2 (q 2 (i (= (a (c (c (q . 52) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 52) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 52) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 52) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 52) ()) (c 4 (c 4 ()))) ()) 6) (q 2 (i (= (a (c (c (q . 53) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 53) ()) (c 4 (c 4 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 6 (c 4 ()))) ()) 4) (q 2 (i (= (a (c (c (q . 53) ()) (c 6 (c 4 (c 4 ())))) ()) 5) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (c (c (q . 0xb1e87e3c3edbc445c23ec72974abf75ddf37d2958ee46e7c1e625feb3038a22915d5625b09b988d45ac125b43b8bb3bc16de0110df42517cf5e832584015b8af417eaa77df04acf45b4ef5ce0e574d3f5c1a3fc41cbea00500e2da5699ba9063) (q . 0x8842468e1b71c650a1c89917df83e9d3c7be9768c326cfb3acd392ab9e7bc03631ee0fe5597b6bd64a7d056713c19f6e0269fb581460167adcc15c3602b9d84bdfa3089568697512a2bc09d08be3db872a461f87ced501ccc600830b2ae4df9a)) 1)) (c (g2_add) ())) - debug_program: (a (q 2 (q 2 (i (= (a (c (c (q . 52) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 52) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 52) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 52) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 52) ()) (c 4 (c 4 ()))) ()) 6) (q 2 (i (= (a (c (c (q . 53) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 53) ()) (c 4 (c 4 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 6 (c 4 ()))) ()) 4) (q 2 (i (= (a (c (c (q . 53) ()) (c 6 (c 4 (c 4 ())))) ()) 5) (q) (q 8 (q . "assertion failed at 112:5"))) 1) (q 8 (q . "assertion failed at 111:5"))) 1) (q 8 (q . "assertion failed at 110:5"))) 1) (q 8 (q . "assertion failed at 109:5"))) 1) (q 8 (q . "assertion failed at 108:5"))) 1) (q 8 (q . "assertion failed at 107:5"))) 1) (q 8 (q . "assertion failed at 106:5"))) 1) (q 8 (q . "assertion failed at 104:5"))) 1) (q 8 (q . "assertion failed at 103:5"))) 1) (q 8 (q . "assertion failed at 102:5"))) 1) (q 8 (q . "assertion failed at 101:5"))) 1) (q 8 (q . "assertion failed at 100:5"))) 1) (c (c (q . 0xb1e87e3c3edbc445c23ec72974abf75ddf37d2958ee46e7c1e625feb3038a22915d5625b09b988d45ac125b43b8bb3bc16de0110df42517cf5e832584015b8af417eaa77df04acf45b4ef5ce0e574d3f5c1a3fc41cbea00500e2da5699ba9063) (q . 0x8842468e1b71c650a1c89917df83e9d3c7be9768c326cfb3acd392ab9e7bc03631ee0fe5597b6bd64a7d056713c19f6e0269fb581460167adcc15c3602b9d84bdfa3089568697512a2bc09d08be3db872a461f87ced501ccc600830b2ae4df9a)) 1)) (c (g2_add) ())) + debug_program: (a (q 2 (q 2 (i (= (a (c (c (q . 52) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 52) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 52) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 52) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 52) ()) (c 4 (c 4 ()))) ()) 6) (q 2 (i (= (a (c (c (q . 53) ()) ()) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 5 ())) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 5 (c 5 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 4 ())) ()) 4) (q 2 (i (= (a (c (c (q . 53) ()) (c 4 (c 4 ()))) ()) 5) (q 2 (i (= (a (c (c (q . 53) ()) (c 6 (c 4 ()))) ()) 4) (q 2 (i (= (a (c (c (q . 53) ()) (c 6 (c 4 (c 4 ())))) ()) 5) (q) (q 8 (q . "assertion failed at builtins.rue:112:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:111:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:110:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:109:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:108:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:107:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:106:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:104:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:103:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:102:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:101:5"))) 1) (q 8 (q . "assertion failed at builtins.rue:100:5"))) 1) (c (c (q . 0xb1e87e3c3edbc445c23ec72974abf75ddf37d2958ee46e7c1e625feb3038a22915d5625b09b988d45ac125b43b8bb3bc16de0110df42517cf5e832584015b8af417eaa77df04acf45b4ef5ce0e574d3f5c1a3fc41cbea00500e2da5699ba9063) (q . 0x8842468e1b71c650a1c89917df83e9d3c7be9768c326cfb3acd392ab9e7bc03631ee0fe5597b6bd64a7d056713c19f6e0269fb581460167adcc15c3602b9d84bdfa3089568697512a2bc09d08be3db872a461f87ced501ccc600830b2ae4df9a)) 1)) (c (g2_add) ())) output: () runtime_cost: 34216851 byte_cost: 10668000 diff --git a/tests/debug/print.yaml b/tests/debug/print.yaml index f6764135..895e01ef 100644 --- a/tests/debug/print.yaml +++ b/tests/debug/print.yaml @@ -32,10 +32,10 @@ tests: - '3' - name: print_with_assertions program: (a (q 3 (a 2 (c (q . "hello") ())) (a 2 (c (q . "goodbye") ())) (a 2 (c (q . "hello") (q . "world")))) (c (q 2 (i (l 1) (q 2 (i (l 2) (q 8) (q 2 (i (a (i (l 3) (q) (q 2 (i 3 (q) (q 1 . 1)) 1)) 1) (q) (q 8)) 1)) 1) (q 8)) 1) ())) - debug_program: (a (q 2 (i ("debug_print" (q . "print.rue:26:5") (q . "First test")) (q) (q 3 (q . 1) (a (i ("debug_print" (q . "print.rue:28:5") (q . "Second test")) (q) (q 3 (q . 1) (a (i ("debug_print" (q . "print.rue:30:5") (q . "Third test")) (q) (q 3 (q . 1) () (a 2 (c (q . "hello") (q . "world"))))) 1) (a 2 (c (q . "goodbye") ())))) 1) (a 2 (c (q . "hello") ())))) 1) (c (q 2 (i ("debug_print" (q . "print.rue:35:5") (q . "Asserting value is a pair")) (q) (q 2 (i (l 1) (q 2 (i ("debug_print" (q . "print.rue:37:5") (q . "Asserting first is a string")) (q) (q 2 (i (not (l (f 1))) (q 2 (i ("debug_print" (q . "print.rue:39:5") (q . "Asserting rest is nil")) (q) (q 2 (i ("debug_print" (q . "print.rue:40:5") 1) (q) (q 2 (i (a (i (not (l (r 1))) (q 2 (i (= (r 1) ()) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i ("debug_print" (q . "print.rue:42:5") (q . "Value is valid")) (q) (q)) 1) (q 8 (q . "assertion failed at 41:5"))) 1)) 1)) 1) (q 8 (q . "assertion failed at 38:5"))) 1)) 1) (q 8 (q . "assertion failed at 36:5"))) 1)) 1) ())) + debug_program: (a (q 2 (i ("debug_print" (q . "print.rue:26:5") (q . "First test")) (q) (q 3 (q . 1) (a (i ("debug_print" (q . "print.rue:28:5") (q . "Second test")) (q) (q 3 (q . 1) (a (i ("debug_print" (q . "print.rue:30:5") (q . "Third test")) (q) (q 3 (q . 1) () (a 2 (c (q . "hello") (q . "world"))))) 1) (a 2 (c (q . "goodbye") ())))) 1) (a 2 (c (q . "hello") ())))) 1) (c (q 2 (i ("debug_print" (q . "print.rue:35:5") (q . "Asserting value is a pair")) (q) (q 2 (i (l 1) (q 2 (i ("debug_print" (q . "print.rue:37:5") (q . "Asserting first is a string")) (q) (q 2 (i (not (l (f 1))) (q 2 (i ("debug_print" (q . "print.rue:39:5") (q . "Asserting rest is nil")) (q) (q 2 (i ("debug_print" (q . "print.rue:40:5") 1) (q) (q 2 (i (a (i (not (l (r 1))) (q 2 (i (= (r 1) ()) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i ("debug_print" (q . "print.rue:42:5") (q . "Value is valid")) (q) (q)) 1) (q 8 (q . "assertion failed at print.rue:41:5"))) 1)) 1)) 1) (q 8 (q . "assertion failed at print.rue:38:5"))) 1)) 1) (q 8 (q . "assertion failed at print.rue:36:5"))) 1)) 1) ())) byte_cost: 2412000 clvm_error: clvm raise () - debug_clvm_error: clvm raise "assertion failed at 41:5" + debug_clvm_error: clvm raise "assertion failed at print.rue:41:5" print_messages: - '"First test"' - '"Asserting value is a pair"' diff --git a/tests/destructuring.yaml b/tests/destructuring.yaml index 53b90bd7..1824fc0c 100644 --- a/tests/destructuring.yaml +++ b/tests/destructuring.yaml @@ -1,5 +1,5 @@ program: (a (q 2 (i (= (a 6 (c (q . 100) (q . 200))) (q . 300)) (q 2 (i (= (a (c (c (q . 16) ()) (c (q . 1) (c (q . 2) (c (q . 3) ())))) ()) (q . 6)) (q 2 (i (= (a 4 (c (q . 100) (c (q . 200) ()))) (q . 300)) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (c (c (q 16 2 5) (q 16 2 3)) ())) -debug_program: (a (q 2 (i (= (a 14 (c (q . 100) (q . 200))) (q . 300)) (q 2 (i (= (a 10 (c (q . 1) (c (q . 2) (c (q . 3) ())))) (q . 6)) (q 2 (i (= (a 4 (c (q . 100) (c (q . 200) ()))) (q . 300)) (q) (q 8 (q . "assertion failed at 4:5"))) 1) (q 8 (q . "assertion failed at 3:5"))) 1) (q 8 (q . "assertion failed at 2:5"))) 1) (c (c (q 16 (f 1) (f (r 1))) (c (q 2 (c (c (q . 16) ()) 1) ()) (q 16 (f 1) (r 1)))) ())) +debug_program: (a (q 2 (i (= (a 14 (c (q . 100) (q . 200))) (q . 300)) (q 2 (i (= (a 10 (c (q . 1) (c (q . 2) (c (q . 3) ())))) (q . 6)) (q 2 (i (= (a 4 (c (q . 100) (c (q . 200) ()))) (q . 300)) (q) (q 8 (q . "assertion failed at destructuring.rue:4:5"))) 1) (q 8 (q . "assertion failed at destructuring.rue:3:5"))) 1) (q 8 (q . "assertion failed at destructuring.rue:2:5"))) 1) (c (c (q 16 (f 1) (f (r 1))) (c (q 2 (c (c (q . 16) ()) 1) ()) (q 16 (f 1) (r 1)))) ())) output: () runtime_cost: 5415 byte_cost: 2532000 diff --git a/tests/guards/pairs.yaml b/tests/guards/pairs.yaml index 060a148f..1ce1a6f3 100644 --- a/tests/guards/pairs.yaml +++ b/tests/guards/pairs.yaml @@ -41,7 +41,7 @@ tests: total_cost: 84214 - name: guard_type_assumption_shortcut program: (a (q 2 (i 4 (q 8) (q 2 (i (a (i 4 (q) (q 2 (i (= (strlen 6) (q . 32)) (q 1 . 1) (q)) 1)) 1) (q 8) (q)) 1)) 1) (c (c () ()) 1)) - debug_program: (a (q 2 (i (= (f 2) ()) (q 2 (i (not (a (i (= (f 2) ()) (q 2 (i (= (strlen (r 2)) (q . 32)) (q 1 . 1) (q)) 1) (q)) 1)) (q) (q 8 (q . "assertion failed at 28:5"))) 1) (q 8 (q . "assertion failed at 25:5"))) 1) (c (c () ()) 1)) + debug_program: (a (q 2 (i (= (f 2) ()) (q 2 (i (not (a (i (= (f 2) ()) (q 2 (i (= (strlen (r 2)) (q . 32)) (q 1 . 1) (q)) 1) (q)) 1)) (q) (q 8 (q . "assertion failed at pairs.rue:28:5"))) 1) (q 8 (q . "assertion failed at pairs.rue:25:5"))) 1) (c (c () ()) 1)) output: () runtime_cost: 1738 byte_cost: 1332000 diff --git a/tests/operators.yaml b/tests/operators.yaml index 26477f09..4b1fbe00 100644 --- a/tests/operators.yaml +++ b/tests/operators.yaml @@ -1,25 +1,24 @@ tests: - name: arithmetic program: (a (q 2 (i (= (q . 42) (q . 42)) (q 2 (i (= (q . -42) (q . -42)) (q 2 (i (= (q . 300) (q . 300)) (q 2 (i (= (q . 24930) (q . 24930)) (q 2 (i (= (point_add 6 6) 6) (q 2 (i (= (g2_add 4 4) 4) (q 2 (i (= (q . -100) (q . -100)) (q 2 (i (= (g1_subtract 6 6) 6) (q 2 (i (= (g2_subtract 4 4) 4) (q 2 (i (= (q . 200) (q . 200)) (q 2 (i (= (g1_multiply 6 6) 6) (q 2 (i (= (g2_multiply 4 4) 4) (q 2 (i (= (q . 66) (q . 66)) (q 2 (i (= (q . 2) (q . 2)) (q 2 (i (= (q . 200) (q . 200)) (q 2 (i (= (q . -67) (q . -67)) (q 2 (i (= (q . 1) (q . 1)) (q 2 (i (= (q . -200) (q . -200)) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (c (c (g2_add) (point_add)) ())) - debug_program: (a (q 2 (i (= (q . 42) (q . 42)) (q 2 (i (= (- () (q . 42)) (- () (q . 42))) (q 2 (i (= (+ (q . 100) (q . 200)) (q . 300)) (q 2 (i (= (concat (q . 97) (q . 98)) (q . 24930)) (q 2 (i (= (point_add 6 6) 6) (q 2 (i (= (g2_add 4 4) 4) (q 2 (i (= (- (q . 100) (q . 200)) (- () (q . 100))) (q 2 (i (= (g1_subtract 6 6) 6) (q 2 (i (= (g2_subtract 4 4) 4) (q 2 (i (= (* (q . 100) (q . 2)) (q . 200)) (q 2 (i (= (g1_multiply 6 6) 6) (q 2 (i (= (g2_multiply 4 4) 4) (q 2 (i (= (/ (q . 200) (q . 3)) (q . 66)) (q 2 (i (= (% (q . 200) (q . 3)) (q . 2)) (q 2 (i (= (+ (* (q . 66) (q . 3)) (q . 2)) (q . 200)) (q 2 (i (= (/ (- () (q . 200)) (q . 3)) (- () (q . 67))) (q 2 (i (= (% (- () (q . 200)) (q . 3)) (q . 1)) (q 2 (i (= (+ (* (- () (q . 67)) (q . 3)) (q . 1)) (- () (q . 200))) (q) (q 8 (q . "assertion failed at 23:5"))) 1) (q 8 (q . "assertion failed at 22:5"))) 1) (q 8 (q . "assertion failed at 21:5"))) 1) (q 8 (q . "assertion failed at 20:5"))) 1) (q 8 (q . "assertion failed at 19:5"))) 1) (q 8 (q . "assertion failed at 18:5"))) 1) (q 8 (q . "assertion failed at 16:5"))) 1) (q 8 (q . "assertion failed at 15:5"))) 1) (q 8 (q . "assertion failed at 14:5"))) 1) (q 8 (q . "assertion failed at 12:5"))) 1) (q 8 (q . "assertion failed at 11:5"))) 1) (q 8 (q . "assertion failed at 10:5"))) 1) (q 8 (q . "assertion failed at 8:5"))) 1) (q 8 (q . "assertion failed at 7:5"))) 1) (q 8 (q . "assertion failed at 6:5"))) 1) (q 8 (q . "assertion failed at 5:5"))) 1) (q 8 (q . "assertion failed at 3:5"))) 1) (q 8 (q . "assertion failed at 2:5"))) 1) (c (c (g2_add) (point_add)) ())) + debug_program: (a (q 2 (i (= (q . 42) (q . 42)) (q 2 (i (= (- () (q . 42)) (- () (q . 42))) (q 2 (i (= (+ (q . 100) (q . 200)) (q . 300)) (q 2 (i (= (concat (q . 97) (q . 98)) (q . 24930)) (q 2 (i (= (point_add 6 6) 6) (q 2 (i (= (g2_add 4 4) 4) (q 2 (i (= (- (q . 100) (q . 200)) (- () (q . 100))) (q 2 (i (= (g1_subtract 6 6) 6) (q 2 (i (= (g2_subtract 4 4) 4) (q 2 (i (= (* (q . 100) (q . 2)) (q . 200)) (q 2 (i (= (g1_multiply 6 6) 6) (q 2 (i (= (g2_multiply 4 4) 4) (q 2 (i (= (/ (q . 200) (q . 3)) (q . 66)) (q 2 (i (= (% (q . 200) (q . 3)) (q . 2)) (q 2 (i (= (+ (* (q . 66) (q . 3)) (q . 2)) (q . 200)) (q 2 (i (= (/ (- () (q . 200)) (q . 3)) (- () (q . 67))) (q 2 (i (= (% (- () (q . 200)) (q . 3)) (q . 1)) (q 2 (i (= (+ (* (- () (q . 67)) (q . 3)) (q . 1)) (- () (q . 200))) (q) (q 8 (q . "assertion failed at operators.rue:23:5"))) 1) (q 8 (q . "assertion failed at operators.rue:22:5"))) 1) (q 8 (q . "assertion failed at operators.rue:21:5"))) 1) (q 8 (q . "assertion failed at operators.rue:20:5"))) 1) (q 8 (q . "assertion failed at operators.rue:19:5"))) 1) (q 8 (q . "assertion failed at operators.rue:18:5"))) 1) (q 8 (q . "assertion failed at operators.rue:16:5"))) 1) (q 8 (q . "assertion failed at operators.rue:15:5"))) 1) (q 8 (q . "assertion failed at operators.rue:14:5"))) 1) (q 8 (q . "assertion failed at operators.rue:12:5"))) 1) (q 8 (q . "assertion failed at operators.rue:11:5"))) 1) (q 8 (q . "assertion failed at operators.rue:10:5"))) 1) (q 8 (q . "assertion failed at operators.rue:8:5"))) 1) (q 8 (q . "assertion failed at operators.rue:7:5"))) 1) (q 8 (q . "assertion failed at operators.rue:6:5"))) 1) (q 8 (q . "assertion failed at operators.rue:5:5"))) 1) (q 8 (q . "assertion failed at operators.rue:3:5"))) 1) (q 8 (q . "assertion failed at operators.rue:2:5"))) 1) (c (c (g2_add) (point_add)) ())) output: () runtime_cost: 16539931 byte_cost: 7236000 total_cost: 23775931 - name: comparison program: (a (i (= (q . 100) (q . 100)) (q 2 (i (= (q . 100) (q . 101)) (q 8) (q 2 (i (= (q . 100) (q . 101)) (q 8) (q 2 (i (= (q . 100) (q . 100)) (q 2 (i (> (q . 100) (q . 50)) (q 2 (i (> (q . 100) (q . 50)) (q 2 (i (any (> (q . 100) (q . 50)) (= (q . 100) (q . 50))) (q 2 (i (any (> (q . 100) (q . 100)) (= (q . 100) (q . 100))) (q 2 (i (any (> (q . 100) (q . 50)) (= (q . 50) (q . 100))) (q 2 (i (any (> (q . 100) (q . 100)) (= (q . 100) (q . 100))) (q 2 (i (= (q . 97) (q . 97)) (q 2 (i (= (q . 97) (q . 98)) (q 8) (q 2 (i (= (q . 97) (q . 98)) (q 8) (q 2 (i (= (q . 97) (q . 97)) (q 2 (i (>s (q . 98) (q . 97)) (q 2 (i (>s (q . 98) (q . 97)) (q 2 (i (any (>s (q . 98) (q . 97)) (= (q . 98) (q . 97))) (q 2 (i (any (>s (q . 98) (q . 98)) (= (q . 98) (q . 98))) (q 2 (i (any (>s (q . 98) (q . 97)) (= (q . 97) (q . 98))) (q 2 (i (any (>s (q . 97) (q . 97)) (= (q . 97) (q . 97))) (q 2 (i (all) (q 2 (i (any (q . 1)) (q 2 (i (any (q . 1)) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1)) 1)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1)) 1)) 1) (q 8)) 1) - debug_program: (a (i (= (q . 100) (q . 100)) (q 2 (i (not (= (q . 100) (q . 101))) (q 2 (i (not (= (q . 100) (q . 101))) (q 2 (i (not (not (= (q . 100) (q . 100)))) (q 2 (i (> (q . 100) (q . 50)) (q 2 (i (> (q . 100) (q . 50)) (q 2 (i (any (> (q . 100) (q . 50)) (= (q . 100) (q . 50))) (q 2 (i (any (> (q . 100) (q . 100)) (= (q . 100) (q . 100))) (q 2 (i (any (> (q . 100) (q . 50)) (= (q . 50) (q . 100))) (q 2 (i (any (> (q . 100) (q . 100)) (= (q . 100) (q . 100))) (q 2 (i (= (q . 97) (q . 97)) (q 2 (i (not (= (q . 97) (q . 98))) (q 2 (i (not (= (q . 97) (q . 98))) (q 2 (i (not (not (= (q . 97) (q . 97)))) (q 2 (i (>s (q . 98) (q . 97)) (q 2 (i (>s (q . 98) (q . 97)) (q 2 (i (any (>s (q . 98) (q . 97)) (= (q . 98) (q . 97))) (q 2 (i (any (>s (q . 98) (q . 98)) (= (q . 98) (q . 98))) (q 2 (i (any (>s (q . 98) (q . 97)) (= (q . 97) (q . 98))) (q 2 (i (any (>s (q . 97) (q . 97)) (= (q . 97) (q . 97))) (q 2 (i (q . 1) (q 2 (i (not ()) (q 2 (i (a (i (q . 1) (q 2 (i (q . 1) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i (all (q . 1) (q . 1)) (q 2 (i (a (i (q . 1) (q 1 . 1) (q 2 (i () (q 1 . 1) (q)) 1)) 1) (q 2 (i (any (q . 1) ()) (q 2 (i (a (i () (q 1 . 1) (q 2 (i (q . 1) (q 1 . 1) (q)) 1)) 1) (q 2 (i (any () (q . 1)) (q) (q 8 (q . "assertion failed at 58:5"))) 1) (q 8 (q . "assertion failed at 57:5"))) 1) (q 8 (q . "assertion failed at 56:5"))) 1) (q 8 (q . "assertion failed at 55:5"))) 1) (q 8 (q . "assertion failed at 54:5"))) 1) (q 8 (q . "assertion failed at 53:5"))) 1) (q 8 (q . "assertion failed at 52:5"))) 1) (q 8 (q . "assertion failed at 51:5"))) 1) (q 8 (q . "assertion failed at 49:5"))) 1) (q 8 (q . "assertion failed at 48:5"))) 1) (q 8 (q . "assertion failed at 47:5"))) 1) (q 8 (q . "assertion failed at 46:5"))) 1) (q 8 (q . "assertion failed at 45:5"))) 1) (q 8 (q . "assertion failed at 44:5"))) 1) (q 8 (q . "assertion failed at 42:5"))) 1) (q 8 (q . "assertion failed at 41:5"))) 1) (q 8 (q . "assertion failed at 40:5"))) 1) (q 8 (q . "assertion failed at 39:5"))) 1) (q 8 (q . "assertion failed at 37:5"))) 1) (q 8 (q . "assertion failed at 36:5"))) 1) (q 8 (q . "assertion failed at 35:5"))) 1) (q 8 (q . "assertion failed at 34:5"))) 1) (q 8 (q . "assertion failed at 33:5"))) 1) (q 8 (q . "assertion failed at 32:5"))) 1) (q 8 (q . "assertion failed at 30:5"))) 1) (q 8 (q . "assertion failed at 29:5"))) 1) (q 8 (q . "assertion failed at 28:5"))) 1) (q 8 (q . "assertion failed at 27:5"))) 1) + debug_program: (a (i (= (q . 100) (q . 100)) (q 2 (i (not (= (q . 100) (q . 101))) (q 2 (i (not (= (q . 100) (q . 101))) (q 2 (i (not (not (= (q . 100) (q . 100)))) (q 2 (i (> (q . 100) (q . 50)) (q 2 (i (> (q . 100) (q . 50)) (q 2 (i (any (> (q . 100) (q . 50)) (= (q . 100) (q . 50))) (q 2 (i (any (> (q . 100) (q . 100)) (= (q . 100) (q . 100))) (q 2 (i (any (> (q . 100) (q . 50)) (= (q . 50) (q . 100))) (q 2 (i (any (> (q . 100) (q . 100)) (= (q . 100) (q . 100))) (q 2 (i (= (q . 97) (q . 97)) (q 2 (i (not (= (q . 97) (q . 98))) (q 2 (i (not (= (q . 97) (q . 98))) (q 2 (i (not (not (= (q . 97) (q . 97)))) (q 2 (i (>s (q . 98) (q . 97)) (q 2 (i (>s (q . 98) (q . 97)) (q 2 (i (any (>s (q . 98) (q . 97)) (= (q . 98) (q . 97))) (q 2 (i (any (>s (q . 98) (q . 98)) (= (q . 98) (q . 98))) (q 2 (i (any (>s (q . 98) (q . 97)) (= (q . 97) (q . 98))) (q 2 (i (any (>s (q . 97) (q . 97)) (= (q . 97) (q . 97))) (q 2 (i (q . 1) (q 2 (i (not ()) (q 2 (i (a (i (q . 1) (q 2 (i (q . 1) (q 1 . 1) (q)) 1) (q)) 1) (q 2 (i (all (q . 1) (q . 1)) (q 2 (i (a (i (q . 1) (q 1 . 1) (q 2 (i () (q 1 . 1) (q)) 1)) 1) (q 2 (i (any (q . 1) ()) (q 2 (i (a (i () (q 1 . 1) (q 2 (i (q . 1) (q 1 . 1) (q)) 1)) 1) (q 2 (i (any () (q . 1)) (q) (q 8 (q . "assertion failed at operators.rue:58:5"))) 1) (q 8 (q . "assertion failed at operators.rue:57:5"))) 1) (q 8 (q . "assertion failed at operators.rue:56:5"))) 1) (q 8 (q . "assertion failed at operators.rue:55:5"))) 1) (q 8 (q . "assertion failed at operators.rue:54:5"))) 1) (q 8 (q . "assertion failed at operators.rue:53:5"))) 1) (q 8 (q . "assertion failed at operators.rue:52:5"))) 1) (q 8 (q . "assertion failed at operators.rue:51:5"))) 1) (q 8 (q . "assertion failed at operators.rue:49:5"))) 1) (q 8 (q . "assertion failed at operators.rue:48:5"))) 1) (q 8 (q . "assertion failed at operators.rue:47:5"))) 1) (q 8 (q . "assertion failed at operators.rue:46:5"))) 1) (q 8 (q . "assertion failed at operators.rue:45:5"))) 1) (q 8 (q . "assertion failed at operators.rue:44:5"))) 1) (q 8 (q . "assertion failed at operators.rue:42:5"))) 1) (q 8 (q . "assertion failed at operators.rue:41:5"))) 1) (q 8 (q . "assertion failed at operators.rue:40:5"))) 1) (q 8 (q . "assertion failed at operators.rue:39:5"))) 1) (q 8 (q . "assertion failed at operators.rue:37:5"))) 1) (q 8 (q . "assertion failed at operators.rue:36:5"))) 1) (q 8 (q . "assertion failed at operators.rue:35:5"))) 1) (q 8 (q . "assertion failed at operators.rue:34:5"))) 1) (q 8 (q . "assertion failed at operators.rue:33:5"))) 1) (q 8 (q . "assertion failed at operators.rue:32:5"))) 1) (q 8 (q . "assertion failed at operators.rue:30:5"))) 1) (q 8 (q . "assertion failed at operators.rue:29:5"))) 1) (q 8 (q . "assertion failed at operators.rue:28:5"))) 1) (q 8 (q . "assertion failed at operators.rue:27:5"))) 1) output: () runtime_cost: 19280 byte_cost: 9636000 total_cost: 9655280 - name: bitwise - program: (a (i (= (lognot (q . 10)) (q . -11)) (q 2 (i (= (ash (q . 10) (q . -2)) (q . 2)) (q 2 (i (= (ash (q . 10) (q . 2)) (q . 40)) (q 2 (i (logand (q . 10) (q . 5)) (q 8) (q 2 (i (= (logior (q . 10) (q . 5)) (q . 15)) (q 2 (i (= (logxor (q . 10) (q . 5)) (q . 15)) (q) (q 8)) 1) (q 8)) 1)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) - debug_program: (a (i (= (lognot (q . 10)) (- () (q . 11))) (q 2 (i (= (ash (q . 10) (- () (q . 2))) (q . 2)) (q 2 (i (= (ash (q . 10) (q . 2)) (q . 40)) (q 2 (i (= (logand (q . 10) (q . 5)) ()) (q 2 (i (= (logior (q . 10) (q . 5)) (q . 15)) (q 2 (i (= (logxor (q . 10) (q . 5)) (q . 15)) (q) (q 8 (q . "assertion failed at 67:5"))) 1) (q 8 (q . "assertion failed at 66:5"))) 1) (q 8 (q . "assertion failed at 65:5"))) 1) (q 8 (q . "assertion failed at 64:5"))) 1) (q 8 (q . "assertion failed at 63:5"))) 1) (q 8 (q . "assertion failed at 62:5"))) 1) - output: () - runtime_cost: 5714 + program: (a (i (= (lognot (q . 10)) (q . -11)) (q 2 (i (= (ash (q . 10) (q . 2)) (q . 2)) (q 2 (i (= (ash (q . 10) (q . -2)) (q . 40)) (q 2 (i (logand (q . 10) (q . 5)) (q 8) (q 2 (i (= (logior (q . 10) (q . 5)) (q . 15)) (q 2 (i (= (logxor (q . 10) (q . 5)) (q . 15)) (q) (q 8)) 1) (q 8)) 1)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) + debug_program: (a (i (= (lognot (q . 10)) (- () (q . 11))) (q 2 (i (= (ash (q . 10) (q . 2)) (q . 2)) (q 2 (i (= (ash (q . 10) (- () (q . 2))) (q . 40)) (q 2 (i (= (logand (q . 10) (q . 5)) ()) (q 2 (i (= (logior (q . 10) (q . 5)) (q . 15)) (q 2 (i (= (logxor (q . 10) (q . 5)) (q . 15)) (q) (q 8 (q . "assertion failed at operators.rue:67:5"))) 1) (q 8 (q . "assertion failed at operators.rue:66:5"))) 1) (q 8 (q . "assertion failed at operators.rue:65:5"))) 1) (q 8 (q . "assertion failed at operators.rue:64:5"))) 1) (q 8 (q . "assertion failed at operators.rue:63:5"))) 1) (q 8 (q . "assertion failed at operators.rue:62:5"))) 1) byte_cost: 2628000 - total_cost: 2633714 + clvm_error: clvm raise () + debug_clvm_error: clvm raise "assertion failed at operators.rue:63:5" diagnostics: - Unnecessary `+` operator, since it has no effect at operators.rue:2:12 - Condition always evaluates to `true` at operators.rue:51:12 diff --git a/tests/optimizer/function_value.yaml b/tests/optimizer/function_value.yaml index 83ef51db..e1e55108 100644 --- a/tests/optimizer/function_value.yaml +++ b/tests/optimizer/function_value.yaml @@ -1,5 +1,5 @@ program: (a (q 2 (q 2 (i (a (i (= 2 (q . 0xc71082ef47283d2f0723105cbddea6e3fa73e772d12587ec2d2a29a6f8057bc3)) (q 1 . 1) (q 2 (i (= 2 (q . 0x19c7b1ed29e8f501f6985cd6addd3b6e5bd7ccc251f1a4018550837b3006239b)) (q 1 . 1) (q)) 1)) 1) (q) (q 8)) 1) (c (a 2 (c 2 (q 16 2 5))) 1)) (c (q 2 (i (l 3) (q 11 (q . 2) (a 2 (c 2 5)) (a 2 (c 2 7))) (q 11 (q . 1) 3)) 1) ())) -debug_program: (a (q 2 (q 2 (i (a (i (= 4 10) (q 1 . 1) (q 2 (i (= 4 14) (q 1 . 1) (q)) 1)) 1) (q) (q 8 (q . "assertion failed at 14:5"))) 1) (c (c (a 2 (c 2 (c (q . 2) (c (c (q . 1) (q 16 2 5)) (c (q . 1) ()))))) (c (q . 0xc71082ef47283d2f0723105cbddea6e3fa73e772d12587ec2d2a29a6f8057bc3) (q . 0x19c7b1ed29e8f501f6985cd6addd3b6e5bd7ccc251f1a4018550837b3006239b))) 1)) (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) ())) +debug_program: (a (q 2 (q 2 (i (a (i (= 4 10) (q 1 . 1) (q 2 (i (= 4 14) (q 1 . 1) (q)) 1)) 1) (q) (q 8 (q . "assertion failed at function_value.rue:14:5"))) 1) (c (c (a 2 (c 2 (c (q . 2) (c (c (q . 1) (q 16 2 5)) (c (q . 1) ()))))) (c (q . 0xc71082ef47283d2f0723105cbddea6e3fa73e772d12587ec2d2a29a6f8057bc3) (q . 0x19c7b1ed29e8f501f6985cd6addd3b6e5bd7ccc251f1a4018550837b3006239b))) 1)) (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) ())) output: () runtime_cost: 11430 byte_cost: 3060000 diff --git a/tests/optimizer/listp_truthy.yaml b/tests/optimizer/listp_truthy.yaml index a134efb9..b1557166 100644 --- a/tests/optimizer/listp_truthy.yaml +++ b/tests/optimizer/listp_truthy.yaml @@ -2,7 +2,7 @@ solution: (() () () ()) tests: - name: any_is_atom_truthy program: (a (i (l 2) (q 8) (q)) 1) - debug_program: (a (i (not (l 2)) (q) (q 8 (q . "assertion failed at 2:5"))) 1) + debug_program: (a (i (not (l 2)) (q) (q 8 (q . "assertion failed at listp_truthy.rue:2:5"))) 1) solution: (()) output: () runtime_cost: 321 @@ -10,7 +10,7 @@ tests: total_cost: 300321 - name: any_is_atom_exact program: (a (i (= (not (l 2)) (q . 1)) (q) (q 8)) 1) - debug_program: (a (i (= (not (l 2)) (q . 1)) (q) (q 8 (q . "assertion failed at 6:5"))) 1) + debug_program: (a (i (= (not (l 2)) (q . 1)) (q) (q 8 (q . "assertion failed at listp_truthy.rue:6:5"))) 1) solution: (()) output: () runtime_cost: 662 @@ -18,7 +18,7 @@ tests: total_cost: 444662 - name: list_is_nil_truthy program: (a (i 2 (q 8) (q)) 1) - debug_program: (a (i (not (l 2)) (q) (q 8 (q . "assertion failed at 10:5"))) 1) + debug_program: (a (i (not (l 2)) (q) (q 8 (q . "assertion failed at listp_truthy.rue:10:5"))) 1) solution: (()) output: () runtime_cost: 301 @@ -26,7 +26,7 @@ tests: total_cost: 252301 - name: list_is_atom_exact program: (a (i (= (not 2) (q . 1)) (q) (q 8)) 1) - debug_program: (a (i (= (not (l 2)) (q . 1)) (q) (q 8 (q . "assertion failed at 14:5"))) 1) + debug_program: (a (i (= (not (l 2)) (q . 1)) (q) (q 8 (q . "assertion failed at listp_truthy.rue:14:5"))) 1) solution: (()) output: () runtime_cost: 642 diff --git a/tests/std.yaml b/tests/std.yaml index 632faecf..342832a3 100644 --- a/tests/std.yaml +++ b/tests/std.yaml @@ -1,28 +1,28 @@ tests: - name: condition_type_guards program: (a (q 2 (q 2 (i (= (f (c (q . 1) ())) (q . 1)) (q 2 (i (= (f (c (q . 1) (q . 42))) (q . 1)) (q 2 (i (= (f (c (q . 43) (c 5 (c () ())))) (q . 43)) (q 2 (i (= (f (c (q . 44) (c 5 (c () ())))) (q . 44)) (q 2 (i (= (f (c (q . 45) (c 5 (c () ())))) (q . 45)) (q 2 (i (= (f (c (q . 46) (c 5 (c () ())))) (q . 46)) (q 2 (i (= (f (c (q . 47) (c 5 (c () ())))) (q . 47)) (q 2 (i (= (f (c (q . 48) (c 5 (c () ())))) (q . 48)) (q 2 (i (= (f (c (q . 49) (c 5 (c () ())))) (q . 49)) (q 2 (i (= (f (c (q . 50) (c 5 (c () ())))) (q . 50)) (q 2 (i (= (f (c (q . 51) (c 4 (c (q . 42) ())))) (q . 51)) (q 2 (i (= (f (c (q . 52) (c (q . 42) ()))) (q . 52)) (q 2 (i (= (f (c (q . 60) (c () ()))) (q . 60)) (q 2 (i (= (f (c (q . 61) (c 10 ()))) (q . 61)) (q 2 (i (= (f (c (q . 62) (c () ()))) (q . 62)) (q 2 (i (= (f (c (q . 63) (c 10 ()))) (q . 63)) (q 2 (i (= (f (c (q . 64) (c 14 ()))) (q . 64)) (q 2 (i (= (f (c (q . 65) (c 4 ()))) (q . 65)) (q 2 (i (= (f (c (q . 66) (c (q . 42) (c () (c (q . 42) ()))))) (q . 66)) (q 2 (i (= (f (c (q . 67) (c (q . 42) (c () (c (q . 42) ()))))) (q . 67)) (q 2 (i (= (f (c (q . 70) (c 14 ()))) (q . 70)) (q 2 (i (= (f (c (q . 71) (c 10 ()))) (q . 71)) (q 2 (i (= (f (c (q . 72) (c 4 ()))) (q . 72)) (q 2 (i (= (f (c (q . 73) (c (q . 42) ()))) (q . 73)) (q 2 (i (= (f (c (q . 74) (c (q . 42) ()))) (q . 74)) (q 2 (i (= (f (c (q . 75) (c (q . 42) ()))) (q . 75)) (q 2 (i (= (f (c (q . 76) ())) (q . 76)) (q 2 (i (= (f (c (q . 80) (c (q . 42) ()))) (q . 80)) (q 2 (i (= (f (c (q . 81) (c (q . 42) ()))) (q . 81)) (q 2 (i (= (f (c (q . 82) (c (q . 42) ()))) (q . 82)) (q 2 (i (= (f (c (q . 83) (c (q . 42) ()))) (q . 83)) (q 2 (i (= (f (c (q . 84) (c (q . 42) ()))) (q . 84)) (q 2 (i (= (f (c (q . 85) (c (q . 42) ()))) (q . 85)) (q 2 (i (= (f (c (q . 86) (c (q . 42) ()))) (q . 86)) (q 2 (i (= (f (c (q . 87) (c (q . 42) ()))) (q . 87)) (q 2 (i (= (f (c (q . 90) (c (q . 42) ()))) (q . 90)) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (c (c (sha256 (q . "puzzle_hash")) (c (sha256 (q . 26980)) (sha256 (q . "coin_id")))) 1)) (c (point_add) ())) - debug_program: (a (q 2 (q 2 (i (= (f (c (q . 1) ())) (q . 1)) (q 2 (i (= (f (c (q . 1) (q . 42))) (q . 1)) (q 2 (i (= (f (c (q . 43) (c 5 (c () ())))) (q . 43)) (q 2 (i (= (f (c (q . 44) (c 5 (c () ())))) (q . 44)) (q 2 (i (= (f (c (q . 45) (c 5 (c () ())))) (q . 45)) (q 2 (i (= (f (c (q . 46) (c 5 (c () ())))) (q . 46)) (q 2 (i (= (f (c (q . 47) (c 5 (c () ())))) (q . 47)) (q 2 (i (= (f (c (q . 48) (c 5 (c () ())))) (q . 48)) (q 2 (i (= (f (c (q . 49) (c 5 (c () ())))) (q . 49)) (q 2 (i (= (f (c (q . 50) (c 5 (c () ())))) (q . 50)) (q 2 (i (= (f (c (q . 51) (c 4 (c (q . 42) ())))) (q . 51)) (q 2 (i (= (f (c (q . 52) (c (q . 42) ()))) (q . 52)) (q 2 (i (= (f (c (q . 60) (c () ()))) (q . 60)) (q 2 (i (= (f (c (q . 61) (c 10 ()))) (q . 61)) (q 2 (i (= (f (c (q . 62) (c () ()))) (q . 62)) (q 2 (i (= (f (c (q . 63) (c 10 ()))) (q . 63)) (q 2 (i (= (f (c (q . 64) (c 14 ()))) (q . 64)) (q 2 (i (= (f (c (q . 65) (c 4 ()))) (q . 65)) (q 2 (i (= (f (c (q . 66) (c (q . 42) (c () (c (q . 42) ()))))) (q . 66)) (q 2 (i (= (f (c (q . 67) (c (q . 42) (c () (c (q . 42) ()))))) (q . 67)) (q 2 (i (= (f (c (q . 70) (c 14 ()))) (q . 70)) (q 2 (i (= (f (c (q . 71) (c 10 ()))) (q . 71)) (q 2 (i (= (f (c (q . 72) (c 4 ()))) (q . 72)) (q 2 (i (= (f (c (q . 73) (c (q . 42) ()))) (q . 73)) (q 2 (i (= (f (c (q . 74) (c (q . 42) ()))) (q . 74)) (q 2 (i (= (f (c (q . 75) (c (q . 42) ()))) (q . 75)) (q 2 (i (= (f (c (q . 76) ())) (q . 76)) (q 2 (i (= (f (c (q . 80) (c (q . 42) ()))) (q . 80)) (q 2 (i (= (f (c (q . 81) (c (q . 42) ()))) (q . 81)) (q 2 (i (= (f (c (q . 82) (c (q . 42) ()))) (q . 82)) (q 2 (i (= (f (c (q . 83) (c (q . 42) ()))) (q . 83)) (q 2 (i (= (f (c (q . 84) (c (q . 42) ()))) (q . 84)) (q 2 (i (= (f (c (q . 85) (c (q . 42) ()))) (q . 85)) (q 2 (i (= (f (c (q . 86) (c (q . 42) ()))) (q . 86)) (q 2 (i (= (f (c (q . 87) (c (q . 42) ()))) (q . 87)) (q 2 (i (= (f (c (q . 90) (c (q . 42) ()))) (q . 90)) (q) (q 8 (q . "assertion failed at 41:5"))) 1) (q 8 (q . "assertion failed at 40:5"))) 1) (q 8 (q . "assertion failed at 39:5"))) 1) (q 8 (q . "assertion failed at 38:5"))) 1) (q 8 (q . "assertion failed at 37:5"))) 1) (q 8 (q . "assertion failed at 36:5"))) 1) (q 8 (q . "assertion failed at 35:5"))) 1) (q 8 (q . "assertion failed at 34:5"))) 1) (q 8 (q . "assertion failed at 33:5"))) 1) (q 8 (q . "assertion failed at 32:5"))) 1) (q 8 (q . "assertion failed at 31:5"))) 1) (q 8 (q . "assertion failed at 30:5"))) 1) (q 8 (q . "assertion failed at 29:5"))) 1) (q 8 (q . "assertion failed at 28:5"))) 1) (q 8 (q . "assertion failed at 27:5"))) 1) (q 8 (q . "assertion failed at 26:5"))) 1) (q 8 (q . "assertion failed at 25:5"))) 1) (q 8 (q . "assertion failed at 24:5"))) 1) (q 8 (q . "assertion failed at 23:5"))) 1) (q 8 (q . "assertion failed at 22:5"))) 1) (q 8 (q . "assertion failed at 21:5"))) 1) (q 8 (q . "assertion failed at 20:5"))) 1) (q 8 (q . "assertion failed at 19:5"))) 1) (q 8 (q . "assertion failed at 18:5"))) 1) (q 8 (q . "assertion failed at 17:5"))) 1) (q 8 (q . "assertion failed at 16:5"))) 1) (q 8 (q . "assertion failed at 15:5"))) 1) (q 8 (q . "assertion failed at 14:5"))) 1) (q 8 (q . "assertion failed at 13:5"))) 1) (q 8 (q . "assertion failed at 12:5"))) 1) (q 8 (q . "assertion failed at 11:5"))) 1) (q 8 (q . "assertion failed at 10:5"))) 1) (q 8 (q . "assertion failed at 9:5"))) 1) (q 8 (q . "assertion failed at 8:5"))) 1) (q 8 (q . "assertion failed at 7:5"))) 1) (q 8 (q . "assertion failed at 6:5"))) 1) (c (c (sha256 (q . "puzzle_hash")) (c (sha256 (q . 26980)) (sha256 (q . "coin_id")))) 1)) (c (point_add) ())) + debug_program: (a (q 2 (q 2 (i (= (f (c (q . 1) ())) (q . 1)) (q 2 (i (= (f (c (q . 1) (q . 42))) (q . 1)) (q 2 (i (= (f (c (q . 43) (c 5 (c () ())))) (q . 43)) (q 2 (i (= (f (c (q . 44) (c 5 (c () ())))) (q . 44)) (q 2 (i (= (f (c (q . 45) (c 5 (c () ())))) (q . 45)) (q 2 (i (= (f (c (q . 46) (c 5 (c () ())))) (q . 46)) (q 2 (i (= (f (c (q . 47) (c 5 (c () ())))) (q . 47)) (q 2 (i (= (f (c (q . 48) (c 5 (c () ())))) (q . 48)) (q 2 (i (= (f (c (q . 49) (c 5 (c () ())))) (q . 49)) (q 2 (i (= (f (c (q . 50) (c 5 (c () ())))) (q . 50)) (q 2 (i (= (f (c (q . 51) (c 4 (c (q . 42) ())))) (q . 51)) (q 2 (i (= (f (c (q . 52) (c (q . 42) ()))) (q . 52)) (q 2 (i (= (f (c (q . 60) (c () ()))) (q . 60)) (q 2 (i (= (f (c (q . 61) (c 10 ()))) (q . 61)) (q 2 (i (= (f (c (q . 62) (c () ()))) (q . 62)) (q 2 (i (= (f (c (q . 63) (c 10 ()))) (q . 63)) (q 2 (i (= (f (c (q . 64) (c 14 ()))) (q . 64)) (q 2 (i (= (f (c (q . 65) (c 4 ()))) (q . 65)) (q 2 (i (= (f (c (q . 66) (c (q . 42) (c () (c (q . 42) ()))))) (q . 66)) (q 2 (i (= (f (c (q . 67) (c (q . 42) (c () (c (q . 42) ()))))) (q . 67)) (q 2 (i (= (f (c (q . 70) (c 14 ()))) (q . 70)) (q 2 (i (= (f (c (q . 71) (c 10 ()))) (q . 71)) (q 2 (i (= (f (c (q . 72) (c 4 ()))) (q . 72)) (q 2 (i (= (f (c (q . 73) (c (q . 42) ()))) (q . 73)) (q 2 (i (= (f (c (q . 74) (c (q . 42) ()))) (q . 74)) (q 2 (i (= (f (c (q . 75) (c (q . 42) ()))) (q . 75)) (q 2 (i (= (f (c (q . 76) ())) (q . 76)) (q 2 (i (= (f (c (q . 80) (c (q . 42) ()))) (q . 80)) (q 2 (i (= (f (c (q . 81) (c (q . 42) ()))) (q . 81)) (q 2 (i (= (f (c (q . 82) (c (q . 42) ()))) (q . 82)) (q 2 (i (= (f (c (q . 83) (c (q . 42) ()))) (q . 83)) (q 2 (i (= (f (c (q . 84) (c (q . 42) ()))) (q . 84)) (q 2 (i (= (f (c (q . 85) (c (q . 42) ()))) (q . 85)) (q 2 (i (= (f (c (q . 86) (c (q . 42) ()))) (q . 86)) (q 2 (i (= (f (c (q . 87) (c (q . 42) ()))) (q . 87)) (q 2 (i (= (f (c (q . 90) (c (q . 42) ()))) (q . 90)) (q) (q 8 (q . "assertion failed at std.rue:41:5"))) 1) (q 8 (q . "assertion failed at std.rue:40:5"))) 1) (q 8 (q . "assertion failed at std.rue:39:5"))) 1) (q 8 (q . "assertion failed at std.rue:38:5"))) 1) (q 8 (q . "assertion failed at std.rue:37:5"))) 1) (q 8 (q . "assertion failed at std.rue:36:5"))) 1) (q 8 (q . "assertion failed at std.rue:35:5"))) 1) (q 8 (q . "assertion failed at std.rue:34:5"))) 1) (q 8 (q . "assertion failed at std.rue:33:5"))) 1) (q 8 (q . "assertion failed at std.rue:32:5"))) 1) (q 8 (q . "assertion failed at std.rue:31:5"))) 1) (q 8 (q . "assertion failed at std.rue:30:5"))) 1) (q 8 (q . "assertion failed at std.rue:29:5"))) 1) (q 8 (q . "assertion failed at std.rue:28:5"))) 1) (q 8 (q . "assertion failed at std.rue:27:5"))) 1) (q 8 (q . "assertion failed at std.rue:26:5"))) 1) (q 8 (q . "assertion failed at std.rue:25:5"))) 1) (q 8 (q . "assertion failed at std.rue:24:5"))) 1) (q 8 (q . "assertion failed at std.rue:23:5"))) 1) (q 8 (q . "assertion failed at std.rue:22:5"))) 1) (q 8 (q . "assertion failed at std.rue:21:5"))) 1) (q 8 (q . "assertion failed at std.rue:20:5"))) 1) (q 8 (q . "assertion failed at std.rue:19:5"))) 1) (q 8 (q . "assertion failed at std.rue:18:5"))) 1) (q 8 (q . "assertion failed at std.rue:17:5"))) 1) (q 8 (q . "assertion failed at std.rue:16:5"))) 1) (q 8 (q . "assertion failed at std.rue:15:5"))) 1) (q 8 (q . "assertion failed at std.rue:14:5"))) 1) (q 8 (q . "assertion failed at std.rue:13:5"))) 1) (q 8 (q . "assertion failed at std.rue:12:5"))) 1) (q 8 (q . "assertion failed at std.rue:11:5"))) 1) (q 8 (q . "assertion failed at std.rue:10:5"))) 1) (q 8 (q . "assertion failed at std.rue:9:5"))) 1) (q 8 (q . "assertion failed at std.rue:8:5"))) 1) (q 8 (q . "assertion failed at std.rue:7:5"))) 1) (q 8 (q . "assertion failed at std.rue:6:5"))) 1) (c (c (sha256 (q . "puzzle_hash")) (c (sha256 (q . 26980)) (sha256 (q . "coin_id")))) 1)) (c (point_add) ())) output: () runtime_cost: 125741 byte_cost: 22020000 total_cost: 22145741 - name: hashing program: (a (q 2 (i (= (a 2 (c 2 (q . "hello"))) (q . 0xcceeb7a985ecc3dabcb4c8f666cd637f16f008e3c963db6aa6f83a7b288c54ef)) (q 2 (i (= (a 2 (c 2 (q . "hello"))) (sha256 (q . 0x0168656c6c6f))) (q 2 (i (= (sha256 (q . 0x0168656c6c6f)) (sha256 (q . 0x0168656c6c6f))) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (c (q 2 (i (l 3) (q 11 (q . 2) (a 2 (c 2 5)) (a 2 (c 2 7))) (q 11 (q . 1) 3)) 1) ())) - debug_program: (a (q 2 (i (= (a 2 (c 2 (q . "hello"))) (q . 0xcceeb7a985ecc3dabcb4c8f666cd637f16f008e3c963db6aa6f83a7b288c54ef)) (q 2 (i (= (a 2 (c 2 (q . "hello"))) (sha256 (concat (q . 1) (q . "hello")))) (q 2 (i (= (sha256 (concat (q . 1) (q . "hello"))) (sha256 (concat (q . 1) (q . "hello")))) (q) (q 8 (q . "assertion failed at 47:5"))) 1) (q 8 (q . "assertion failed at 46:5"))) 1) (q 8 (q . "assertion failed at 45:5"))) 1) (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) ())) + debug_program: (a (q 2 (i (= (a 2 (c 2 (q . "hello"))) (q . 0xcceeb7a985ecc3dabcb4c8f666cd637f16f008e3c963db6aa6f83a7b288c54ef)) (q 2 (i (= (a 2 (c 2 (q . "hello"))) (sha256 (concat (q . 1) (q . "hello")))) (q 2 (i (= (sha256 (concat (q . 1) (q . "hello"))) (sha256 (concat (q . 1) (q . "hello")))) (q) (q 8 (q . "assertion failed at std.rue:47:5"))) 1) (q 8 (q . "assertion failed at std.rue:46:5"))) 1) (q 8 (q . "assertion failed at std.rue:45:5"))) 1) (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) ())) output: () runtime_cost: 5767 byte_cost: 3204000 total_cost: 3209767 - name: currying program: (a (q 2 (i (= (sha256 (q . 2) (sha256 (q . 258)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) (a 4 (c 4 (q . "xyz")))) (sha256 (q . 2) (a 6 (c 6 (c (a 4 (c 4 (q . 97))) (c (a 4 (c 4 (q . 98))) (c (a 4 (c 4 (q . 99))) ()))))) (sha256 (q . 1))))) (q . 0x932daac5826a521478ec3dc75c49f889278bc56bf6afa45cdfa3aadffe2e76ed)) (q) (q 8)) 1) (c (c (q 2 (i (l 3) (q 11 (q . 2) (a 2 (c 2 5)) (a 2 (c 2 7))) (q 11 (q . 1) 3)) 1) (q 2 (i 3 (q 11 (q . 2) (sha256 (q . 260)) (sha256 (q . 2) (sha256 (q . 2) (sha256 (q . 257)) 5) (sha256 (q . 2) (a 2 (c 2 7)) (sha256 (q . 1))))) (q 11 (q . 257))) 1)) ())) - debug_program: (a (q 2 (q 2 (i (= 2 (q . 0x932daac5826a521478ec3dc75c49f889278bc56bf6afa45cdfa3aadffe2e76ed)) (q) (q 8 (q . "assertion failed at 52:5"))) 1) (c (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (a 4 (c 4 (q . "xyz")))))) (sha256 (concat (concat (q . 2) (a 6 (c 6 (c (a 4 (c 4 (q . 97))) (c (a 4 (c 4 (q . 98))) (c (a 4 (c 4 (q . 99))) ())))))) (sha256 (concat (q . 1) ())))))))) 1)) (c (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (q 2 (i (not (l 3)) (q 11 (concat (q . 1) (q . 1))) (q 11 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 4)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 3)))) (sha256 (concat (concat (q . 2) (a 2 (c 2 (r 3)))) (sha256 (concat (q . 1) ()))))))))) 1)) ())) + debug_program: (a (q 2 (q 2 (i (= 2 (q . 0x932daac5826a521478ec3dc75c49f889278bc56bf6afa45cdfa3aadffe2e76ed)) (q) (q 8 (q . "assertion failed at std.rue:52:5"))) 1) (c (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 2)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (a 4 (c 4 (q . "xyz")))))) (sha256 (concat (concat (q . 2) (a 6 (c 6 (c (a 4 (c 4 (q . 97))) (c (a 4 (c 4 (q . 98))) (c (a 4 (c 4 (q . 99))) ())))))) (sha256 (concat (q . 1) ())))))))) 1)) (c (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (q 2 (i (not (l 3)) (q 11 (concat (q . 1) (q . 1))) (q 11 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 4)))) (sha256 (concat (concat (q . 2) (sha256 (concat (concat (q . 2) (sha256 (concat (q . 1) (q . 1)))) (f 3)))) (sha256 (concat (concat (q . 2) (a 2 (c 2 (r 3)))) (sha256 (concat (q . 1) ()))))))))) 1)) ())) output: () runtime_cost: 31127 byte_cost: 4800000 total_cost: 4831127 - name: recursion program: (a (q 2 10 (c 10 (c 4 (c 14 (c (c () (c (q . "Hello, world!") (c (c (q . 100) (q . 200)) (c (c (q . 1) (c (q . 2) (c (q . 3) ()))) (c (q 16 2 5) (c (c (q . 2) (c (c (q . 1) 10) (c (c (q . 4) (c (c (q . 1) 10) (c (c (q . 4) (c (c (q . 1) 4) (c (c (q . 4) (c (c (q . 1) 14) (c (q . 1) ()))) ()))) ()))) ()))) ())))))) ()))))) (c (c (q 2 (i (l 3) (q 11 (q . 2) (a 2 (c 2 5)) (a 2 (c 2 7))) (q 11 (q . 1) 3)) 1) (c (q 2 (i 23 (q 2 (q 2 (i (a 23 (c 23 (c 4 4))) (q 2 (i (= (a 11 (c 11 4)) (a 11 (c 11 4))) (q 2 5 (c 5 (c 11 (c 23 (c 6 ()))))) (q 8)) 1) (q 8)) 1) (c 23 1)) (q)) 1) (q 2 (i (l 7) (q 2 (i (l 5) (q 2 (i (a 2 (c 2 (c 9 11))) (q 2 (i (a 2 (c 2 (c 13 15))) (q 1 . 1) (q)) 1) (q)) 1) (q)) 1) (q 2 (i (l 5) (q) (q 9 7 5)) 1)) 1))) ())) - debug_program: (a (q 3 (q . 1) () (a 10 (c 10 (c 4 (c 14 (c (c () (c (q . "Hello, world!") (c (c (q . 100) (q . 200)) (c (c (q . 1) (c (q . 2) (c (q . 3) ()))) (c (c (q . 2) (c (c (q . 1) (q 16 2 5)) (c (q . 1) ()))) (c (c (q . 2) (c (c (q . 1) 10) (c (c (q . 4) (c (c (q . 1) 10) (c (c (q . 4) (c (c (q . 1) 4) (c (c (q . 4) (c (c (q . 1) 14) (c (q . 1) ()))) ()))) ()))) ()))) ())))))) ())))))) (c (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (c (q 2 (i (not (l 23)) (q) (q 2 (q 2 (i (a 23 (c 23 (c (f 2) (f 2)))) (q 2 (i (= (a 11 (c 11 (f 2))) (a 11 (c 11 (f 2)))) (q 3 (q . 1) () (a 5 (c 5 (c 11 (c 23 (c (r 2) ())))))) (q 8 (q . "assertion failed at 74:5"))) 1) (q 8 (q . "assertion failed at 73:5"))) 1) (c 23 1))) 1) (q 2 (i (not (l 7)) (q 2 (i (not (l 5)) (q 9 7 5) (q)) 1) (q 2 (i (not (l 5)) (q) (q 2 (i (a 2 (c 2 (c (f 5) (f 7)))) (q 2 (i (a 2 (c 2 (c (r 5) (r 7)))) (q 1 . 1) (q)) 1) (q)) 1)) 1)) 1))) ())) + debug_program: (a (q 3 (q . 1) () (a 10 (c 10 (c 4 (c 14 (c (c () (c (q . "Hello, world!") (c (c (q . 100) (q . 200)) (c (c (q . 1) (c (q . 2) (c (q . 3) ()))) (c (c (q . 2) (c (c (q . 1) (q 16 2 5)) (c (q . 1) ()))) (c (c (q . 2) (c (c (q . 1) 10) (c (c (q . 4) (c (c (q . 1) 10) (c (c (q . 4) (c (c (q . 1) 4) (c (c (q . 4) (c (c (q . 1) 14) (c (q . 1) ()))) ()))) ()))) ()))) ())))))) ())))))) (c (c (q 2 (i (not (l 3)) (q 11 (concat (q . 1) 3)) (q 11 (concat (concat (q . 2) (a 2 (c 2 (f 3)))) (a 2 (c 2 (r 3)))))) 1) (c (q 2 (i (not (l 23)) (q) (q 2 (q 2 (i (a 23 (c 23 (c (f 2) (f 2)))) (q 2 (i (= (a 11 (c 11 (f 2))) (a 11 (c 11 (f 2)))) (q 3 (q . 1) () (a 5 (c 5 (c 11 (c 23 (c (r 2) ())))))) (q 8 (q . "assertion failed at std.rue:74:5"))) 1) (q 8 (q . "assertion failed at std.rue:73:5"))) 1) (c 23 1))) 1) (q 2 (i (not (l 7)) (q 2 (i (not (l 5)) (q 9 7 5) (q)) 1) (q 2 (i (not (l 5)) (q) (q 2 (i (a 2 (c 2 (c (f 5) (f 7)))) (q 2 (i (a 2 (c 2 (c (r 5) (r 7)))) (q 1 . 1) (q)) 1) (q)) 1)) 1)) 1))) ())) output: () runtime_cost: 2336234 byte_cost: 7584000 diff --git a/tests/stress/many_params_binary_tree.yaml b/tests/stress/many_params_binary_tree.yaml index 10c18b14..69b01049 100644 --- a/tests/stress/many_params_binary_tree.yaml +++ b/tests/stress/many_params_binary_tree.yaml @@ -1,7 +1,7 @@ tests: - name: call_binary_tree program: (a (i (> (q . 351) ()) (q 2 (i (> (q . 1027) ()) (q 2 (i (> (q . 1703) ()) (q 2 (i (> (q . 2379) ()) (q 2 (i (> (q . 3055) ()) (q 2 (i (> (q . 3731) ()) (q 2 (i (> (q . 4407) ()) (q 2 (i (> (q . 5083) ()) (q 2 (i (> (q . 5759) ()) (q 2 (i (> (q . 6435) ()) (q) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1) - debug_program: (a (q 3 (q . 1) () (a 2 (c (c (c (c (c (c (c (c (q . 1) (q . 2)) (c (q . 3) (q . 4))) (c (c (q . 5) (q . 6)) (c (q . 7) (q . 8)))) (c (c (c (q . 9) (q . 10)) (c (q . 11) (q . 12))) (c (c (q . 13) (q . 14)) (c (q . 15) (q . 16))))) (c (c (c (c (q . 17) (q . 18)) (c (q . 19) (q . 20))) (c (c (q . 21) (q . 22)) (c (q . 23) (q . 24)))) (c (c (c (q . 25) (q . 26)) (c (q . 27) (q . 28))) (c (c (q . 29) (q . 30)) (c (q . 31) (q . 32)))))) (c (c (c (c (c (q . 33) (q . 34)) (c (q . 35) (q . 36))) (c (c (q . 37) (q . 38)) (c (q . 39) (q . 40)))) (c (c (c (q . 41) (q . 42)) (c (q . 43) (q . 44))) (c (c (q . 45) (q . 46)) (c (q . 47) (q . 48))))) (c (c (c (c (q . 49) (q . 50)) (c (q . 51) (q . 52))) (c (c (q . 53) (q . 54)) (c (q . 55) (q . 56)))) (c (c (c (q . 57) (q . 58)) (c (q . 59) (q . 60))) (c (c (q . 61) (q . 62)) (c (q . 63) (c (q . 64) (q . 65)))))))) (c (c (c (c (c (c (q . 66) (q . 67)) (c (q . 68) (q . 69))) (c (c (q . 70) (q . 71)) (c (q . 72) (q . 73)))) (c (c (c (q . 74) (q . 75)) (c (q . 76) (q . 77))) (c (c (q . 78) (q . 79)) (c (q . 80) (q . 81))))) (c (c (c (c (q . 82) (q . 83)) (c (q . 84) (q . 85))) (c (c (q . 86) (q . 87)) (c (q . 88) (q . 89)))) (c (c (c (q . 90) (q . 91)) (c (q . 92) (q . 93))) (c (c (q . 94) (q . 95)) (c (q . 96) (q . 97)))))) (c (c (c (c (c (q . 98) (q . 99)) (c (q . 100) (q . 101))) (c (c (q . 102) (q . 103)) (c (q . 104) (q . 105)))) (c (c (c (q . 106) (q . 107)) (c (q . 108) (q . 109))) (c (c (q . 110) (q . 111)) (c (q . 112) (q . 113))))) (c (c (c (c (q . 114) (q . 115)) (c (q . 116) (q . 117))) (c (c (q . 118) (q . 119)) (c (q . 120) (q . 121)))) (c (c (c (q . 122) (q . 123)) (c (q . 124) (q . 125))) (c (c (q . 126) (q . 127)) (c (q . 128) (c (q . 129) (q . 130))))))))) (c (c (c (c (c (c (c (q . 131) (q . 132)) (c (q . 133) (q . 134))) (c (c (q . 135) (q . 136)) (c (q . 137) (q . 138)))) (c (c (c (q . 139) (q . 140)) (c (q . 141) (q . 142))) (c (c (q . 143) (q . 144)) (c (q . 145) (q . 146))))) (c (c (c (c (q . 147) (q . 148)) (c (q . 149) (q . 150))) (c (c (q . 151) (q . 152)) (c (q . 153) (q . 154)))) (c (c (c (q . 155) (q . 156)) (c (q . 157) (q . 158))) (c (c (q . 159) (q . 160)) (c (q . 161) (q . 162)))))) (c (c (c (c (c (q . 163) (q . 164)) (c (q . 165) (q . 166))) (c (c (q . 167) (q . 168)) (c (q . 169) (q . 170)))) (c (c (c (q . 171) (q . 172)) (c (q . 173) (q . 174))) (c (c (q . 175) (q . 176)) (c (q . 177) (q . 178))))) (c (c (c (c (q . 179) (q . 180)) (c (q . 181) (q . 182))) (c (c (q . 183) (q . 184)) (c (q . 185) (q . 186)))) (c (c (c (q . 187) (q . 188)) (c (q . 189) (q . 190))) (c (c (q . 191) (q . 192)) (c (q . 193) (c (q . 194) (q . 195)))))))) (c (c (c (c (c (c (q . 196) (q . 197)) (c (q . 198) (q . 199))) (c (c (q . 200) (q . 201)) (c (q . 202) (q . 203)))) (c (c (c (q . 204) (q . 205)) (c (q . 206) (q . 207))) (c (c (q . 208) (q . 209)) (c (q . 210) (q . 211))))) (c (c (c (c (q . 212) (q . 213)) (c (q . 214) (q . 215))) (c (c (q . 216) (q . 217)) (c (q . 218) (q . 219)))) (c (c (c (q . 220) (q . 221)) (c (q . 222) (q . 223))) (c (c (q . 224) (q . 225)) (c (q . 226) (q . 227)))))) (c (c (c (c (c (q . 228) (q . 229)) (c (q . 230) (q . 231))) (c (c (q . 232) (q . 233)) (c (q . 234) (q . 235)))) (c (c (c (q . 236) (q . 237)) (c (q . 238) (q . 239))) (c (c (q . 240) (q . 241)) (c (q . 242) (q . 243))))) (c (c (c (c (q . 244) (q . 245)) (c (q . 246) (q . 247))) (c (c (q . 248) (q . 249)) (c (q . 250) (q . 251)))) (c (c (c (q . 252) (q . 253)) (c (q . 254) (q . 255))) (c (c (q . 256) (q . 257)) (c (q . 258) (c (q . 259) (q . 260)))))))))))) (c (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 256 384) 320) 448) 288) 416) 352) 480) 272) 400) 336) 464) 304) 432) 368) 496) 264) 392) 328) 456) 296) 424) 360) 488) 280) 408) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 344 472) 312) 440) 376) 504) 260) 388) 324) 452) 292) 420) 356) 484) 276) 404) 340) 468) 308) 436) 372) 500) 268) 396) 332) 460) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 300 428) 364) 492) 284) 412) 348) 476) 316) 444) 380) 764) 1020) 258) 386) 322) 450) 290) 418) 354) 482) 274) 402) 338) 466) 306) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 434 370) 498) 266) 394) 330) 458) 298) 426) 362) 490) 282) 410) 346) 474) 314) 442) 378) 506) 262) 390) 326) 454) 294) 422) 358) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 486 278) 406) 342) 470) 310) 438) 374) 502) 270) 398) 334) 462) 302) 430) 366) 494) 286) 414) 350) 478) 318) 446) 382) 766) 1022) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 257 385) 321) 449) 289) 417) 353) 481) 273) 401) 337) 465) 305) 433) 369) 497) 265) 393) 329) 457) 297) 425) 361) 489) 281) 409) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 345 473) 313) 441) 377) 505) 261) 389) 325) 453) 293) 421) 357) 485) 277) 405) 341) 469) 309) 437) 373) 501) 269) 397) 333) 461) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 301 429) 365) 493) 285) 413) 349) 477) 317) 445) 381) 765) 1021) 259) 387) 323) 451) 291) 419) 355) 483) 275) 403) 339) 467) 307) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 435 371) 499) 267) 395) 331) 459) 299) 427) 363) 491) 283) 411) 347) 475) 315) 443) 379) 507) 263) 391) 327) 455) 295) 423) 359) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 487 279) 407) 343) 471) 311) 439) 375) 503) 271) 399) 335) 463) 303) 431) 367) 495) 287) 415) 351) 479) 319) 447) 383) 767) 1023) ()) (q) (q 8 (q . "assertion failed at 276:5"))) 1) (q 8 (q . "assertion failed at 275:5"))) 1) (q 8 (q . "assertion failed at 274:5"))) 1) (q 8 (q . "assertion failed at 273:5"))) 1) (q 8 (q . "assertion failed at 272:5"))) 1) (q 8 (q . "assertion failed at 271:5"))) 1) (q 8 (q . "assertion failed at 270:5"))) 1) (q 8 (q . "assertion failed at 269:5"))) 1) (q 8 (q . "assertion failed at 268:5"))) 1) (q 8 (q . "assertion failed at 267:5"))) 1) ())) + debug_program: (a (q 3 (q . 1) () (a 2 (c (c (c (c (c (c (c (c (q . 1) (q . 2)) (c (q . 3) (q . 4))) (c (c (q . 5) (q . 6)) (c (q . 7) (q . 8)))) (c (c (c (q . 9) (q . 10)) (c (q . 11) (q . 12))) (c (c (q . 13) (q . 14)) (c (q . 15) (q . 16))))) (c (c (c (c (q . 17) (q . 18)) (c (q . 19) (q . 20))) (c (c (q . 21) (q . 22)) (c (q . 23) (q . 24)))) (c (c (c (q . 25) (q . 26)) (c (q . 27) (q . 28))) (c (c (q . 29) (q . 30)) (c (q . 31) (q . 32)))))) (c (c (c (c (c (q . 33) (q . 34)) (c (q . 35) (q . 36))) (c (c (q . 37) (q . 38)) (c (q . 39) (q . 40)))) (c (c (c (q . 41) (q . 42)) (c (q . 43) (q . 44))) (c (c (q . 45) (q . 46)) (c (q . 47) (q . 48))))) (c (c (c (c (q . 49) (q . 50)) (c (q . 51) (q . 52))) (c (c (q . 53) (q . 54)) (c (q . 55) (q . 56)))) (c (c (c (q . 57) (q . 58)) (c (q . 59) (q . 60))) (c (c (q . 61) (q . 62)) (c (q . 63) (c (q . 64) (q . 65)))))))) (c (c (c (c (c (c (q . 66) (q . 67)) (c (q . 68) (q . 69))) (c (c (q . 70) (q . 71)) (c (q . 72) (q . 73)))) (c (c (c (q . 74) (q . 75)) (c (q . 76) (q . 77))) (c (c (q . 78) (q . 79)) (c (q . 80) (q . 81))))) (c (c (c (c (q . 82) (q . 83)) (c (q . 84) (q . 85))) (c (c (q . 86) (q . 87)) (c (q . 88) (q . 89)))) (c (c (c (q . 90) (q . 91)) (c (q . 92) (q . 93))) (c (c (q . 94) (q . 95)) (c (q . 96) (q . 97)))))) (c (c (c (c (c (q . 98) (q . 99)) (c (q . 100) (q . 101))) (c (c (q . 102) (q . 103)) (c (q . 104) (q . 105)))) (c (c (c (q . 106) (q . 107)) (c (q . 108) (q . 109))) (c (c (q . 110) (q . 111)) (c (q . 112) (q . 113))))) (c (c (c (c (q . 114) (q . 115)) (c (q . 116) (q . 117))) (c (c (q . 118) (q . 119)) (c (q . 120) (q . 121)))) (c (c (c (q . 122) (q . 123)) (c (q . 124) (q . 125))) (c (c (q . 126) (q . 127)) (c (q . 128) (c (q . 129) (q . 130))))))))) (c (c (c (c (c (c (c (q . 131) (q . 132)) (c (q . 133) (q . 134))) (c (c (q . 135) (q . 136)) (c (q . 137) (q . 138)))) (c (c (c (q . 139) (q . 140)) (c (q . 141) (q . 142))) (c (c (q . 143) (q . 144)) (c (q . 145) (q . 146))))) (c (c (c (c (q . 147) (q . 148)) (c (q . 149) (q . 150))) (c (c (q . 151) (q . 152)) (c (q . 153) (q . 154)))) (c (c (c (q . 155) (q . 156)) (c (q . 157) (q . 158))) (c (c (q . 159) (q . 160)) (c (q . 161) (q . 162)))))) (c (c (c (c (c (q . 163) (q . 164)) (c (q . 165) (q . 166))) (c (c (q . 167) (q . 168)) (c (q . 169) (q . 170)))) (c (c (c (q . 171) (q . 172)) (c (q . 173) (q . 174))) (c (c (q . 175) (q . 176)) (c (q . 177) (q . 178))))) (c (c (c (c (q . 179) (q . 180)) (c (q . 181) (q . 182))) (c (c (q . 183) (q . 184)) (c (q . 185) (q . 186)))) (c (c (c (q . 187) (q . 188)) (c (q . 189) (q . 190))) (c (c (q . 191) (q . 192)) (c (q . 193) (c (q . 194) (q . 195)))))))) (c (c (c (c (c (c (q . 196) (q . 197)) (c (q . 198) (q . 199))) (c (c (q . 200) (q . 201)) (c (q . 202) (q . 203)))) (c (c (c (q . 204) (q . 205)) (c (q . 206) (q . 207))) (c (c (q . 208) (q . 209)) (c (q . 210) (q . 211))))) (c (c (c (c (q . 212) (q . 213)) (c (q . 214) (q . 215))) (c (c (q . 216) (q . 217)) (c (q . 218) (q . 219)))) (c (c (c (q . 220) (q . 221)) (c (q . 222) (q . 223))) (c (c (q . 224) (q . 225)) (c (q . 226) (q . 227)))))) (c (c (c (c (c (q . 228) (q . 229)) (c (q . 230) (q . 231))) (c (c (q . 232) (q . 233)) (c (q . 234) (q . 235)))) (c (c (c (q . 236) (q . 237)) (c (q . 238) (q . 239))) (c (c (q . 240) (q . 241)) (c (q . 242) (q . 243))))) (c (c (c (c (q . 244) (q . 245)) (c (q . 246) (q . 247))) (c (c (q . 248) (q . 249)) (c (q . 250) (q . 251)))) (c (c (c (q . 252) (q . 253)) (c (q . 254) (q . 255))) (c (c (q . 256) (q . 257)) (c (q . 258) (c (q . 259) (q . 260)))))))))))) (c (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 256 384) 320) 448) 288) 416) 352) 480) 272) 400) 336) 464) 304) 432) 368) 496) 264) 392) 328) 456) 296) 424) 360) 488) 280) 408) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 344 472) 312) 440) 376) 504) 260) 388) 324) 452) 292) 420) 356) 484) 276) 404) 340) 468) 308) 436) 372) 500) 268) 396) 332) 460) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 300 428) 364) 492) 284) 412) 348) 476) 316) 444) 380) 764) 1020) 258) 386) 322) 450) 290) 418) 354) 482) 274) 402) 338) 466) 306) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 434 370) 498) 266) 394) 330) 458) 298) 426) 362) 490) 282) 410) 346) 474) 314) 442) 378) 506) 262) 390) 326) 454) 294) 422) 358) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 486 278) 406) 342) 470) 310) 438) 374) 502) 270) 398) 334) 462) 302) 430) 366) 494) 286) 414) 350) 478) 318) 446) 382) 766) 1022) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 257 385) 321) 449) 289) 417) 353) 481) 273) 401) 337) 465) 305) 433) 369) 497) 265) 393) 329) 457) 297) 425) 361) 489) 281) 409) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 345 473) 313) 441) 377) 505) 261) 389) 325) 453) 293) 421) 357) 485) 277) 405) 341) 469) 309) 437) 373) 501) 269) 397) 333) 461) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 301 429) 365) 493) 285) 413) 349) 477) 317) 445) 381) 765) 1021) 259) 387) 323) 451) 291) 419) 355) 483) 275) 403) 339) 467) 307) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 435 371) 499) 267) 395) 331) 459) 299) 427) 363) 491) 283) 411) 347) 475) 315) 443) 379) 507) 263) 391) 327) 455) 295) 423) 359) ()) (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 487 279) 407) 343) 471) 311) 439) 375) 503) 271) 399) 335) 463) 303) 431) 367) 495) 287) 415) 351) 479) 319) 447) 383) 767) 1023) ()) (q) (q 8 (q . "assertion failed at many_params_binary_tree.rue:276:5"))) 1) (q 8 (q . "assertion failed at many_params_binary_tree.rue:275:5"))) 1) (q 8 (q . "assertion failed at many_params_binary_tree.rue:274:5"))) 1) (q 8 (q . "assertion failed at many_params_binary_tree.rue:273:5"))) 1) (q 8 (q . "assertion failed at many_params_binary_tree.rue:272:5"))) 1) (q 8 (q . "assertion failed at many_params_binary_tree.rue:271:5"))) 1) (q 8 (q . "assertion failed at many_params_binary_tree.rue:270:5"))) 1) (q 8 (q . "assertion failed at many_params_binary_tree.rue:269:5"))) 1) (q 8 (q . "assertion failed at many_params_binary_tree.rue:268:5"))) 1) (q 8 (q . "assertion failed at many_params_binary_tree.rue:267:5"))) 1) ())) output: () runtime_cost: 7804 byte_cost: 3612000 diff --git a/tests/stress/many_params_non_overflow.yaml b/tests/stress/many_params_non_overflow.yaml index 9b245c98..43e85ea1 100644 --- a/tests/stress/many_params_non_overflow.yaml +++ b/tests/stress/many_params_non_overflow.yaml @@ -1,22 +1,22 @@ tests: - name: closure program: (q 2 (i (> (+ 2 5 11 23 47 95 -65 383 767 1535 3071 6143 12287 24575 -16385 0x017fff 0x02ffff 0x05ffff 0x0bffff 0x17ffff 0x2fffff 0x5fffff 0xbfffff 0x017fffff 0x02ffffff 0x05ffffff) ()) (q) (q 8)) 1) - debug_program: (a (q 4 (q . 2) (c (c (q . 1) 2) (c (q . 1) ()))) (c (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 2 5) 11) 23) 47) 95) -65) 383) 767) 1535) 3071) 6143) 12287) 24575) -16385) 0x017fff) 0x02ffff) 0x05ffff) 0x0bffff) 0x17ffff) 0x2fffff) 0x5fffff) 0xbfffff) 0x017fffff) 0x02ffffff) 0x05ffffff) ()) (q) (q 8 (q . "assertion failed at 41:5"))) 1) ())) + debug_program: (a (q 4 (q . 2) (c (c (q . 1) 2) (c (q . 1) ()))) (c (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 2 5) 11) 23) 47) 95) -65) 383) 767) 1535) 3071) 6143) 12287) 24575) -16385) 0x017fff) 0x02ffff) 0x05ffff) 0x0bffff) 0x17ffff) 0x2fffff) 0x5fffff) 0xbfffff) 0x017fffff) 0x02ffffff) 0x05ffffff) ()) (q) (q 8 (q . "assertion failed at many_params_non_overflow.rue:41:5"))) 1) ())) output: (a (i (> (+ 2 5 11 23 47 95 -65 383 767 1535 3071 6143 12287 24575 -16385 0x017fff 0x02ffff 0x05ffff 0x0bffff 0x17ffff 0x2fffff 0x5fffff 0xbfffff 0x017fffff 0x02ffffff 0x05ffffff) ()) (q) (q 8)) 1) - debug_output: (a (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 2 5) 11) 23) 47) 95) -65) 383) 767) 1535) 3071) 6143) 12287) 24575) -16385) 0x017fff) 0x02ffff) 0x05ffff) 0x0bffff) 0x17ffff) 0x2fffff) 0x5fffff) 0xbfffff) 0x017fffff) 0x02ffffff) 0x05ffffff) ()) (q) (q 8 (q . "assertion failed at 41:5"))) 1) 1) + debug_output: (a (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 2 5) 11) 23) 47) 95) -65) 383) 767) 1535) 3071) 6143) 12287) 24575) -16385) 0x017fff) 0x02ffff) 0x05ffff) 0x0bffff) 0x17ffff) 0x2fffff) 0x5fffff) 0xbfffff) 0x017fffff) 0x02ffffff) 0x05ffffff) ()) (q) (q 8 (q . "assertion failed at many_params_non_overflow.rue:41:5"))) 1) 1) runtime_cost: 20 byte_cost: 1632000 total_cost: 1632020 - name: call_binary_tree program: (a (i (> (q . 351) ()) (q) (q 8)) 1) - debug_program: (a (q 3 (q . 1) () (a 2 (c (c (c (c (q . 1) (c (q . 2) (q . 3))) (c (q . 4) (c (q . 5) (q . 6)))) (c (c (q . 7) (c (q . 8) (q . 9))) (c (c (q . 10) (q . 11)) (c (q . 12) (q . 13))))) (c (c (c (q . 14) (c (q . 15) (q . 16))) (c (q . 17) (c (q . 18) (q . 19)))) (c (c (q . 20) (c (q . 21) (q . 22))) (c (c (q . 23) (q . 24)) (c (q . 25) (q . 26)))))))) (c (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 16 40) 56) 20) 44) 60) 18) 42) 58) 38) 54) 46) 62) 17) 41) 57) 21) 45) 61) 19) 43) 59) 39) 55) 47) 63) ()) (q) (q 8 (q . "assertion failed at 41:5"))) 1) ())) + debug_program: (a (q 3 (q . 1) () (a 2 (c (c (c (c (q . 1) (c (q . 2) (q . 3))) (c (q . 4) (c (q . 5) (q . 6)))) (c (c (q . 7) (c (q . 8) (q . 9))) (c (c (q . 10) (q . 11)) (c (q . 12) (q . 13))))) (c (c (c (q . 14) (c (q . 15) (q . 16))) (c (q . 17) (c (q . 18) (q . 19)))) (c (c (q . 20) (c (q . 21) (q . 22))) (c (c (q . 23) (q . 24)) (c (q . 25) (q . 26)))))))) (c (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 16 40) 56) 20) 44) 60) 18) 42) 58) 38) 54) 46) 62) 17) 41) 57) 21) 45) 61) 19) 43) 59) 39) 55) 47) 63) ()) (q) (q 8 (q . "assertion failed at many_params_non_overflow.rue:41:5"))) 1) ())) output: () runtime_cost: 820 byte_cost: 372000 total_cost: 372820 - name: call_extern program: (a (i (> (q . 351) ()) (q) (q 8)) 1) - debug_program: (a (q 3 (q . 1) () (a 2 (c (q . 1) (c (q . 2) (c (q . 3) (c (q . 4) (c (q . 5) (c (q . 6) (c (q . 7) (c (q . 8) (c (q . 9) (c (q . 10) (c (q . 11) (c (q . 12) (c (q . 13) (c (q . 14) (c (q . 15) (c (q . 16) (c (q . 17) (c (q . 18) (c (q . 19) (c (q . 20) (c (q . 21) (c (q . 22) (c (q . 23) (c (q . 24) (c (q . 25) (c (q . 26) ())))))))))))))))))))))))))))) (c (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 2 5) 11) 23) 47) 95) -65) 383) 767) 1535) 3071) 6143) 12287) 24575) -16385) 0x017fff) 0x02ffff) 0x05ffff) 0x0bffff) 0x17ffff) 0x2fffff) 0x5fffff) 0xbfffff) 0x017fffff) 0x02ffffff) 0x05ffffff) ()) (q) (q 8 (q . "assertion failed at 72:5"))) 1) ())) + debug_program: (a (q 3 (q . 1) () (a 2 (c (q . 1) (c (q . 2) (c (q . 3) (c (q . 4) (c (q . 5) (c (q . 6) (c (q . 7) (c (q . 8) (c (q . 9) (c (q . 10) (c (q . 11) (c (q . 12) (c (q . 13) (c (q . 14) (c (q . 15) (c (q . 16) (c (q . 17) (c (q . 18) (c (q . 19) (c (q . 20) (c (q . 21) (c (q . 22) (c (q . 23) (c (q . 24) (c (q . 25) (c (q . 26) ())))))))))))))))))))))))))))) (c (q 2 (i (> (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ (+ 2 5) 11) 23) 47) 95) -65) 383) 767) 1535) 3071) 6143) 12287) 24575) -16385) 0x017fff) 0x02ffff) 0x05ffff) 0x0bffff) 0x17ffff) 0x2fffff) 0x5fffff) 0xbfffff) 0x017fffff) 0x02ffffff) 0x05ffffff) ()) (q) (q 8 (q . "assertion failed at many_params_non_overflow.rue:72:5"))) 1) ())) output: () runtime_cost: 820 byte_cost: 372000 diff --git a/tests/symbols/closures.yaml b/tests/symbols/closures.yaml index 454e68f5..343a6e18 100644 --- a/tests/symbols/closures.yaml +++ b/tests/symbols/closures.yaml @@ -67,7 +67,7 @@ tests: total_cost: 1096244 - name: closure_sequential_captures program: (a (q 2 (i (= (a (c (q . 2) (c (c (q . 1) (q 2 (i (= 11 (q . 1)) (q 2 (i (= 23 (q . 2)) (q 2 (i (= 47 (q . 3)) (q 2 (i (= 95 (q . 4)) (q 16 5 2) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1)) (c (c (q . 4) (c (c (q . 1) 4) (c (c (q . 4) (c (c (q . 1) 6) (c (q . 1) ()))) ()))) ()))) (c (q . 1) (c (q . 2) (c (q . 3) (c (q . 4) ()))))) (q . 76)) (q 2 (i (= (a (c (q . 2) (c (c (q . 1) (q 2 (i (= 11 (q . 1)) (q 2 (i (= 23 (q . 2)) (q 2 (i (= 47 (q . 3)) (q 2 (i (= 63 (q . 4)) (q 16 5 2) (q 8)) 1) (q 8)) 1) (q 8)) 1) (q 8)) 1)) (c (c (q . 4) (c (c (q . 1) 4) (c (c (q . 4) (c (c (q . 1) 6) (c (q . 1) ()))) ()))) ()))) (c (q . 1) (c (q . 2) (c (q . 3) (q . 4))))) (q . 76)) (q) (q 8)) 1) (q 8)) 1) (c (c (q . 34) (q . 42)) ())) - debug_program: (a (q 2 (q 2 (q 2 (i (= 4 (q . 76)) (q 2 (i (= 6 (q . 76)) (q) (q 8 (q . "assertion failed at 60:5"))) 1) (q 8 (q . "assertion failed at 59:5"))) 1) (c (c (a 4 (c (q . 1) (c (q . 2) (c (q . 3) (c (q . 4) ()))))) (a 6 (c (q . 1) (c (q . 2) (c (q . 3) (q . 4)))))) 1)) (c (c (c (q . 2) (c (c (q . 1) 30) (c (c (q . 4) (c (c (q . 1) 4) (c (c (q . 4) (c (c (q . 1) 10) (c (q . 1) ()))) ()))) ()))) (c (q . 2) (c (c (q . 1) 22) (c (c (q . 4) (c (c (q . 1) 4) (c (c (q . 4) (c (c (q . 1) 10) (c (q . 1) ()))) ()))) ())))) 1)) (c (c (q . 34) (c (q . 42) (c (q 2 (i (= 11 (q . 1)) (q 2 (i (= 23 (q . 2)) (q 2 (i (= 47 (q . 3)) (q 2 (i (= 63 (q . 4)) (q 16 5 2) (q 8 (q . "assertion failed at 82:5"))) 1) (q 8 (q . "assertion failed at 81:5"))) 1) (q 8 (q . "assertion failed at 80:5"))) 1) (q 8 (q . "assertion failed at 79:5"))) 1) (q 2 (i (= 11 (q . 1)) (q 2 (i (= 23 (q . 2)) (q 2 (i (= 47 (q . 3)) (q 2 (i (= 95 (q . 4)) (q 16 5 2) (q 8 (q . "assertion failed at 74:5"))) 1) (q 8 (q . "assertion failed at 73:5"))) 1) (q 8 (q . "assertion failed at 72:5"))) 1) (q 8 (q . "assertion failed at 71:5"))) 1)))) ())) + debug_program: (a (q 2 (q 2 (q 2 (i (= 4 (q . 76)) (q 2 (i (= 6 (q . 76)) (q) (q 8 (q . "assertion failed at closures.rue:60:5"))) 1) (q 8 (q . "assertion failed at closures.rue:59:5"))) 1) (c (c (a 4 (c (q . 1) (c (q . 2) (c (q . 3) (c (q . 4) ()))))) (a 6 (c (q . 1) (c (q . 2) (c (q . 3) (q . 4)))))) 1)) (c (c (c (q . 2) (c (c (q . 1) 30) (c (c (q . 4) (c (c (q . 1) 4) (c (c (q . 4) (c (c (q . 1) 10) (c (q . 1) ()))) ()))) ()))) (c (q . 2) (c (c (q . 1) 22) (c (c (q . 4) (c (c (q . 1) 4) (c (c (q . 4) (c (c (q . 1) 10) (c (q . 1) ()))) ()))) ())))) 1)) (c (c (q . 34) (c (q . 42) (c (q 2 (i (= 11 (q . 1)) (q 2 (i (= 23 (q . 2)) (q 2 (i (= 47 (q . 3)) (q 2 (i (= 63 (q . 4)) (q 16 5 2) (q 8 (q . "assertion failed at closures.rue:82:5"))) 1) (q 8 (q . "assertion failed at closures.rue:81:5"))) 1) (q 8 (q . "assertion failed at closures.rue:80:5"))) 1) (q 8 (q . "assertion failed at closures.rue:79:5"))) 1) (q 2 (i (= 11 (q . 1)) (q 2 (i (= 23 (q . 2)) (q 2 (i (= 47 (q . 3)) (q 2 (i (= 95 (q . 4)) (q 16 5 2) (q 8 (q . "assertion failed at closures.rue:74:5"))) 1) (q 8 (q . "assertion failed at closures.rue:73:5"))) 1) (q 8 (q . "assertion failed at closures.rue:72:5"))) 1) (q 8 (q . "assertion failed at closures.rue:71:5"))) 1)))) ())) output: () runtime_cost: 9388 byte_cost: 6756000 diff --git a/tests/symbols/expr_statements.yaml b/tests/symbols/expr_statements.yaml index 98d0fe1b..ec41ffe8 100644 --- a/tests/symbols/expr_statements.yaml +++ b/tests/symbols/expr_statements.yaml @@ -1,7 +1,7 @@ tests: - name: one_wrapped_nil program: (i () (a (i (> 2 ()) (q) (q 8)) 1) (q . 1)) - debug_program: (i (q . 1) (q . 1) (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at 42:5"))) 1)) + debug_program: (i (q . 1) (q . 1) (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at expr_statements.rue:42:5"))) 1)) solution: (1) output: '1' runtime_cost: 944 @@ -9,7 +9,7 @@ tests: total_cost: 444944 - name: one_inserted_nil program: (a (i (> 2 ()) (q) (q 8)) 1) - debug_program: (i (q . 1) () (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at 42:5"))) 1)) + debug_program: (i (q . 1) () (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at expr_statements.rue:42:5"))) 1)) solution: (1) output: () runtime_cost: 846 @@ -17,7 +17,7 @@ tests: total_cost: 324846 - name: two_inserted_all_nil program: (all (a (i (> 2 ()) (q) (q 8)) 1) (a (i (> 2 ()) (q) (q 8)) 1)) - debug_program: (i (q . 1) (i (q . 1) () (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at 42:5"))) 1)) (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at 42:5"))) 1)) + debug_program: (i (q . 1) (i (q . 1) () (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at expr_statements.rue:42:5"))) 1)) (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at expr_statements.rue:42:5"))) 1)) solution: (1) output: () runtime_cost: 2493 @@ -25,7 +25,7 @@ tests: total_cost: 710493 - name: two_inserted_separate_nil program: (c (a (i (> 2 ()) (q) (q 8)) 1) (a (i (> 2 ()) (q) (q 8)) 1)) - debug_program: (i (q . 1) (i (q . 1) (c () ()) (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at 42:5"))) 1)) (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at 42:5"))) 1)) + debug_program: (i (q . 1) (i (q . 1) (c () ()) (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at expr_statements.rue:42:5"))) 1)) (a (i (> 2 ()) (q) (q 8 (q . "assertion failed at expr_statements.rue:42:5"))) 1)) solution: (1) output: (()) runtime_cost: 1743 @@ -33,7 +33,7 @@ tests: total_cost: 709743 - name: one_wrapped_non_nil program: (i () (a (i (> 2 ()) (q 1 . 1) (q 8)) 1) (q . 1)) - debug_program: (i (q . 1) (q . 1) (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at 46:5"))) 1)) + debug_program: (i (q . 1) (q . 1) (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at expr_statements.rue:46:5"))) 1)) solution: (1) output: '1' runtime_cost: 920 @@ -41,7 +41,7 @@ tests: total_cost: 468920 - name: one_inserted_non_nil program: (all (a (i (> 2 ()) (q 1 . 1) (q 8)) 1) ()) - debug_program: (i (q . 1) () (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at 46:5"))) 1)) + debug_program: (i (q . 1) () (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at expr_statements.rue:46:5"))) 1)) solution: (1) output: () runtime_cost: 1667 @@ -49,7 +49,7 @@ tests: total_cost: 421667 - name: two_inserted_all_non_nil program: (all (a (i (> 2 ()) (q 1 . 1) (q 8)) 1) (a (i (> 2 ()) (q 1 . 1) (q 8)) 1) ()) - debug_program: (i (q . 1) (i (q . 1) () (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at 46:5"))) 1)) (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at 46:5"))) 1)) + debug_program: (i (q . 1) (i (q . 1) () (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at expr_statements.rue:46:5"))) 1)) (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at expr_statements.rue:46:5"))) 1)) solution: (1) output: () runtime_cost: 2789 @@ -57,7 +57,7 @@ tests: total_cost: 782789 - name: two_inserted_separate_non_nil program: (c (all (a (i (> 2 ()) (q 1 . 1) (q 8)) 1) (a (i (> 2 ()) (q 1 . 1) (q 8)) 1) ()) ()) - debug_program: (i (q . 1) (i (q . 1) (c () ()) (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at 46:5"))) 1)) (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at 46:5"))) 1)) + debug_program: (i (q . 1) (i (q . 1) (c () ()) (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at expr_statements.rue:46:5"))) 1)) (a (i (> 2 ()) (q 1 . 1) (q 8 (q . "assertion failed at expr_statements.rue:46:5"))) 1)) solution: (1) output: (()) runtime_cost: 2884 diff --git a/tests/warnings/always_condition.yaml b/tests/warnings/always_condition.yaml index 4b9ea672..94be8f18 100644 --- a/tests/warnings/always_condition.yaml +++ b/tests/warnings/always_condition.yaml @@ -1,5 +1,5 @@ program: (q . 1) -debug_program: (a (i (q . 1) (q 2 (i (not ()) (q 2 (i () (q) (q 1 . 1)) 1) (q 8 (q . "assertion failed at 3:5"))) 1) (q 8 (q . "assertion failed at 2:5"))) 1) +debug_program: (a (i (q . 1) (q 2 (i (not ()) (q 2 (i () (q) (q 1 . 1)) 1) (q 8 (q . "assertion failed at always_condition.rue:3:5"))) 1) (q 8 (q . "assertion failed at always_condition.rue:2:5"))) 1) output: '1' runtime_cost: 20 byte_cost: 36000