Skip to content

Commit 08124c0

Browse files
committed
Compiler: sourcemap improvements
1 parent 4dd0e78 commit 08124c0

24 files changed

+642
-583
lines changed

compiler/.depend

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ flow.cmx : util.cmx subst.cmx primitive.cmx option.cmx dgraph.cmx code.cmx \
3737
freevars.cmo : util.cmi option.cmi code.cmi freevars.cmi
3838
freevars.cmx : util.cmx option.cmx code.cmx freevars.cmi
3939
generate.cmo : util.cmi subst.cmi primitive.cmi parse_js.cmi parse_info.cmi \
40-
option.cmi js_tailcall.cmi js_simpl.cmi javascript.cmi freevars.cmi \
41-
code.cmi generate.cmi
40+
parse_bytecode.cmi option.cmi js_tailcall.cmi js_simpl.cmi javascript.cmi \
41+
freevars.cmi code.cmi generate.cmi
4242
generate.cmx : util.cmx subst.cmx primitive.cmx parse_js.cmx parse_info.cmx \
43-
option.cmx js_tailcall.cmx js_simpl.cmx javascript.cmx freevars.cmx \
44-
code.cmx generate.cmi
43+
parse_bytecode.cmx option.cmx js_tailcall.cmx js_simpl.cmx javascript.cmx \
44+
freevars.cmx code.cmx generate.cmi
4545
inline.cmo : code.cmi inline.cmi
4646
inline.cmx : code.cmx inline.cmi
4747
instr.cmo : util.cmi instr.cmi
@@ -56,10 +56,10 @@ js_assign.cmx : util.cmx option.cmx js_traverse.cmx javascript.cmx code.cmx \
5656
js_assign.cmi
5757
js_lexer.cmo : parse_info.cmi js_token.cmi js_lexer.cmi
5858
js_lexer.cmx : parse_info.cmx js_token.cmx js_lexer.cmi
59-
js_output.cmo : source_map.cmi pretty_print.cmi parse_info.cmi \
60-
parse_bytecode.cmi option.cmi javascript.cmi js_output.cmi
61-
js_output.cmx : source_map.cmx pretty_print.cmx parse_info.cmx \
62-
parse_bytecode.cmx option.cmx javascript.cmx js_output.cmi
59+
js_output.cmo : source_map.cmi pretty_print.cmi parse_info.cmi option.cmi \
60+
javascript.cmi js_output.cmi
61+
js_output.cmx : source_map.cmx pretty_print.cmx parse_info.cmx option.cmx \
62+
javascript.cmx js_output.cmi
6363
js_parser.cmo : parse_info.cmi js_token.cmi javascript.cmi js_parser.cmi
6464
js_parser.cmx : parse_info.cmx js_token.cmx javascript.cmx js_parser.cmi
6565
js_simpl.cmo : javascript.cmi code.cmi js_simpl.cmi
@@ -135,22 +135,21 @@ driver.cmi : source_map.cmi pretty_print.cmi parse_bytecode.cmi code.cmi
135135
eval.cmi : flow.cmi code.cmi
136136
flow.cmi : code.cmi
137137
freevars.cmi : util.cmi code.cmi
138-
generate.cmi : javascript.cmi code.cmi
138+
generate.cmi : parse_bytecode.cmi javascript.cmi code.cmi
139139
inline.cmi : code.cmi
140140
instr.cmi :
141141
javascript.cmi : parse_info.cmi code.cmi
142142
js_assign.cmi : javascript.cmi
143143
js_lexer.cmi : parse_info.cmi js_token.cmi
144-
js_output.cmi : source_map.cmi pretty_print.cmi parse_bytecode.cmi \
145-
javascript.cmi
144+
js_output.cmi : source_map.cmi pretty_print.cmi javascript.cmi
146145
js_parser.cmi : js_token.cmi javascript.cmi
147146
js_simpl.cmi : javascript.cmi code.cmi
148147
js_tailcall.cmi : js_traverse.cmi javascript.cmi code.cmi
149148
js_token.cmi : parse_info.cmi
150149
js_traverse.cmi : util.cmi javascript.cmi code.cmi
151150
linker.cmi : util.cmi primitive.cmi parse_info.cmi javascript.cmi
152151
option.cmi :
153-
parse_bytecode.cmi : util.cmi parse_info.cmi javascript.cmi code.cmi
152+
parse_bytecode.cmi : util.cmi parse_info.cmi code.cmi
154153
parse_info.cmi :
155154
parse_js.cmi : parse_info.cmi js_token.cmi javascript.cmi
156155
phisimpl.cmi : code.cmi

