# HG changeset patch # User Adam Chlipala # Date 1218898486 14400 # Node ID 63a2f2322c1fdb5fe18c3836a751fc960069db53 # Parent cc68da3801bc3e47347e9b70b8cec9db8b77c4fe -timing option for command-line compiler diff -r cc68da3801bc -r 63a2f2322c1f src/explify.sml --- a/src/explify.sml Thu Aug 14 18:35:08 2008 -0400 +++ b/src/explify.sml Sat Aug 16 10:54:46 2008 -0400 @@ -39,6 +39,7 @@ | L.KRecord k => (L'.KRecord (explifyKind k), loc) | L.KUnit => (L'.KUnit, loc) + | L.KTuple _ => raise Fail "Explify KTuple" | L.KError => raise Fail ("explifyKind: KError at " ^ EM.spanToString loc) | L.KUnif (_, _, ref (SOME k)) => explifyKind k @@ -67,6 +68,9 @@ | L.CUnit => (L'.CUnit, loc) + | L.CTuple _ => raise Fail "Explify CTuple" + | L.CProj _ => raise Fail "Explify CProj" + | L.CError => raise Fail ("explifyCon: CError at " ^ EM.spanToString loc) | L.CUnif (_, _, _, ref (SOME c)) => explifyCon c | L.CUnif _ => raise Fail ("explifyCon: CUnif at " ^ EM.spanToString loc) diff -r cc68da3801bc -r 63a2f2322c1f src/main.mlton.sml --- a/src/main.mlton.sml Thu Aug 14 18:35:08 2008 -0400 +++ b/src/main.mlton.sml Sat Aug 16 10:54:46 2008 -0400 @@ -25,4 +25,26 @@ * POSSIBILITY OF SUCH DAMAGE. *) -val () = Compiler.compile (CommandLine.arguments ()) +fun doArgs (args, (timing, sources)) = + case args of + [] => (timing, rev sources) + | arg :: rest => + let + val acc = + if size arg > 0 andalso String.sub (arg, 0) = #"-" then + case arg of + "-timing" => (true, sources) + | _ => raise Fail ("Unknown option " ^ arg) + else + (timing, arg :: sources) + in + doArgs (rest, acc) + end + +val (timing, sources) = doArgs (CommandLine.arguments (), (false, [])) + +val () = + if timing then + Compiler.time Compiler.toCjrize sources + else + Compiler.compile sources