Skip to content

Commit 157f7e2

Browse files
committed
---
yaml --- r: 752 b: refs/heads/master c: 5f24591 h: refs/heads/master v: v3
1 parent db2da22 commit 157f7e2

File tree

16 files changed

+143
-104
lines changed

16 files changed

+143
-104
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: e3758fe321725bec4707e1b7d4fff333ba915905
2+
refs/heads/master: 5f2459145cb90d7d52cfde1d4ed7719dde1dfdc0

trunk/src/boot/driver/main.ml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ let (sess:Session.sess) =
5151
Session.sess_log_asm = false;
5252
Session.sess_log_obj = false;
5353
Session.sess_log_lib = false;
54+
Session.sess_log_path = None;
5455
Session.sess_log_out = stdout;
5556
Session.sess_log_err = stderr;
5657
Session.sess_trace_block = false;
@@ -199,6 +200,10 @@ let argspecs =
199200
(flag (fun _ -> sess.Session.sess_log_lib <- true)
200201
"-llib" "log library search");
201202

203+
("-lpath", Arg.String
204+
(fun s -> sess.Session.sess_log_path <- Some (split_string '.' s)),
205+
"module path to restrict logging to");
206+
202207
(flag (fun _ -> sess.Session.sess_trace_block <- true)
203208
"-tblock" "emit block-boundary tracing code");
204209
(flag (fun _ -> sess.Session.sess_trace_drop <- true)

trunk/src/boot/driver/session.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ type sess =
3737
mutable sess_log_asm: bool;
3838
mutable sess_log_obj: bool;
3939
mutable sess_log_lib: bool;
40+
mutable sess_log_path: (string list) option;
4041
mutable sess_log_out: out_channel;
4142
mutable sess_log_err: out_channel;
4243
mutable sess_trace_block: bool;

trunk/src/boot/me/alias.ml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ open Semant;;
22
open Common;;
33

44
let log cx = Session.log "alias"
5-
cx.ctxt_sess.Session.sess_log_alias
5+
(should_log cx cx.ctxt_sess.Session.sess_log_alias)
66
cx.ctxt_sess.Session.sess_log_out
77
;;
88

@@ -110,14 +110,13 @@ let process_crate
110110
(cx:ctxt)
111111
(crate:Ast.crate)
112112
: unit =
113-
let path = Stack.create () in
114113
let passes =
115114
[|
116115
(alias_analysis_visitor cx
117116
Walk.empty_visitor);
118117
|]
119118
in
120-
run_passes cx "alias" path passes
119+
run_passes cx "alias" passes
121120
cx.ctxt_sess.Session.sess_log_alias log crate
122121
;;
123122

trunk/src/boot/me/dead.ml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ open Semant;;
77
open Common;;
88

99
let log cx = Session.log "dead"
10-
cx.ctxt_sess.Session.sess_log_dead
10+
(should_log cx cx.ctxt_sess.Session.sess_log_dead)
1111
cx.ctxt_sess.Session.sess_log_out
1212
;;
1313

@@ -99,15 +99,14 @@ let process_crate
9999
(cx:ctxt)
100100
(crate:Ast.crate)
101101
: unit =
102-
let path = Stack.create () in
103102
let passes =
104103
[|
105104
(dead_code_visitor cx
106105
Walk.empty_visitor)
107106
|]
108107
in
109108

110-
run_passes cx "dead" path passes
109+
run_passes cx "dead" passes
111110
cx.ctxt_sess.Session.sess_log_dead log crate;
112111
()
113112
;;

trunk/src/boot/me/dwarf.ml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ open Common;;
6666
open Asm;;
6767

6868
let log cx = Session.log "dwarf"
69-
cx.ctxt_sess.Session.sess_log_dwarf
69+
(should_log cx cx.ctxt_sess.Session.sess_log_dwarf)
7070
cx.ctxt_sess.Session.sess_log_out
7171
;;
7272

@@ -1425,7 +1425,6 @@ let prepend lref x = lref := x :: (!lref)
14251425
let dwarf_visitor
14261426
(cx:ctxt)
14271427
(inner:Walk.visitor)
1428-
(path:Ast.name_component Stack.t)
14291428
(cu_info_section_fixup:fixup)
14301429
(cu_aranges:(frag list) ref)
14311430
(cu_pubnames:(frag list) ref)
@@ -1454,7 +1453,9 @@ let dwarf_visitor
14541453
| Il.Bits64 -> TY_i64
14551454
in
14561455

1457-
let path_name _ = Fmt.fmt_to_str Ast.fmt_name (path_to_name path) in
1456+
let path_name _ =
1457+
Fmt.fmt_to_str Ast.fmt_name (path_to_name cx.ctxt_curr_path)
1458+
in
14581459

14591460
let (abbrev_table:(abbrev, int) Hashtbl.t) = Hashtbl.create 0 in
14601461

@@ -2485,12 +2486,10 @@ let process_crate
24852486
let cu_lines = ref [] in
24862487
let cu_frames = ref [] in
24872488

2488-
let path = Stack.create () in
2489-
24902489
let passes =
24912490
[|
24922491
unreferenced_required_item_ignoring_visitor cx
2493-
(dwarf_visitor cx Walk.empty_visitor path
2492+
(dwarf_visitor cx Walk.empty_visitor
24942493
cx.ctxt_debug_info_fixup
24952494
cu_aranges cu_pubnames
24962495
cu_infos cu_abbrevs
@@ -2499,7 +2498,7 @@ let process_crate
24992498
in
25002499

25012500
log cx "emitting DWARF records";
2502-
run_passes cx "dwarf" path passes
2501+
run_passes cx "dwarf" passes
25032502
cx.ctxt_sess.Session.sess_log_dwarf log crate;
25042503

25052504
(* Terminate the tables. *)

trunk/src/boot/me/effect.ml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ open Semant;;
22
open Common;;
33

44
let log cx = Session.log "effect"
5-
cx.ctxt_sess.Session.sess_log_effect
5+
(should_log cx cx.ctxt_sess.Session.sess_log_effect)
66
cx.ctxt_sess.Session.sess_log_out
77
;;
88

99
let iflog cx thunk =
10-
if cx.ctxt_sess.Session.sess_log_effect
10+
if (should_log cx cx.ctxt_sess.Session.sess_log_effect)
1111
then thunk ()
1212
else ()
1313
;;
@@ -315,7 +315,6 @@ let process_crate
315315
(cx:ctxt)
316316
(crate:Ast.crate)
317317
: unit =
318-
let path = Stack.create () in
319318
let item_auth = Hashtbl.create 0 in
320319
let item_effect = Hashtbl.create 0 in
321320
let passes =
@@ -340,7 +339,7 @@ let process_crate
340339
else err (Some id) "auth clause in crate refers to non-item"
341340
in
342341
Hashtbl.iter auth_effect crate.node.Ast.crate_auth;
343-
run_passes cx "effect" path passes
342+
run_passes cx "effect" passes
344343
cx.ctxt_sess.Session.sess_log_effect log crate
345344
;;
346345

trunk/src/boot/me/layout.ml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ open Semant;;
22
open Common;;
33

44
let log cx = Session.log "layout"
5-
cx.ctxt_sess.Session.sess_log_layout
5+
(should_log cx cx.ctxt_sess.Session.sess_log_layout)
66
cx.ctxt_sess.Session.sess_log_out
77
;;
88

@@ -128,7 +128,7 @@ let layout_visitor
128128
in
129129

130130
let iflog thunk =
131-
if cx.ctxt_sess.Session.sess_log_layout
131+
if (should_log cx cx.ctxt_sess.Session.sess_log_layout)
132132
then thunk ()
133133
else ()
134134
in
@@ -453,14 +453,13 @@ let process_crate
453453
(cx:ctxt)
454454
(crate:Ast.crate)
455455
: unit =
456-
let path = Stack.create () in
457456
let passes =
458457
[|
459458
(layout_visitor cx
460459
Walk.empty_visitor)
461460
|];
462461
in
463-
run_passes cx "layout" path passes
462+
run_passes cx "layout" passes
464463
cx.ctxt_sess.Session.sess_log_layout log crate
465464
;;
466465

trunk/src/boot/me/loop.ml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ open Semant;;
66
open Common;;
77

88
let log cx = Session.log "loop"
9-
cx.ctxt_sess.Session.sess_log_loop
9+
(should_log cx cx.ctxt_sess.Session.sess_log_loop)
1010
cx.ctxt_sess.Session.sess_log_out
1111
;;
1212

@@ -142,15 +142,14 @@ let process_crate
142142
(cx:ctxt)
143143
(crate:Ast.crate)
144144
: unit =
145-
let path = Stack.create () in
146145
let passes =
147146
[|
148147
(loop_depth_visitor cx
149148
Walk.empty_visitor)
150149
|]
151150
in
152151

153-
run_passes cx "loop" path passes
152+
run_passes cx "loop" passes
154153
cx.ctxt_sess.Session.sess_log_loop log crate
155154
;;
156155

trunk/src/boot/me/resolve.ml

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ open Common;;
1616

1717

1818
let log cx = Session.log "resolve"
19-
cx.ctxt_sess.Session.sess_log_resolve
19+
(should_log cx cx.ctxt_sess.Session.sess_log_resolve)
2020
cx.ctxt_sess.Session.sess_log_out
2121
;;
2222

2323
let iflog cx thunk =
24-
if cx.ctxt_sess.Session.sess_log_resolve
24+
if (should_log cx cx.ctxt_sess.Session.sess_log_resolve)
2525
then thunk ()
2626
else ()
2727
;;
@@ -139,7 +139,6 @@ let stmt_collecting_visitor
139139

140140
let all_item_collecting_visitor
141141
(cx:ctxt)
142-
(path:Ast.name_component Stack.t)
143142
(inner:Walk.visitor)
144143
: Walk.visitor =
145144

@@ -169,7 +168,7 @@ let all_item_collecting_visitor
169168
Array.iter (fun p -> htab_put cx.ctxt_all_defns p.id
170169
(DEFN_ty_param p.node)) p;
171170
htab_put cx.ctxt_all_defns i.id (DEFN_item i.node);
172-
htab_put cx.ctxt_all_item_names i.id (path_to_name path);
171+
htab_put cx.ctxt_all_item_names i.id (path_to_name cx.ctxt_curr_path);
173172
log cx "collected item #%d: %s" (int_of_node i.id) n;
174173
begin
175174
match i.node.Ast.decl_item with
@@ -191,14 +190,14 @@ let all_item_collecting_visitor
191190

192191
let visit_obj_fn_pre obj ident fn =
193192
htab_put cx.ctxt_all_defns fn.id (DEFN_obj_fn (obj.id, fn.node));
194-
htab_put cx.ctxt_all_item_names fn.id (path_to_name path);
193+
htab_put cx.ctxt_all_item_names fn.id (path_to_name cx.ctxt_curr_path);
195194
note_header fn.id fn.node.Ast.fn_input_slots;
196195
inner.Walk.visit_obj_fn_pre obj ident fn
197196
in
198197

199198
let visit_obj_drop_pre obj b =
200199
htab_put cx.ctxt_all_defns b.id (DEFN_obj_drop obj.id);
201-
htab_put cx.ctxt_all_item_names b.id (path_to_name path);
200+
htab_put cx.ctxt_all_item_names b.id (path_to_name cx.ctxt_curr_path);
202201
inner.Walk.visit_obj_drop_pre obj b
203202
in
204203

@@ -210,7 +209,7 @@ let all_item_collecting_visitor
210209
htab_put cx.ctxt_all_defns id
211210
(DEFN_loop_body (Stack.top items));
212211
htab_put cx.ctxt_all_item_names id
213-
(path_to_name path);
212+
(path_to_name cx.ctxt_curr_path);
214213
| _ -> ()
215214
end;
216215
inner.Walk.visit_stmt_pre s;
@@ -822,13 +821,12 @@ let process_crate
822821
(crate:Ast.crate)
823822
: unit =
824823
let (scopes:(scope list) ref) = ref [] in
825-
let path = Stack.create () in
826824

827825
let passes_0 =
828826
[|
829827
(block_scope_forming_visitor cx Walk.empty_visitor);
830828
(stmt_collecting_visitor cx
831-
(all_item_collecting_visitor cx path
829+
(all_item_collecting_visitor cx
832830
Walk.empty_visitor));
833831
|]
834832
in
@@ -852,11 +850,11 @@ let process_crate
852850
in
853851
let log_flag = cx.ctxt_sess.Session.sess_log_resolve in
854852
log cx "running primary resolve passes";
855-
run_passes cx "resolve collect" path passes_0 log_flag log crate;
853+
run_passes cx "resolve collect" passes_0 log_flag log crate;
856854
log cx "running secondary resolve passes";
857-
run_passes cx "resolve bind" path passes_1 log_flag log crate;
855+
run_passes cx "resolve bind" passes_1 log_flag log crate;
858856
log cx "running tertiary resolve passes";
859-
run_passes cx "resolve patterns" path passes_2 log_flag log crate;
857+
run_passes cx "resolve patterns" passes_2 log_flag log crate;
860858

861859
iflog cx
862860
begin

0 commit comments

Comments
 (0)