compiler/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ OBJS=compiler_version.cmx \
1616
flow.cmx specialize.cmx specialize_js.cmx eval.cmx inline.cmx \
1717
tailcall.cmx freevars.cmx phisimpl.cmx \
1818
js_traverse.cmx js_assign.cmx js_tailcall.cmx \
19-
linker.cmx generate.cmx parse_bytecode.cmx driver.cmx \
19+
linker.cmx parse_bytecode.cmx generate.cmx driver.cmx \
2020
pseudoFs.cmx
2121

2222
COMPOBJS=$(OBJS) compile.cmx

compiler/driver.ml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,10 @@ let o3 =
156156

157157
let profile = ref o1
158158

159-
let generate (p,live_vars) =
159+
let generate d (p,live_vars) =
160160
if times ()
161161
then Format.eprintf "Start Generation...@.";
162-
Generate.f p live_vars
162+
Generate.f p live_vars d
163163

164164

165165
let header formatter ~standalone js =
@@ -220,7 +220,8 @@ let gen_missing js missing =
220220
Statement(
221221
Expression_statement (
222222
ECall(EVar (S {name="caml_failwith";var=None}),
223-
[EBin(Plus,EStr(prim,`Utf8),EStr(" not implemented",`Utf8))]),
223+
[EBin(Plus,EStr(prim,`Utf8),
224+
EStr(" not implemented",`Utf8))], N),
224225
N))],N)
225226
),
226227
N
@@ -337,11 +338,11 @@ let coloring js =
337338
if times () then Format.eprintf " coloring: %a@." Util.Timer.print t;
338339
js
339340

340-
let output formatter ?source_map d js =
341+
let output formatter ?source_map js =
341342
let t = Util.Timer.make () in
342343
if times ()
343344
then Format.eprintf "Start Writing file...@.";
344-
Js_output.program formatter ?source_map d js;
345+
Js_output.program formatter ?source_map js;
345346
if times () then Format.eprintf " write: %a@." Util.Timer.print t
346347

347348
let pack ~standalone ?(toplevel=false)?(linkall=false) js =
@@ -380,14 +381,14 @@ let pack ~standalone ?(toplevel=false)?(linkall=false) js =
380381
J.Return_statement(
381382
Some (J.EVar (J.S {J.name="this";var=None})),
382383
J.N))
383-
], J.N), []) in
384+
], J.N), [], J.N) in
384385

385386
let js = if standalone then
386387
let f =
387388
J.EFun (None, [J.S {J.name = global_object; var=None }], use_strict js,J.N) in
388389
[J.Statement (
389390
J.Expression_statement
390-
((J.ECall (f, [global])), J.N))]
391+
((J.ECall (f, [global], J.N)), J.N))]
391392
else
392393
let f = J.EFun (None, [J.V (Code.Var.fresh ())], js, J.N) in
393394
[J.Statement (J.Expression_statement (f, J.N))] in
@@ -427,7 +428,7 @@ let f ?(standalone=true) ?toplevel ?linkall ?source_map formatter d =
427428
configure formatter >>
428429
!profile >>
429430
deadcode' >>
430-
generate >>
431+
generate d >>
431432

432433
link formatter ~standalone ?linkall >>
433434

@@ -437,7 +438,7 @@ let f ?(standalone=true) ?toplevel ?linkall ?source_map formatter d =
437438

438439
check_js ~standalone >>
439440
header formatter ~standalone >>
440-
output formatter ?source_map d
441+
output formatter ?source_map
441442

442443
let from_string prims s formatter =
443444
let (p,d) = Parse_bytecode.from_string prims s in

compiler/driver.mli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ val f :
2323
?toplevel:bool ->
2424
?linkall:bool ->
2525
?source_map:(string * Source_map.t) ->
26-
Pretty_print.t -> Parse_bytecode.debug_loc -> Code.program -> unit
26+
Pretty_print.t -> Parse_bytecode.Debug.data -> Code.program -> unit
2727

2828
val from_string : string array -> string -> Pretty_print.t -> unit
2929

0 commit comments

Comments
 (0)