mirror of
https://github.com/ProgramSnail/Lama.git
synced 2025-12-05 22:38:44 +00:00
commit
1d8d7c4203
35 changed files with 85 additions and 97 deletions
|
|
@ -24,7 +24,7 @@ runtime.o: runtime.c runtime.h
|
||||||
$(CC) $(PROD_FLAGS) -c runtime.c -o runtime.o
|
$(CC) $(PROD_FLAGS) -c runtime.c -o runtime.o
|
||||||
|
|
||||||
printf.o: printf.S
|
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:
|
clean:
|
||||||
$(RM) *.a *.o *~ negative_scenarios/*.err
|
$(RM) *.a *.o *~ negative_scenarios/*.err
|
||||||
|
|
|
||||||
17
src/SM.ml
17
src/SM.ml
|
|
@ -1427,7 +1427,7 @@ let compile cmd ((imports, _), p) =
|
||||||
| Expr.Ignore s ->
|
| Expr.Ignore s ->
|
||||||
let ls, env = env#get_label in
|
let ls, env = env#get_label in
|
||||||
add_code (compile_expr tail ls env s) ls false [ DROP ]
|
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 -> (
|
| Expr.Var x -> (
|
||||||
let env, line = env#gen_line x in
|
let env, line = env#gen_line x in
|
||||||
let env, acc = env#lookup x in
|
let env, acc = env#lookup x in
|
||||||
|
|
@ -1438,10 +1438,7 @@ let compile cmd ((imports, _), p) =
|
||||||
false,
|
false,
|
||||||
line @ [ PROTO (name, env#current_function) ] )
|
line @ [ PROTO (name, env#current_function) ] )
|
||||||
| _ -> (env, false, line @ [ LD acc ]))
|
| _ -> (env, false, line @ [ LD acc ]))
|
||||||
| Expr.Ref x ->
|
| Expr.Ref _ -> failwith "Should not happen. Indirect assignemts are temporarily prohibited."
|
||||||
let env, line = env#gen_line x in
|
|
||||||
let env, acc = env#lookup x in
|
|
||||||
(env, false, line @ [ LDA acc ])
|
|
||||||
| Expr.Const n -> (env, false, [ CONST n ])
|
| Expr.Const n -> (env, false, [ CONST n ])
|
||||||
| Expr.String s -> (env, false, [ STRING s ])
|
| Expr.String s -> (env, false, [ STRING s ])
|
||||||
| Expr.Binop (op, x, y) ->
|
| Expr.Binop (op, x, y) ->
|
||||||
|
|
@ -1496,13 +1493,15 @@ let compile cmd ((imports, _), p) =
|
||||||
let env, line = env#gen_line x in
|
let env, line = env#gen_line x in
|
||||||
let env, acc = env#lookup x in
|
let env, acc = env#lookup x in
|
||||||
add_code (compile_expr false lassn env e) lassn false (line @ [ ST acc ])
|
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
|
let lassn, env = env#get_label in
|
||||||
add_code
|
add_code
|
||||||
(compile_list false lassn env [ x; e ])
|
(compile_list false lassn env [ x; i; e ])
|
||||||
lassn false
|
lassn false
|
||||||
[ (match x with Expr.Ref _ -> STI | _ -> STA) ]
|
[ STA ]
|
||||||
(*Expr.ElemRef _ -> STA | _ -> STI]*)
|
| Expr.Assign (x, _) ->
|
||||||
|
failwith
|
||||||
|
(Printf.sprintf "Indirect assignment is not supported yet: %s" (show Expr.t x))
|
||||||
| Expr.Skip -> (env, false, [])
|
| Expr.Skip -> (env, false, [])
|
||||||
| Expr.Seq (s1, s2) -> compile_list tail l env [ s1; s2 ]
|
| Expr.Seq (s1, s2) -> compile_list tail l env [ s1; s2 ]
|
||||||
| Expr.If (c, s1, s2) ->
|
| Expr.If (c, s1, s2) ->
|
||||||
|
|
|
||||||
|
|
@ -260,10 +260,10 @@ let show env instr =
|
||||||
let in_memory = function M _ | S _ | I _ -> true | C _ | R _ | L _ -> false
|
let in_memory = function M _ | S _ | I _ -> true | C _ | R _ | L _ -> false
|
||||||
|
|
||||||
let mov x s =
|
let mov x s =
|
||||||
(* Numeric literals with more than 32 bits cannot ne directly moved to memory location *)
|
(* Numeric literals with more than 32 bits cannot be directly moved to memory location *)
|
||||||
let big_numeric_literal = function L num -> num > 0xFFFFFFFF | _ -> false in
|
let big_numeric_literal = function L num -> (num > 0xFFFFFFFF || num < -0xFFFFFFFF) | _ -> false in
|
||||||
if x = s then []
|
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) ]
|
[ Mov (x, rax); Mov (rax, s) ]
|
||||||
else [ Mov (x, s) ]
|
else [ Mov (x, s) ]
|
||||||
|
|
||||||
|
|
@ -691,16 +691,27 @@ let compile cmd env imports code =
|
||||||
(env, push_closure_code @ mov address l @ call_code)
|
(env, push_closure_code @ mov address l @ call_code)
|
||||||
| CONST n ->
|
| CONST n ->
|
||||||
let s, env' = env#allocate in
|
let s, env' = env#allocate in
|
||||||
(env', [ Mov (L (box n), s) ])
|
(env', mov (L (box n)) s)
|
||||||
| STRING s ->
|
| STRING s ->
|
||||||
let addr, env = env#string s in
|
let addr, env = env#string s in
|
||||||
let l, env = env#allocate in
|
let l, env = env#allocate in
|
||||||
let env, call = compile_call env ~fname:".string" 1 false in
|
let env, call = compile_call env ~fname:".string" 1 false in
|
||||||
(env, mov addr l @ call)
|
(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#variable x)#allocate in
|
||||||
let s', env'' = env'#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 -> (
|
| LD x -> (
|
||||||
let s, env' = (env#variable x)#allocate in
|
let s, env' = (env#variable x)#allocate in
|
||||||
( env',
|
( env',
|
||||||
|
|
@ -715,7 +726,8 @@ let compile cmd env imports code =
|
||||||
| S _ | M _ -> [ Mov (s, rax); Mov (rax, env'#loc x) ]
|
| S _ | M _ -> [ Mov (s, rax); Mov (rax, env'#loc x) ]
|
||||||
| _ -> [ Mov (s, env'#loc x) ] ))
|
| _ -> [ Mov (s, env'#loc x) ] ))
|
||||||
| STA -> compile_call env ~fname:".sta" 3 false
|
| 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 v, env = env#pop in
|
||||||
let x = env#peek in
|
let x = env#peek in
|
||||||
( env,
|
( env,
|
||||||
|
|
@ -727,7 +739,7 @@ let compile cmd env imports code =
|
||||||
Mov (rdx, I (0, rax));
|
Mov (rdx, I (0, rax));
|
||||||
Mov (rdx, x);
|
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
|
| BINOP op -> compile_binop env op
|
||||||
| LABEL s | FLABEL s | SLABEL s -> (env, [ Label s ])
|
| LABEL s | FLABEL s | SLABEL s -> (env, [ Label s ])
|
||||||
| JMP l -> ((env#set_stack l)#set_barrier, [ Jmp l ])
|
| JMP l -> ((env#set_stack l)#set_barrier, [ Jmp l ])
|
||||||
|
|
@ -972,23 +984,21 @@ let compile cmd env imports code =
|
||||||
1 false
|
1 false
|
||||||
| LINE line -> env#gen_line line
|
| LINE line -> env#gen_line line
|
||||||
| FAIL ((line, col), value) ->
|
| 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 msg_addr, env = env#string cmd#get_infile in
|
||||||
let vr, env = env#allocate in
|
let value_arg_addr, env = env#allocate in
|
||||||
let sr, env = env#allocate in
|
let msg_arg_addr, env = env#allocate in
|
||||||
let liner, env = env#allocate in
|
let line_arg_addr, env = env#allocate in
|
||||||
let colr, env = env#allocate in
|
let col_arg_addr, env = env#allocate in
|
||||||
let env, code =
|
let env, code =
|
||||||
compile_call env ~fname:".match_failure" 4 false
|
compile_call env ~fname:".match_failure" 4 false
|
||||||
in
|
in
|
||||||
let _, env = env#pop in
|
let _, env = env#pop in
|
||||||
( env,
|
( env,
|
||||||
[
|
mov (L col) col_arg_addr
|
||||||
Mov (L col, colr);
|
@ mov (L line) line_arg_addr
|
||||||
Mov (L line, liner);
|
@ mov msg_addr msg_arg_addr
|
||||||
Mov (msg_addr, sr);
|
@ mov value value_arg_addr
|
||||||
Mov (v, vr);
|
|
||||||
]
|
|
||||||
@ code )
|
@ code )
|
||||||
| i ->
|
| i ->
|
||||||
invalid_arg
|
invalid_arg
|
||||||
|
|
@ -1304,6 +1314,10 @@ class env prg mode =
|
||||||
Buffer.add_char buf '\\';
|
Buffer.add_char buf '\\';
|
||||||
Buffer.add_char buf 't';
|
Buffer.add_char buf 't';
|
||||||
iterate (i + 2)
|
iterate (i + 2)
|
||||||
|
| 'r' ->
|
||||||
|
Buffer.add_char buf '\\';
|
||||||
|
Buffer.add_char buf 'r';
|
||||||
|
iterate (i + 2)
|
||||||
| _ ->
|
| _ ->
|
||||||
Buffer.add_char buf '\\';
|
Buffer.add_char buf '\\';
|
||||||
Buffer.add_char buf '\\';
|
Buffer.add_char buf '\\';
|
||||||
|
|
@ -1474,8 +1488,8 @@ let build cmd prog =
|
||||||
in
|
in
|
||||||
let compiler_flags, linker_flags =
|
let compiler_flags, linker_flags =
|
||||||
match cmd#target_os with
|
match cmd#target_os with
|
||||||
| Darwin -> ("-arch x86_64", "-ld_classic")
|
| Darwin -> ("-arch x86_64 -Wa,--noexecstack", "-ld_classic")
|
||||||
| Linux -> ("", "")
|
| Linux -> ("-Wa,--noexecstack", "")
|
||||||
in
|
in
|
||||||
let debug_flags = if cmd#is_debug then "-g" else "" in
|
let debug_flags = if cmd#is_debug then "-g" else "" in
|
||||||
match cmd#get_mode with
|
match cmd#get_mode with
|
||||||
|
|
@ -1493,11 +1507,17 @@ let build cmd prog =
|
||||||
(Buffer.contents buf) cmd#get_runtime_path
|
(Buffer.contents buf) cmd#get_runtime_path
|
||||||
(match cmd#march with `X86_32 -> "runtime32" | `AMD64 -> "runtime")
|
(match cmd#march with `X86_32 -> "runtime32" | `AMD64 -> "runtime")
|
||||||
in
|
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 ->
|
| `Compile ->
|
||||||
let cmd =
|
let cmd =
|
||||||
Printf.sprintf "%s %s %s -c -g %s.s" compiler compiler_flags debug_flags
|
Printf.sprintf "%s %s %s -c -g %s.s" compiler compiler_flags debug_flags
|
||||||
cmd#basename
|
cmd#basename
|
||||||
in
|
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"
|
| _ -> invalid_arg "must not happen"
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ let () =
|
||||||
if Sys.file_exists !lama_file && i <> 30 then (
|
if Sys.file_exists !lama_file && i <> 30 then (
|
||||||
(* cram_printfn " $ ls ../x64"; *)
|
(* cram_printfn " $ ls ../x64"; *)
|
||||||
cram_printfn
|
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";
|
cram_printfn " $ ./test";
|
||||||
true)
|
true)
|
||||||
else false
|
else false
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test01.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./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 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}
|
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}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test02.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Assn ("x", Dec ("3"))
|
Assn ("x", Dec ("3"))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test03.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
-1
|
-1
|
||||||
1
|
1
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test04.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./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 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]}
|
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]}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test05.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Cached: 1
|
Cached: 1
|
||||||
Cached: 1
|
Cached: 1
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test06.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Flattening: 0
|
Flattening: 0
|
||||||
Flattening: {0, 0, 0, 0}
|
Flattening: {0, 0, 0, 0}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test07.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./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}, 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]
|
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]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test08.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
6
|
6
|
||||||
120
|
120
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test09.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Parsing a*| against "aa"... Succ ({"a", "a"})
|
Parsing a*| against "aa"... Succ ({"a", "a"})
|
||||||
Parsing a+| against "aa"... Succ ({"a", "a"})
|
Parsing a+| against "aa"... Succ ({"a", "a"})
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test10.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Parsing "aaa" with many ... Succ ({"a", "a", "a"})
|
Parsing "aaa" with many ... Succ ({"a", "a", "a"})
|
||||||
Parsing "ab" with bad_alter ... Succ ("ab")
|
Parsing "ab" with bad_alter ... Succ ("ab")
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test11.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Succ ("a")
|
Succ ("a")
|
||||||
Succ (Add ("a", "a"))
|
Succ (Add ("a", "a"))
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test12.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./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"))
|
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"))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test13.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Succ (Add ("a", Sub ("a", "a")))
|
Succ (Add ("a", Sub ("a", "a")))
|
||||||
Succ (Mul (Div (Mul ("a", "a"), "a"), "a"))
|
Succ (Mul (Div (Mul ("a", "a"), "a"), "a"))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test14.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Succ (Add ("a", Sub ("a", "a")))
|
Succ (Add ("a", Sub ("a", "a")))
|
||||||
Succ (Mul (Div (Mul ("a", "a"), "a"), "a"))
|
Succ (Mul (Div (Mul ("a", "a"), "a"), "a"))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test15.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Succ (Eq ("a", "a"))
|
Succ (Eq ("a", "a"))
|
||||||
Succ (Eq (Mul ("a", "a"), Mul ("a", "a")))
|
Succ (Eq (Mul ("a", "a"), Mul ("a", "a")))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test16.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Succ (Eq ("a", "a"))
|
Succ (Eq ("a", "a"))
|
||||||
Succ (Eq ("b", "b"))
|
Succ (Eq ("b", "b"))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test17.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Lazy body: 0
|
Lazy body: 0
|
||||||
Lazy body: 1
|
Lazy body: 1
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test18.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
1 =?= 1 = 0
|
1 =?= 1 = 0
|
||||||
symmetricity: ok
|
symmetricity: ok
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test20.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Empty
|
Empty
|
||||||
Node (0, Empty, Empty)
|
Node (0, Empty, Empty)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test21.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test22.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
0
|
0
|
||||||
{1, 2, 3, 4}
|
{1, 2, 3, 4}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test23.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
1
|
1
|
||||||
{2, 3, 4}
|
{2, 3, 4}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test24.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
3
|
3
|
||||||
{1}
|
{1}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test25.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Cloning int: 5
|
Cloning int: 5
|
||||||
Cloning string: abc
|
Cloning string: abc
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test26.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Number of commands-line arguments: 1
|
Number of commands-line arguments: 1
|
||||||
arg [0 ] = "./test"
|
arg [0 ] = "./test"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test27.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Yes
|
Yes
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test28.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Succ (Seq ("a", "b"))
|
Succ (Seq ("a", "b"))
|
||||||
Succ (Alt ("a"))
|
Succ (Alt ("a"))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test29.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Succ (Seq ("a", "b"))
|
Succ (Seq ("a", "b"))
|
||||||
Succ (Alt ("a"))
|
Succ (Alt ("a"))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test32.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
Flattening: 0
|
Flattening: 0
|
||||||
Flattening: {A, B, C, D}
|
Flattening: {A, B, C, D}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test33.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
{}.string: 0
|
{}.string: 0
|
||||||
{}.stringcat:
|
{}.stringcat:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
This file was autogenerated.
|
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'
|
$ ../../src/Driver.exe -runtime ../../runtime -I ../../runtime -I ../../stdlib/x64 -ds -dp test34.lama -o test
|
||||||
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
|
||||||
$ ./test
|
$ ./test
|
||||||
' " ` % \ \r
|
' " ` % \
|
||||||
\h @ $ # ; [ ]
|
\h @ $ # ; [ ]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue