From b8e5cfeb7ba9cb0408b5e27a79a18018ad6509d6 Mon Sep 17 00:00:00 2001 From: Roman Venediktov Date: Fri, 20 Dec 2024 13:59:50 +0100 Subject: [PATCH 1/9] Fixed \r escaping --- src/X86_64.ml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/X86_64.ml b/src/X86_64.ml index 9c5845c2e..d4574d465 100644 --- a/src/X86_64.ml +++ b/src/X86_64.ml @@ -1304,6 +1304,10 @@ class env prg mode = Buffer.add_char buf '\\'; Buffer.add_char buf 't'; iterate (i + 2) + | 'r' -> + Buffer.add_char buf '\\'; + Buffer.add_char buf 'r'; + iterate (i + 2) | _ -> Buffer.add_char buf '\\'; Buffer.add_char buf '\\'; From cec4ef252a9a705460afc8d2541af54c0637d577 Mon Sep 17 00:00:00 2001 From: Roman Venediktov Date: Fri, 20 Dec 2024 15:56:11 +0100 Subject: [PATCH 2/9] Fixed improper STA usage --- src/SM.ml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/SM.ml b/src/SM.ml index d43ea9b67..1784ffa91 100644 --- a/src/SM.ml +++ b/src/SM.ml @@ -1501,8 +1501,7 @@ let compile cmd ((imports, _), p) = add_code (compile_list false lassn env [ x; e ]) lassn false - [ (match x with Expr.Ref _ -> STI | _ -> STA) ] - (*Expr.ElemRef _ -> STA | _ -> STI]*) + [ (match x with Expr.ElemRef _ -> STA | _ -> STI) ] | Expr.Skip -> (env, false, []) | Expr.Seq (s1, s2) -> compile_list tail l env [ s1; s2 ] | Expr.If (c, s1, s2) -> From 6e5315646a505a536b05c99c213686a51dd534eb Mon Sep 17 00:00:00 2001 From: Roman Venediktov Date: Fri, 20 Dec 2024 15:57:11 +0100 Subject: [PATCH 3/9] Added fail in case of indirect assignment into register --- src/X86_64.ml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/X86_64.ml b/src/X86_64.ml index d4574d465..d0c80e02e 100644 --- a/src/X86_64.ml +++ b/src/X86_64.ml @@ -697,10 +697,20 @@ let compile cmd env imports code = let l, env = env#allocate in let env, call = compile_call env ~fname:".string" 1 false in (env, mov addr l @ call) - | LDA x -> + | LDA x -> ( let s, env' = (env#variable x)#allocate in let s', env'' = env'#allocate in - (env'', [ Lea (env'#loc x, rax); Mov (rax, s); Mov (rax, s') ]) + let loc_x = env'#loc x in + match loc_x with + | R _ -> + failwith + "We are not able to take an address of a register. This \ + is the known limitation of 64-bit compiler. If you \ + encountered this issue, just do not use indirect \ + assignment :(" + | _ -> + (); + (env'', [ Lea (loc_x, rax); Mov (rax, s); Mov (rax, s') ])) | LD x -> ( let s, env' = (env#variable x)#allocate in ( env', From a4e297648ca16a0c0fbfe88056a941403af14c11 Mon Sep 17 00:00:00 2001 From: Roman Venediktov Date: Fri, 20 Dec 2024 15:57:44 +0100 Subject: [PATCH 4/9] Fixed placement of arguments for ".match_failure" call --- src/X86_64.ml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/X86_64.ml b/src/X86_64.ml index d0c80e02e..627739a4b 100644 --- a/src/X86_64.ml +++ b/src/X86_64.ml @@ -982,23 +982,21 @@ let compile cmd env imports code = 1 false | LINE line -> env#gen_line line | FAIL ((line, col), value) -> - let v, env = if value then (env#peek, env) else env#pop in + let value, env = if value then (env#peek, env) else env#pop in let msg_addr, env = env#string cmd#get_infile in - let vr, env = env#allocate in - let sr, env = env#allocate in - let liner, env = env#allocate in - let colr, env = env#allocate in + let value_arg_addr, env = env#allocate in + let msg_arg_addr, env = env#allocate in + let line_arg_addr, env = env#allocate in + let col_arg_addr, env = env#allocate in let env, code = compile_call env ~fname:".match_failure" 4 false in let _, env = env#pop in ( env, - [ - Mov (L col, colr); - Mov (L line, liner); - Mov (msg_addr, sr); - Mov (v, vr); - ] + mov (L col) col_arg_addr + @ mov (L line) line_arg_addr + @ mov msg_addr msg_arg_addr + @ mov value value_arg_addr @ code ) | i -> invalid_arg From 4fdbb1884391168a2688816ef6ffa6f63ae0caf0 Mon Sep 17 00:00:00 2001 From: Roman Venediktov Date: Fri, 20 Dec 2024 15:58:09 +0100 Subject: [PATCH 5/9] Added failing if assembly compiler failed --- src/X86_64.ml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/X86_64.ml b/src/X86_64.ml index 627739a4b..7a6a82af6 100644 --- a/src/X86_64.ml +++ b/src/X86_64.ml @@ -1505,11 +1505,17 @@ let build cmd prog = (Buffer.contents buf) cmd#get_runtime_path (match cmd#march with `X86_32 -> "runtime32" | `AMD64 -> "runtime") in - Sys.command gcc_cmdline + let result = Sys.command gcc_cmdline in + if result <> 0 then + failwith + (Printf.sprintf "Assembly compiler failed with exit code %d" result) | `Compile -> let cmd = Printf.sprintf "%s %s %s -c -g %s.s" compiler compiler_flags debug_flags cmd#basename in - Sys.command cmd + let result = Sys.command cmd in + if result <> 0 then + failwith + (Printf.sprintf "Assembly compiler failed with exit code %d" result) | _ -> invalid_arg "must not happen" From cfe325b121d1582e28f55cea757f6dca7d21030b Mon Sep 17 00:00:00 2001 From: Roman Venediktov Date: Fri, 20 Dec 2024 17:37:13 +0100 Subject: [PATCH 6/9] Fixed movement of large constants --- src/X86_64.ml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/X86_64.ml b/src/X86_64.ml index 7a6a82af6..cd3d48195 100644 --- a/src/X86_64.ml +++ b/src/X86_64.ml @@ -260,10 +260,10 @@ let show env instr = let in_memory = function M _ | S _ | I _ -> true | C _ | R _ | L _ -> false let mov x s = - (* Numeric literals with more than 32 bits cannot ne directly moved to memory location *) - let big_numeric_literal = function L num -> num > 0xFFFFFFFF | _ -> false in + (* Numeric literals with more than 32 bits cannot be directly moved to memory location *) + let big_numeric_literal = function L num -> (num > 0xFFFFFFFF || num < -0xFFFFFFFF) | _ -> false in if x = s then [] - else if (in_memory x && in_memory s) || big_numeric_literal x then + else if (in_memory x && in_memory s) || (big_numeric_literal x && (in_memory x || in_memory s)) then [ Mov (x, rax); Mov (rax, s) ] else [ Mov (x, s) ] @@ -691,7 +691,7 @@ let compile cmd env imports code = (env, push_closure_code @ mov address l @ call_code) | CONST n -> let s, env' = env#allocate in - (env', [ Mov (L (box n), s) ]) + (env', mov (L (box n)) s) | STRING s -> let addr, env = env#string s in let l, env = env#allocate in From 2dad84df221f834e2fba58a5a81e0f66412ddbfc Mon Sep 17 00:00:00 2001 From: Roman Venediktov Date: Fri, 20 Dec 2024 19:12:34 +0100 Subject: [PATCH 7/9] Prohibit indirect assignments --- src/SM.ml | 16 ++++++++-------- src/X86_64.ml | 10 ++++++---- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/SM.ml b/src/SM.ml index 1784ffa91..223e4f39c 100644 --- a/src/SM.ml +++ b/src/SM.ml @@ -1427,7 +1427,7 @@ let compile cmd ((imports, _), p) = | Expr.Ignore s -> let ls, env = env#get_label in add_code (compile_expr tail ls env s) ls false [ DROP ] - | Expr.ElemRef (x, i) -> compile_list tail l env [ x; i ] + | Expr.ElemRef _ -> failwith "Should not happen. Indirect assignemts are temporarily prohibited." | Expr.Var x -> ( let env, line = env#gen_line x in let env, acc = env#lookup x in @@ -1438,10 +1438,7 @@ let compile cmd ((imports, _), p) = false, line @ [ PROTO (name, env#current_function) ] ) | _ -> (env, false, line @ [ LD acc ])) - | Expr.Ref x -> - let env, line = env#gen_line x in - let env, acc = env#lookup x in - (env, false, line @ [ LDA acc ]) + | Expr.Ref _ -> failwith "Should not happen. Indirect assignemts are temporarily prohibited." | Expr.Const n -> (env, false, [ CONST n ]) | Expr.String s -> (env, false, [ STRING s ]) | Expr.Binop (op, x, y) -> @@ -1496,12 +1493,15 @@ let compile cmd ((imports, _), p) = let env, line = env#gen_line x in let env, acc = env#lookup x in add_code (compile_expr false lassn env e) lassn false (line @ [ ST acc ]) - | Expr.Assign (x, e) -> + | Expr.Assign (Expr.ElemRef (x, i), e) -> let lassn, env = env#get_label in add_code - (compile_list false lassn env [ x; e ]) + (compile_list false lassn env [ x; i; e ]) lassn false - [ (match x with Expr.ElemRef _ -> STA | _ -> STI) ] + [ STA ] + | Expr.Assign (x, _) -> + failwith + (Printf.sprintf "Indirect assignment is not supported yet: %s" (show Expr.t x)) | Expr.Skip -> (env, false, []) | Expr.Seq (s1, s2) -> compile_list tail l env [ s1; s2 ] | Expr.If (c, s1, s2) -> diff --git a/src/X86_64.ml b/src/X86_64.ml index cd3d48195..85461e33e 100644 --- a/src/X86_64.ml +++ b/src/X86_64.ml @@ -697,7 +697,8 @@ let compile cmd env imports code = let l, env = env#allocate in let env, call = compile_call env ~fname:".string" 1 false in (env, mov addr l @ call) - | LDA x -> ( + | LDA _ -> failwith "Should not happen. Indirect assignemts are temporarily prohibited." + (* let s, env' = (env#variable x)#allocate in let s', env'' = env'#allocate in let loc_x = env'#loc x in @@ -710,7 +711,7 @@ let compile cmd env imports code = assignment :(" | _ -> (); - (env'', [ Lea (loc_x, rax); Mov (rax, s); Mov (rax, s') ])) + (env'', [ Lea (loc_x, rax); Mov (rax, s); Mov (rax, s') ])*) | LD x -> ( let s, env' = (env#variable x)#allocate in ( env', @@ -725,7 +726,8 @@ let compile cmd env imports code = | S _ | M _ -> [ Mov (s, rax); Mov (rax, env'#loc x) ] | _ -> [ Mov (s, env'#loc x) ] )) | STA -> compile_call env ~fname:".sta" 3 false - | STI -> ( + | STI -> failwith "Should not happen. Indirect assignemts are temporarily prohibited." + (* let v, env = env#pop in let x = env#peek in ( env, @@ -737,7 +739,7 @@ let compile cmd env imports code = Mov (rdx, I (0, rax)); Mov (rdx, x); ] - | _ -> [ Mov (v, rax); Mov (rax, I (0, x)); Mov (rax, x) ] )) + | _ -> [ Mov (v, rax); Mov (rax, I (0, x)); Mov (rax, x) ] )*) | BINOP op -> compile_binop env op | LABEL s | FLABEL s | SLABEL s -> (env, [ Label s ]) | JMP l -> ((env#set_stack l)#set_barrier, [ Jmp l ]) From bdd64b081be9f22571fd9c253fc6c0e10c28ae9f Mon Sep 17 00:00:00 2001 From: Roman Venediktov Date: Sun, 5 Jan 2025 10:51:40 +0100 Subject: [PATCH 8/9] Removed ld warning --- runtime/Makefile | 2 +- src/X86_64.ml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime/Makefile b/runtime/Makefile index 1d5fe82a1..f71efd909 100644 --- a/runtime/Makefile +++ b/runtime/Makefile @@ -24,7 +24,7 @@ runtime.o: runtime.c runtime.h $(CC) $(PROD_FLAGS) -c runtime.c -o runtime.o printf.o: printf.S - $(CC) $(PROD_FLAGS) -x assembler-with-cpp -c -g printf.S -o printf.o + $(CC) $(PROD_FLAGS) -Wa,--noexecstack -x assembler-with-cpp -c -g printf.S -o printf.o clean: $(RM) *.a *.o *~ negative_scenarios/*.err diff --git a/src/X86_64.ml b/src/X86_64.ml index 85461e33e..5b7482bbe 100644 --- a/src/X86_64.ml +++ b/src/X86_64.ml @@ -1488,8 +1488,8 @@ let build cmd prog = in let compiler_flags, linker_flags = match cmd#target_os with - | Darwin -> ("-arch x86_64", "-ld_classic") - | Linux -> ("", "") + | Darwin -> ("-arch x86_64 -Wa,--noexecstack", "-ld_classic") + | Linux -> ("-Wa,--noexecstack", "") in let debug_flags = if cmd#is_debug then "-g" else "" in match cmd#get_mode with From ae4d66df487c187bde2dacc0cab03b43a09b1005 Mon Sep 17 00:00:00 2001 From: Kakadu Date: Sun, 5 Jan 2025 21:19:26 +0300 Subject: [PATCH 9/9] [tests] Repair tests in stdlib/regression I was failing because leftover grep command that filters out a warning about '.note.GNU-stack' (No idea where it was fixed) Signed-off-by: Kakadu --- stdlib/regression/gen.ml | 2 +- stdlib/regression/test01.t | 3 +-- stdlib/regression/test02.t | 3 +-- stdlib/regression/test03.t | 3 +-- stdlib/regression/test04.t | 3 +-- stdlib/regression/test05.t | 3 +-- stdlib/regression/test06.t | 3 +-- stdlib/regression/test07.t | 3 +-- stdlib/regression/test08.t | 3 +-- stdlib/regression/test09.t | 3 +-- stdlib/regression/test10.t | 3 +-- stdlib/regression/test11.t | 3 +-- stdlib/regression/test12.t | 3 +-- stdlib/regression/test13.t | 3 +-- stdlib/regression/test14.t | 3 +-- stdlib/regression/test15.t | 3 +-- stdlib/regression/test16.t | 3 +-- stdlib/regression/test17.t | 3 +-- stdlib/regression/test18.t | 3 +-- stdlib/regression/test20.t | 3 +-- stdlib/regression/test21.t | 3 +-- stdlib/regression/test22.t | 3 +-- stdlib/regression/test23.t | 3 +-- stdlib/regression/test24.t | 3 +-- stdlib/regression/test25.t | 3 +-- stdlib/regression/test26.t | 3 +-- stdlib/regression/test27.t | 3 +-- stdlib/regression/test28.t | 3 +-- stdlib/regression/test29.t | 3 +-- stdlib/regression/test32.t | 3 +-- stdlib/regression/test33.t | 3 +-- stdlib/regression/test34.t | 5 ++--- 32 files changed, 33 insertions(+), 64 deletions(-) diff --git a/stdlib/regression/gen.ml b/stdlib/regression/gen.ml index 8d1caaac6..53a8cf3ef 100644 --- a/stdlib/regression/gen.ml +++ b/stdlib/regression/gen.ml @@ -36,7 +36,7 @@ let () = if Sys.file_exists !lama_file && i <> 30 then ( (* cram_printfn " $ ls ../x64"; *) cram_printfn - " $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test%02d.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack'" i; + " $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test%02d.lama -o test" i; cram_printfn " $ ./test"; true) else false diff --git a/stdlib/regression/test01.t b/stdlib/regression/test01.t index 9410a9f0c..8c74ad30e 100644 --- a/stdlib/regression/test01.t +++ b/stdlib/regression/test01.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test01.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test01.lama -o test $ ./test Set internal structure: MNode (63, 1, 0, MNode (31, 1, 0, MNode (15, 1, 0, MNode (7, 1, 0, MNode (3, 1, 0, MNode (1, 1, 0, MNode (0, 1, 0, 0, 0), MNode (2, 1, 0, 0, 0)), MNode (5, 1, 0, MNode (4, 1, 0, 0, 0), MNode (6, 1, 0, 0, 0))), MNode (11, 1, 0, MNode (9, 1, 0, MNode (8, 1, 0, 0, 0), MNode (10, 1, 0, 0, 0)), MNode (13, 1, 0, MNode (12, 1, 0, 0, 0), MNode (14, 1, 0, 0, 0)))), MNode (23, 1, 0, MNode (19, 1, 0, MNode (17, 1, 0, MNode (16, 1, 0, 0, 0), MNode (18, 1, 0, 0, 0)), MNode (21, 1, 0, MNode (20, 1, 0, 0, 0), MNode (22, 1, 0, 0, 0))), MNode (27, 1, 0, MNode (25, 1, 0, MNode (24, 1, 0, 0, 0), MNode (26, 1, 0, 0, 0)), MNode (29, 1, 0, MNode (28, 1, 0, 0, 0), MNode (30, 1, 0, 0, 0))))), MNode (47, 1, 0, MNode (39, 1, 0, MNode (35, 1, 0, MNode (33, 1, 0, MNode (32, 1, 0, 0, 0), MNode (34, 1, 0, 0, 0)), MNode (37, 1, 0, MNode (36, 1, 0, 0, 0), MNode (38, 1, 0, 0, 0))), MNode (43, 1, 0, MNode (41, 1, 0, MNode (40, 1, 0, 0, 0), MNode (42, 1, 0, 0, 0)), MNode (45, 1, 0, MNode (44, 1, 0, 0, 0), MNode (46, 1, 0, 0, 0)))), MNode (55, 1, 0, MNode (51, 1, 0, MNode (49, 1, 0, MNode (48, 1, 0, 0, 0), MNode (50, 1, 0, 0, 0)), MNode (53, 1, 0, MNode (52, 1, 0, 0, 0), MNode (54, 1, 0, 0, 0))), MNode (59, 1, 0, MNode (57, 1, 0, MNode (56, 1, 0, 0, 0), MNode (58, 1, 0, 0, 0)), MNode (61, 1, 0, MNode (60, 1, 0, 0, 0), MNode (62, 1, 0, 0, 0)))))), MNode (79, 1, -1, MNode (71, 1, 0, MNode (67, 1, 0, MNode (65, 1, 0, MNode (64, 1, 0, 0, 0), MNode (66, 1, 0, 0, 0)), MNode (69, 1, 0, MNode (68, 1, 0, 0, 0), MNode (70, 1, 0, 0, 0))), MNode (75, 1, 0, MNode (73, 1, 0, MNode (72, 1, 0, 0, 0), MNode (74, 1, 0, 0, 0)), MNode (77, 1, 0, MNode (76, 1, 0, 0, 0), MNode (78, 1, 0, 0, 0)))), MNode (87, 1, -1, MNode (83, 1, 0, MNode (81, 1, 0, MNode (80, 1, 0, 0, 0), MNode (82, 1, 0, 0, 0)), MNode (85, 1, 0, MNode (84, 1, 0, 0, 0), MNode (86, 1, 0, 0, 0))), MNode (95, 1, 0, MNode (91, 1, 0, MNode (89, 1, 0, MNode (88, 1, 0, 0, 0), MNode (90, 1, 0, 0, 0)), MNode (93, 1, 0, MNode (92, 1, 0, 0, 0), MNode (94, 1, 0, 0, 0))), MNode (97, 1, -1, MNode (96, 1, 0, 0, 0), MNode (98, 1, -1, 0, MNode (99, 1, 0, 0, 0))))))) Set elements: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99} diff --git a/stdlib/regression/test02.t b/stdlib/regression/test02.t index 687ba8c4d..5b05c8d2c 100644 --- a/stdlib/regression/test02.t +++ b/stdlib/regression/test02.t @@ -1,5 +1,4 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test02.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test02.lama -o test $ ./test Assn ("x", Dec ("3")) diff --git a/stdlib/regression/test03.t b/stdlib/regression/test03.t index 3a60e6a8e..4a0482855 100644 --- a/stdlib/regression/test03.t +++ b/stdlib/regression/test03.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test03.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test03.lama -o test $ ./test -1 1 diff --git a/stdlib/regression/test04.t b/stdlib/regression/test04.t index dc4386546..49da03f89 100644 --- a/stdlib/regression/test04.t +++ b/stdlib/regression/test04.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test04.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test04.lama -o test $ ./test Map internal structure: MNode (63, {630}, 0, MNode (31, {310}, 0, MNode (15, {150}, 0, MNode (7, {70}, 0, MNode (3, {30}, 0, MNode (1, {10}, 0, MNode (0, {0}, 0, 0, 0), MNode (2, {20}, 0, 0, 0)), MNode (5, {50}, 0, MNode (4, {40}, 0, 0, 0), MNode (6, {60}, 0, 0, 0))), MNode (11, {110}, 0, MNode (9, {90}, 0, MNode (8, {80}, 0, 0, 0), MNode (10, {100}, 0, 0, 0)), MNode (13, {130}, 0, MNode (12, {120}, 0, 0, 0), MNode (14, {140}, 0, 0, 0)))), MNode (23, {230}, 0, MNode (19, {190}, 0, MNode (17, {170}, 0, MNode (16, {160}, 0, 0, 0), MNode (18, {180}, 0, 0, 0)), MNode (21, {210}, 0, MNode (20, {200}, 0, 0, 0), MNode (22, {220}, 0, 0, 0))), MNode (27, {270}, 0, MNode (25, {250}, 0, MNode (24, {240}, 0, 0, 0), MNode (26, {260}, 0, 0, 0)), MNode (29, {290}, 0, MNode (28, {280}, 0, 0, 0), MNode (30, {300}, 0, 0, 0))))), MNode (47, {470}, 0, MNode (39, {390}, 0, MNode (35, {350}, 0, MNode (33, {330}, 0, MNode (32, {320}, 0, 0, 0), MNode (34, {340}, 0, 0, 0)), MNode (37, {370}, 0, MNode (36, {360}, 0, 0, 0), MNode (38, {380}, 0, 0, 0))), MNode (43, {430}, 0, MNode (41, {410}, 0, MNode (40, {400}, 0, 0, 0), MNode (42, {420}, 0, 0, 0)), MNode (45, {450}, 0, MNode (44, {440}, 0, 0, 0), MNode (46, {460}, 0, 0, 0)))), MNode (55, {550}, 0, MNode (51, {510}, 0, MNode (49, {490}, 0, MNode (48, {480}, 0, 0, 0), MNode (50, {500}, 0, 0, 0)), MNode (53, {530}, 0, MNode (52, {520}, 0, 0, 0), MNode (54, {540}, 0, 0, 0))), MNode (59, {590}, 0, MNode (57, {570}, 0, MNode (56, {560}, 0, 0, 0), MNode (58, {580}, 0, 0, 0)), MNode (61, {610}, 0, MNode (60, {600}, 0, 0, 0), MNode (62, {620}, 0, 0, 0)))))), MNode (79, {790}, -1, MNode (71, {710}, 0, MNode (67, {670}, 0, MNode (65, {650}, 0, MNode (64, {640}, 0, 0, 0), MNode (66, {660}, 0, 0, 0)), MNode (69, {690}, 0, MNode (68, {680}, 0, 0, 0), MNode (70, {700}, 0, 0, 0))), MNode (75, {750}, 0, MNode (73, {730}, 0, MNode (72, {720}, 0, 0, 0), MNode (74, {740}, 0, 0, 0)), MNode (77, {770}, 0, MNode (76, {760}, 0, 0, 0), MNode (78, {780}, 0, 0, 0)))), MNode (87, {870}, -1, MNode (83, {830}, 0, MNode (81, {810}, 0, MNode (80, {800}, 0, 0, 0), MNode (82, {820}, 0, 0, 0)), MNode (85, {850}, 0, MNode (84, {840}, 0, 0, 0), MNode (86, {860}, 0, 0, 0))), MNode (95, {950}, 0, MNode (91, {910}, 0, MNode (89, {890}, 0, MNode (88, {880}, 0, 0, 0), MNode (90, {900}, 0, 0, 0)), MNode (93, {930}, 0, MNode (92, {920}, 0, 0, 0), MNode (94, {940}, 0, 0, 0))), MNode (97, {970}, -1, MNode (96, {960}, 0, 0, 0), MNode (98, {980}, -1, 0, MNode (99, {990}, 0, 0, 0))))))) Map elements: {[0, 0], [1, 10], [2, 20], [3, 30], [4, 40], [5, 50], [6, 60], [7, 70], [8, 80], [9, 90], [10, 100], [11, 110], [12, 120], [13, 130], [14, 140], [15, 150], [16, 160], [17, 170], [18, 180], [19, 190], [20, 200], [21, 210], [22, 220], [23, 230], [24, 240], [25, 250], [26, 260], [27, 270], [28, 280], [29, 290], [30, 300], [31, 310], [32, 320], [33, 330], [34, 340], [35, 350], [36, 360], [37, 370], [38, 380], [39, 390], [40, 400], [41, 410], [42, 420], [43, 430], [44, 440], [45, 450], [46, 460], [47, 470], [48, 480], [49, 490], [50, 500], [51, 510], [52, 520], [53, 530], [54, 540], [55, 550], [56, 560], [57, 570], [58, 580], [59, 590], [60, 600], [61, 610], [62, 620], [63, 630], [64, 640], [65, 650], [66, 660], [67, 670], [68, 680], [69, 690], [70, 700], [71, 710], [72, 720], [73, 730], [74, 740], [75, 750], [76, 760], [77, 770], [78, 780], [79, 790], [80, 800], [81, 810], [82, 820], [83, 830], [84, 840], [85, 850], [86, 860], [87, 870], [88, 880], [89, 890], [90, 900], [91, 910], [92, 920], [93, 930], [94, 940], [95, 950], [96, 960], [97, 970], [98, 980], [99, 990]} diff --git a/stdlib/regression/test05.t b/stdlib/regression/test05.t index e097cb5bf..fd2e997ac 100644 --- a/stdlib/regression/test05.t +++ b/stdlib/regression/test05.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test05.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test05.lama -o test $ ./test Cached: 1 Cached: 1 diff --git a/stdlib/regression/test06.t b/stdlib/regression/test06.t index 2397dcd6d..1bd844705 100644 --- a/stdlib/regression/test06.t +++ b/stdlib/regression/test06.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test06.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test06.lama -o test $ ./test Flattening: 0 Flattening: {0, 0, 0, 0} diff --git a/stdlib/regression/test07.t b/stdlib/regression/test07.t index 176c7e006..7008dfa47 100644 --- a/stdlib/regression/test07.t +++ b/stdlib/regression/test07.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test07.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test07.lama -o test $ ./test HashTab internal structure: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {[{1, 2, 3}, 100]}, 0, 0, 0] HashTab internal structure: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {[{1, 2, 3}, 200], [{1, 2, 3}, 100]}, 0, 0, 0] diff --git a/stdlib/regression/test08.t b/stdlib/regression/test08.t index 378b1d134..d8ea8e497 100644 --- a/stdlib/regression/test08.t +++ b/stdlib/regression/test08.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test08.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test08.lama -o test $ ./test 6 120 diff --git a/stdlib/regression/test09.t b/stdlib/regression/test09.t index a12501b0c..64cff417a 100644 --- a/stdlib/regression/test09.t +++ b/stdlib/regression/test09.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test09.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test09.lama -o test $ ./test Parsing a*| against "aa"... Succ ({"a", "a"}) Parsing a+| against "aa"... Succ ({"a", "a"}) diff --git a/stdlib/regression/test10.t b/stdlib/regression/test10.t index 75613f54f..fd21203a9 100644 --- a/stdlib/regression/test10.t +++ b/stdlib/regression/test10.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test10.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test10.lama -o test $ ./test Parsing "aaa" with many ... Succ ({"a", "a", "a"}) Parsing "ab" with bad_alter ... Succ ("ab") diff --git a/stdlib/regression/test11.t b/stdlib/regression/test11.t index 7efd2e871..227782b28 100644 --- a/stdlib/regression/test11.t +++ b/stdlib/regression/test11.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test11.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test11.lama -o test $ ./test Succ ("a") Succ (Add ("a", "a")) diff --git a/stdlib/regression/test12.t b/stdlib/regression/test12.t index ba857ec2b..04b3b742f 100644 --- a/stdlib/regression/test12.t +++ b/stdlib/regression/test12.t @@ -1,5 +1,4 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test12.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test12.lama -o test $ ./test Succ (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul (Mul ("a", "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a"), "a")) diff --git a/stdlib/regression/test13.t b/stdlib/regression/test13.t index 873cf0c62..f69935f4a 100644 --- a/stdlib/regression/test13.t +++ b/stdlib/regression/test13.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test13.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test13.lama -o test $ ./test Succ (Add ("a", Sub ("a", "a"))) Succ (Mul (Div (Mul ("a", "a"), "a"), "a")) diff --git a/stdlib/regression/test14.t b/stdlib/regression/test14.t index c6a2f32a7..09e8f8c18 100644 --- a/stdlib/regression/test14.t +++ b/stdlib/regression/test14.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test14.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test14.lama -o test $ ./test Succ (Add ("a", Sub ("a", "a"))) Succ (Mul (Div (Mul ("a", "a"), "a"), "a")) diff --git a/stdlib/regression/test15.t b/stdlib/regression/test15.t index 86786f3db..f7830e133 100644 --- a/stdlib/regression/test15.t +++ b/stdlib/regression/test15.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test15.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test15.lama -o test $ ./test Succ (Eq ("a", "a")) Succ (Eq (Mul ("a", "a"), Mul ("a", "a"))) diff --git a/stdlib/regression/test16.t b/stdlib/regression/test16.t index 6365c1431..ff411c4b5 100644 --- a/stdlib/regression/test16.t +++ b/stdlib/regression/test16.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test16.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test16.lama -o test $ ./test Succ (Eq ("a", "a")) Succ (Eq ("b", "b")) diff --git a/stdlib/regression/test17.t b/stdlib/regression/test17.t index d38333431..d6f242b37 100644 --- a/stdlib/regression/test17.t +++ b/stdlib/regression/test17.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test17.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test17.lama -o test $ ./test Lazy body: 0 Lazy body: 1 diff --git a/stdlib/regression/test18.t b/stdlib/regression/test18.t index 72a01879a..c10a41179 100644 --- a/stdlib/regression/test18.t +++ b/stdlib/regression/test18.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test18.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test18.lama -o test $ ./test 1 =?= 1 = 0 symmetricity: ok diff --git a/stdlib/regression/test20.t b/stdlib/regression/test20.t index 7bff5b1e6..04ba202ab 100644 --- a/stdlib/regression/test20.t +++ b/stdlib/regression/test20.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test20.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test20.lama -o test $ ./test Empty Node (0, Empty, Empty) diff --git a/stdlib/regression/test21.t b/stdlib/regression/test21.t index 4d97bd002..7435cc4ef 100644 --- a/stdlib/regression/test21.t +++ b/stdlib/regression/test21.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test21.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test21.lama -o test $ ./test 1 1 diff --git a/stdlib/regression/test22.t b/stdlib/regression/test22.t index f926a76c9..9309f39d3 100644 --- a/stdlib/regression/test22.t +++ b/stdlib/regression/test22.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test22.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test22.lama -o test $ ./test 0 {1, 2, 3, 4} diff --git a/stdlib/regression/test23.t b/stdlib/regression/test23.t index fa9a04daa..0306c0c36 100644 --- a/stdlib/regression/test23.t +++ b/stdlib/regression/test23.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test23.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test23.lama -o test $ ./test 1 {2, 3, 4} diff --git a/stdlib/regression/test24.t b/stdlib/regression/test24.t index e48bb1d9e..0d8edd5e8 100644 --- a/stdlib/regression/test24.t +++ b/stdlib/regression/test24.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test24.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test24.lama -o test $ ./test 3 {1} diff --git a/stdlib/regression/test25.t b/stdlib/regression/test25.t index 091f14033..b3079e9d7 100644 --- a/stdlib/regression/test25.t +++ b/stdlib/regression/test25.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test25.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test25.lama -o test $ ./test Cloning int: 5 Cloning string: abc diff --git a/stdlib/regression/test26.t b/stdlib/regression/test26.t index 4319c15cf..7f5907b36 100644 --- a/stdlib/regression/test26.t +++ b/stdlib/regression/test26.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test26.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test26.lama -o test $ ./test Number of commands-line arguments: 1 arg [0 ] = "./test" diff --git a/stdlib/regression/test27.t b/stdlib/regression/test27.t index 158b1e5a8..d2e743c03 100644 --- a/stdlib/regression/test27.t +++ b/stdlib/regression/test27.t @@ -1,5 +1,4 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test27.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test27.lama -o test $ ./test Yes diff --git a/stdlib/regression/test28.t b/stdlib/regression/test28.t index 4afff951a..0972fd855 100644 --- a/stdlib/regression/test28.t +++ b/stdlib/regression/test28.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test28.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test28.lama -o test $ ./test Succ (Seq ("a", "b")) Succ (Alt ("a")) diff --git a/stdlib/regression/test29.t b/stdlib/regression/test29.t index 507ffc622..a1edb8939 100644 --- a/stdlib/regression/test29.t +++ b/stdlib/regression/test29.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test29.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test29.lama -o test $ ./test Succ (Seq ("a", "b")) Succ (Alt ("a")) diff --git a/stdlib/regression/test32.t b/stdlib/regression/test32.t index c1112dde3..c1c48950c 100644 --- a/stdlib/regression/test32.t +++ b/stdlib/regression/test32.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test32.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test32.lama -o test $ ./test Flattening: 0 Flattening: {A, B, C, D} diff --git a/stdlib/regression/test33.t b/stdlib/regression/test33.t index 4d79e62c9..8681e6527 100644 --- a/stdlib/regression/test33.t +++ b/stdlib/regression/test33.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test33.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test33.lama -o test $ ./test {}.string: 0 {}.stringcat: diff --git a/stdlib/regression/test34.t b/stdlib/regression/test34.t index f896fa062..5ac075f5b 100644 --- a/stdlib/regression/test34.t +++ b/stdlib/regression/test34.t @@ -1,6 +1,5 @@ This file was autogenerated. - $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test34.lama -o test 2>&1 | grep -v 'missing .note.GNU-stack' - /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + $ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test34.lama -o test $ ./test - ' " ` % \ \r + ' " ` % \ \h @ $ # ; [ ]