(* HCoop Domtool (http://hcoop.sourceforge.net/)
- * Copyright (c) 2006, Adam Chlipala
+ * Copyright (c) 2006-2007, Adam Chlipala
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
fun regenerate context =
let
+ val _ = ErrorMsg.reset ()
+
val b = basis ()
+ val _ = if Env.lookupType b "string" then
+ print "Still got it\n"
+ else
+ print "Don't got it\n"
val () = Tycheck.disallowExterns ()
val () = Domain.resetGlobal ()
handle IO.Io _ => ()
| OS.SysErr (s, _) => print ("System error processing user " ^ user ^ ": " ^ s ^ "\n")
| ErrorMsg.Error => print ("User " ^ user ^ " had a compilation error.\n")
+ | _ => print "Unknown exception during regeneration!\n"
in
app contactNode Config.nodeIps;
Env.pre ();
OpenSSL.close bio
handle OpenSSL.OpenSSL _ => ();
loop ())
+ | IO.Io {name, function, cause} =>
+ (print ("IO error: " ^ function ^ " for " ^ name ^ "\n");
+ app (fn x => print (x ^ "\n")) (SMLofNJ.exnHistory cause);
+ OpenSSL.close bio
+ handle OpenSSL.OpenSSL _ => ();
+ loop ())
+ | e =>
+ (print "Unknown exception in main loop!\n";
+ app (fn x => print (x ^ "\n")) (SMLofNJ.exnHistory e);
+ OpenSSL.close bio
+ handle OpenSSL.OpenSSL _ => ();
+ loop ())
in
print ("Domtool dispatcher starting up at " ^ now () ^ "\n");
print "Listening for connections....\n";
OpenSSL.close bio
handle OpenSSL.OpenSSL _ => ();
loop ())
- | OS.SysErr (s, _) =>
- (print ("System error: "^ s ^ "\n");
+ | e as OS.SysErr (s, _) =>
+ (app (fn s => print (s ^ "\n")) (SMLofNJ.exnHistory e);
+ print ("System error: "^ s ^ "\n");
OpenSSL.close bio
handle OpenSSL.OpenSSL _ => ();
loop ())