# HG changeset patch # User Adam Chlipala # Date 1247929308 14400 # Node ID 8f2159040bbb416b30d316ea183d183ed62bffdd # Parent 034eeb099564fe1607af0d81f72f4b0c7c17bca8 More command-line options diff -r 034eeb099564 -r 8f2159040bbb src/cjr_print.sml --- a/src/cjr_print.sml Sat Jul 18 10:27:32 2009 -0400 +++ b/src/cjr_print.sml Sat Jul 18 11:01:48 2009 -0400 @@ -2659,7 +2659,9 @@ views = !views, sequences = !sequences} else - box [string "void uw_db_init(uw_context ctx) { };", + box [string "void uw_client_init(void) { };", + newline, + string "void uw_db_init(uw_context ctx) { };", newline, string "int uw_db_begin(uw_context ctx) { return 0; };", newline, diff -r 034eeb099564 -r 8f2159040bbb src/compiler.sml --- a/src/compiler.sml Sat Jul 18 10:27:32 2009 -0400 +++ b/src/compiler.sml Sat Jul 18 11:01:48 2009 -0400 @@ -332,9 +332,9 @@ end val prefix = ref NONE - val database = ref NONE - val exe = ref NONE - val sql = ref NONE + val database = ref (Settings.getDbstring ()) + val exe = ref (Settings.getExe ()) + val sql = ref (Settings.getSql ()) val debug = ref (Settings.getDebug ()) val profile = ref false val timeout = ref NONE @@ -398,7 +398,7 @@ fun merge (old : job, new : job) = { prefix = #prefix old, - database = #database old, + database = mergeO (fn (old, _) => old) (#database old, #database new), exe = #exe old, sql = #sql old, debug = #debug old orelse #debug new, @@ -490,19 +490,16 @@ prefix := SOME arg) | "database" => (case !database of - NONE => () - | SOME _ => ErrorMsg.error "Duplicate 'database' directive"; - database := SOME arg) + NONE => database := SOME arg + | SOME _ => ()) | "exe" => (case !exe of - NONE => () - | SOME _ => ErrorMsg.error "Duplicate 'exe' directive"; - exe := SOME (relify arg)) + NONE => exe := SOME (relify arg) + | SOME _ => ()) | "sql" => (case !sql of - NONE => () - | SOME _ => ErrorMsg.error "Duplicate 'sql' directive"; - sql := SOME (relify arg)) + NONE => sql := SOME (relify arg) + | SOME _ => ()) | "debug" => debug := true | "profile" => profile := true | "timeout" => diff -r 034eeb099564 -r 8f2159040bbb src/demo.sml --- a/src/demo.sml Sat Jul 18 10:27:32 2009 -0400 +++ b/src/demo.sml Sat Jul 18 11:01:48 2009 -0400 @@ -88,10 +88,14 @@ else files @ [file]) (#sources combined) (#sources urp), - exe = OS.Path.joinDirFile {dir = dirname, - file = "demo.exe"}, - sql = SOME (OS.Path.joinDirFile {dir = dirname, - file = "demo.sql"}), + exe = case Settings.getExe () of + NONE => OS.Path.joinDirFile {dir = dirname, + file = "demo.exe"} + | SOME s => s, + sql = SOME (case Settings.getSql () of + NONE => OS.Path.joinDirFile {dir = dirname, + file = "demo.sql"} + | SOME s => s), debug = Settings.getDebug (), timeout = Int.max (#timeout combined, #timeout urp), profile = false, diff -r 034eeb099564 -r 8f2159040bbb src/main.mlton.sml --- a/src/main.mlton.sml Sat Jul 18 10:27:32 2009 -0400 +++ b/src/main.mlton.sml Sat Jul 18 11:01:48 2009 -0400 @@ -41,6 +41,9 @@ | "-protocol" :: name :: rest => (Settings.setProtocol name; doArgs rest) + | "-db" :: s :: rest => + (Settings.setDbstring (SOME s); + doArgs rest) | "-dbms" :: name :: rest => (Settings.setDbms name; doArgs rest) @@ -50,6 +53,12 @@ | "-timing" :: rest => (timing := true; doArgs rest) + | "-output" :: s :: rest => + (Settings.setExe (SOME s); + doArgs rest) + | "-sql" :: s :: rest => + (Settings.setSql (SOME s); + doArgs rest) | arg :: rest => (if size arg > 0 andalso String.sub (arg, 0) = #"-" then raise Fail ("Unknown flag " ^ arg) diff -r 034eeb099564 -r 8f2159040bbb src/settings.sig --- a/src/settings.sig Sat Jul 18 10:27:32 2009 -0400 +++ b/src/settings.sig Sat Jul 18 11:01:48 2009 -0400 @@ -163,4 +163,13 @@ val setDbms : string -> unit val currentDbms : unit -> dbms + val setDbstring : string option -> unit + val getDbstring : unit -> string option + + val setExe : string option -> unit + val getExe : unit -> string option + + val setSql : string option -> unit + val getSql : unit -> string option + end diff -r 034eeb099564 -r 8f2159040bbb src/settings.sml --- a/src/settings.sml Sat Jul 18 10:27:32 2009 -0400 +++ b/src/settings.sml Sat Jul 18 11:01:48 2009 -0400 @@ -380,4 +380,16 @@ | SOME db => curDb := db fun currentDbms () = !curDb +val dbstring = ref (NONE : string option) +fun setDbstring so = dbstring := so +fun getDbstring () = !dbstring + +val exe = ref (NONE : string option) +fun setExe so = exe := so +fun getExe () = !exe + +val sql = ref (NONE : string option) +fun setSql so = sql := so +fun getSql () = !sql + end