* MA 02111-1307, USA.
*
* For details, see the HELM World-Wide-Web page,
- * http://cs.unibo.it/helm/.
+ * http://helm.cs.unibo.it/
*)
(******************************************************************************)
let debug_level = ref 1
let debug_print ?(level = 1) s = if !debug_level >= level then prerr_endline s
+let error s = prerr_endline ("E: " ^ s)
+let warning s = prerr_endline ("W: " ^ s)
open Printf
(* GLOBAL CONSTANTS *)
+let configuration_file = "triciclo.conf.xml"
+
let mqi_debug_fun s = debug_print ~level:2 s
let mqi_flags = [MQIC.Postgres ; MQIC.Stat ; MQIC.Warn ; MQIC.Log]
let mqi_handle = MQIC.init mqi_flags mqi_debug_fun
let xlinkns = Gdome.domString "http://www.w3.org/1999/xlink";;
-let prooffile =
- try
- Sys.getenv "GTOPLEVEL_PROOFFILE"
- with
- Not_found -> "/public/currentproof"
-;;
-
-let prooffiletype =
- try
- Sys.getenv "GTOPLEVEL_PROOFFILETYPE"
- with
- Not_found -> "/public/currentprooftype"
-;;
-
-let environmentfile =
- try
- Sys.getenv "GTOPLEVEL_ENVIRONMENTFILE"
- with
- Not_found -> "/public/environment"
-;;
-
let restore_environment_on_boot = true ;;
let notify_hbugs_on_goal_change = false ;;
)
;;
-exception OutputHtmlNotInitialized;;
-
-let set_outputhtml,outputhtml =
- let outputhtml_ref = ref None in
- (function (rw: Ui_logger.html_logger) -> outputhtml_ref := Some rw),
- (function () ->
- match !outputhtml_ref with
- | None -> raise OutputHtmlNotInitialized
- | Some outputhtml -> (outputhtml: Ui_logger.html_logger)
- )
-;;
-
exception QedSetSensitiveNotInitialized;;
let qed_set_sensitive =
ref (function _ -> raise QedSetSensitiveNotInitialized)
String.sub uri' 4 (String.length uri' - 4)
;;
-let output_html ?(append_NL = true) (outputhtml: Ui_logger.html_logger) =
- outputhtml#log ~append_NL
-
(* UTILITY FUNCTIONS TO DISAMBIGUATE AN URI *)
(* Check window *)
-let check_window (outputhtml: Ui_logger.html_logger) uris =
+let check_window uris =
let window =
GWindow.window
~width:800 ~modal:true ~title:"Check" ~border_width:2 () in
mmlwidget#load_sequent [] (111,[],expr)
with
e ->
- output_html outputhtml (`Error (`T (Printexc.to_string e)))
+ HelmLogger.log (`Error (`T (Printexc.to_string e)))
)
) uris
in
(* actions *)
let check_callback () =
assert (List.length !choices > 0) ;
- check_window (outputhtml ()) !choices
+ check_window !choices
in
ignore (window#connect#destroy GMain.Main.quit) ;
ignore (cancelb#connect#clicked window#destroy) ;
(* innertypes *)
let innertypesuri = UriManager.innertypesuri_of_uri uri in
Xml.pp ~quiet:true xmlinnertypes (Some (path ^ ".types.xml")) ;
- Getter.register innertypesuri
- (Configuration.annotations_url ^
+ Http_getter.register' innertypesuri
+ (Helm_registry.get "annotations.url" ^
Str.replace_first (Str.regexp "^cic:") ""
(UriManager.string_of_uri innertypesuri) ^ ".xml"
) ;
(* constant type / variable / mutual inductive types definition *)
Xml.pp ~quiet:true xml (Some (path ^ ".xml")) ;
- Getter.register uri
- (Configuration.annotations_url ^
+ Http_getter.register' uri
+ (Helm_registry.get "annotations.url" ^
Str.replace_first (Str.regexp "^cic:") ""
(UriManager.string_of_uri uri) ^ ".xml"
) ;
| Some bodyuri -> bodyuri
in
Xml.pp ~quiet:true bodyxml' (Some (path ^ ".body.xml")) ;
- Getter.register bodyuri
- (Configuration.annotations_url ^
+ Http_getter.register' bodyuri
+ (Helm_registry.get "annotations.url" ^
Str.replace_first (Str.regexp "^cic:") ""
(UriManager.string_of_uri bodyuri) ^ ".xml"
)
exception WrongProof;;
let pathname_of_annuri uristring =
- Configuration.annotations_dir ^
+ Helm_registry.get "annotations.dir" ^
Str.replace_first (Str.regexp "^cic:") "" uristring
;;
(acic,ids_to_terms,ids_to_father_ids,ids_to_inner_sorts,
ids_to_inner_types,ids_to_conjectures,ids_to_hypotheses)
=
- Cic2acic.acic_object_of_cic_object obj
+ Cic2acic.acic_object_of_cic_object ~eta_fix:false obj
in
(* let's save the theorem and register it to the getter *)
let pathname = pathname_of_annuri (UriManager.buri_of_uri uri) in
(** save an unfinished proof on the filesystem *)
let save_unfinished_proof () =
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
let (xml, bodyxml) = ProofEngine.get_current_status_as_xml () in
- Xml.pp ~quiet:true xml (Some prooffiletype) ;
- output_html outputhtml
- (`Msg (`T ("Current proof type saved to " ^ prooffiletype))) ;
- Xml.pp ~quiet:true bodyxml (Some prooffile) ;
- output_html outputhtml
- (`Msg (`T ("Current proof body saved to " ^ prooffile)))
+ let proof_file_type = Helm_registry.get "triciclo.proof_file_type" in
+ let proof_file = Helm_registry.get "triciclo.proof_file" in
+ Xml.pp ~quiet:true xml (Some proof_file_type) ;
+ HelmLogger.log
+ (`Msg (`T ("Current proof type saved to " ^ proof_file_type))) ;
+ Xml.pp ~quiet:true bodyxml (Some proof_file) ;
+ HelmLogger.log
+ (`Msg (`T ("Current proof body saved to " ^ proof_file)))
;;
(* Used to typecheck the loaded proofs *)
)
;;
-let mk_fresh_name_callback context name ~typ =
+let mk_fresh_name_callback metasenv context name ~typ =
let fresh_name =
- match ProofEngineHelpers.mk_fresh_name context name ~typ with
+ match FreshNamesGenerator.mk_fresh_name metasenv context name ~typ with
Cic.Name fresh_name -> fresh_name
| Cic.Anonymous -> assert false
in
let decompose_uris_choice_callback = decompose_uris_choice_callback
let mk_fresh_name_callback = mk_fresh_name_callback
- let output_html msg = output_html (outputhtml ()) msg
end
;;
module InvokeTactics' = InvokeTactics.Make (InvokeTacticsCallbacks);;
module Ignore = Hbugs.Initialize (InvokeTactics');;
Hbugs.set_describe_hint_callback (fun hint ->
match hint with
- | Hbugs_types.Use_apply_Luke term ->
- let outputhtml = ((rendering_window ())#outputhtml : GHtml.xmhtml) in
- check_window outputhtml [term]
+ | Hbugs_types.Use_apply_Luke term -> check_window [term]
| _ -> ())
;;
*)
(** load an unfinished proof from filesystem *)
let load_unfinished_proof () =
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
let output = ((rendering_window ())#output : TermViewer.proof_viewer) in
let notebook = (rendering_window ())#notebook in
try
None -> raise NoChoice
| Some uri0 ->
let uri = UriManager.uri_of_string ("cic:" ^ uri0) in
- match CicParser.obj_of_xml prooffiletype (Some prooffile) with
+ let proof_file_type = Helm_registry.get "triciclo.proof_file_type" in
+ let proof_file = Helm_registry.get "triciclo.proof_file" in
+ match CicParser.obj_of_xml proof_file_type (Some proof_file) with
Cic.CurrentProof (_,metasenv,bo,ty,_) ->
typecheck_loaded_proof metasenv bo ty ;
ProofEngine.set_proof (Some (uri, metasenv, bo, ty)) ;
| (metano,_,_)::_ -> Some metano
) ;
refresh_goals notebook ;
- output_html outputhtml
- (`Msg (`T ("Current proof type loaded from " ^
- prooffiletype))) ;
- output_html outputhtml
- (`Msg (`T ("Current proof body loaded from " ^
- prooffile))) ;
+ HelmLogger.log
+ (`Msg (`T ("Current proof type loaded from " ^ proof_file_type)));
+ HelmLogger.log
+ (`Msg (`T ("Current proof body loaded from " ^ proof_file))) ;
!save_set_sensitive true;
| _ -> assert false
with
InvokeTactics.RefreshSequentException e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("Exception raised during the refresh of the " ^
"sequent: " ^ Printexc.to_string e)))
| InvokeTactics.RefreshProofException e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("Exception raised during the refresh of the " ^
"proof: " ^ Printexc.to_string e)))
| e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
(try
DisambiguatingParser.EnvironmentP3.of_string raw_aliases
with e ->
- output_html (outputhtml ())
+ HelmLogger.log
(`Error (`T
("Error while parsing aliases: " ^ Printexc.to_string e)));
!disambiguation_env)
let module G = Gdome in
let notebook = (rendering_window ())#notebook in
let output = (rendering_window ())#output in
- let outputhtml = (rendering_window ())#outputhtml in
try
output#make_sequent_of_selected_term ;
refresh_proof output ;
refresh_goals notebook
with
InvokeTactics.RefreshSequentException e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("Exception raised during the refresh of the " ^
"sequent: " ^ Printexc.to_string e)))
| InvokeTactics.RefreshProofException e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("Exception raised during the refresh of the " ^
"proof: " ^ Printexc.to_string e)))
| e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
let module L = LogicalOperations in
let module G = Gdome in
let notebook = (rendering_window ())#notebook in
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
let output = (rendering_window ())#output in
try
output#focus_sequent_of_selected_term ;
refresh_goals notebook
with
InvokeTactics.RefreshSequentException e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("Exception raised during the refresh of the " ^
"sequent: " ^ Printexc.to_string e)))
| InvokeTactics.RefreshProofException e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("Exception raised during the refresh of the " ^
"proof: " ^ Printexc.to_string e)))
| e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
let module G = Gdome in
let notebook = (rendering_window ())#notebook in
let output = (rendering_window ())#output in
- let outputhtml = (rendering_window ())#outputhtml in
let metasenv =
match ProofEngine.get_proof () with
None -> assert false
refresh_goals ~empty_notebook:false notebook
with
InvokeTactics.RefreshSequentException e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("Exception raised during the refresh of the " ^
"sequent: " ^ Printexc.to_string e)))
| e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
let _ = window#event#connect#delete (fun _ -> window#misc#hide () ; true ) in
let href = Gdome.domString "href" in
let show_in_show_window_obj uri obj =
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
try
let
(acic,ids_to_terms,ids_to_father_ids,ids_to_inner_sorts,
mmlwidget#load_doc mml ;
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
in
let show_in_show_window_uri uri =
;;
let locate_callback id =
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
- let out = output_html outputhtml in
let query = MQG.locate id in
let result = MQI.execute mqi_handle query in
let uris =
(function uri,_ ->
MQueryMisc.wrong_xpointer_format_from_wrong_xpointer_format' uri)
result in
- out (`Msg (`T "Locate Query:")) ;
- MQueryUtil.text_of_query (fun m -> out (`Msg (`T m))) "" query;
- out (`Msg (`T "Result:")) ;
- MQueryUtil.text_of_result (fun m -> out (`Msg (`T m))) "" result;
+ HelmLogger.log (`Msg (`T "Locate Query:")) ;
+ MQueryUtil.text_of_query (fun m -> HelmLogger.log (`Msg (`T m))) "" query;
+ HelmLogger.log (`Msg (`T "Result:")) ;
+ MQueryUtil.text_of_result (fun m -> HelmLogger.log (`Msg (`T m))) "" result;
user_uri_choice ~title:"Ambiguous input."
~msg:
("Ambiguous input \"" ^ id ^
ignore
(cancelb#connect#clicked (function () -> uri := None ; window#destroy ())) ;
let check_callback () =
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
let uri = "cic:" ^ manual_input#text in
try
- ignore (Getter.resolve (UriManager.uri_of_string uri)) ;
- output_html outputhtml (`Msg (`T "OK")) ;
+ ignore (Http_getter.resolve' (UriManager.uri_of_string uri)) ;
+ HelmLogger.log (`Msg (`T "OK")) ;
true
with
- Getter.Unresolved ->
- output_html outputhtml
+ Http_getter_types.Unresolvable_URI _ ->
+ HelmLogger.log
(`Error (`T ("URI " ^ uri ^
" does not correspond to any object."))) ;
false
| UriManager.IllFormedUri _ ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("URI " ^ uri ^ " is not well-formed."))) ;
false
| e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e))) ;
false
in
module DisambiguateCallbacks =
struct
- let output_html ?append_NL = output_html ?append_NL (outputhtml ())
let interactive_user_uri_choice =
fun ~selection_mode ?ok ?enable_button_for_non_vars ~title ~msg ~id ->
interactive_user_uri_choice ~selection_mode ?ok
let locate () =
let inputt = ((rendering_window ())#inputt : TermEditor.term_editor) in
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
try
match
GToolbox.input_string ~title:"Locate" "Enter an identifier to locate:"
inputt#set_term uri
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
let new_inductive () =
let inputt = ((rendering_window ())#inputt : TermEditor.term_editor) in
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
let output = ((rendering_window ())#output : TermViewer.proof_viewer) in
let notebook = (rendering_window ())#notebook in
let uri = UriManager.uri_of_string (uristr ^ "/" ^ he ^ ".ind") in
begin
try
- ignore (Getter.resolve uri) ;
+ ignore (Http_getter.resolve' uri) ;
raise UriAlreadyInUse
- with
- Getter.Unresolved ->
+ with Http_getter_types.Unresolvable_URI _ ->
get_uri := (function () -> uri) ;
get_names := (function () -> names) ;
inductive := inductiveb#active ;
end
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
))
(* Second phase *)
window#destroy ()
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
))
(* Third phase *)
window2#destroy ()
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
)) ;
window2#show () ;
show_in_show_window_obj uri obj
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
let new_proof () =
let inputt = ((rendering_window ())#inputt : TermEditor.term_editor) in
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
let output = ((rendering_window ())#output : TermViewer.proof_viewer) in
let notebook = (rendering_window ())#notebook in
else
begin
try
- ignore (Getter.resolve uri) ;
+ ignore (Http_getter.resolve' uri) ;
raise UriAlreadyInUse
- with
- Getter.Unresolved ->
+ with Http_getter_types.Unresolvable_URI _ ->
get_metasenv_and_term := (function () -> metasenv,parsed) ;
get_uri := (function () -> uri) ;
window#destroy ()
end
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
)) ;
window#show () ;
refresh_proof output
with
InvokeTactics.RefreshSequentException e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("Exception raised during the refresh of the " ^
"sequent: " ^ Printexc.to_string e)))
| InvokeTactics.RefreshProofException e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("Exception raised during the refresh of the " ^
"proof: " ^ Printexc.to_string e)))
| e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
let check scratch_window () =
let inputt = ((rendering_window ())#inputt : TermEditor.term_editor) in
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
let metasenv =
match ProofEngine.get_proof () with
None -> []
check_term_in_scratch scratch_window metasenv' context expr
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
let show () =
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
try
show_in_show_window_uri (input_or_locate_uri ~title:"Show")
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
exception NotADefinition;;
let open_ () =
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
let output = ((rendering_window ())#output : TermViewer.proof_viewer) in
let notebook = (rendering_window ())#notebook in
try
!save_set_sensitive true
with
InvokeTactics.RefreshSequentException e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("Exception raised during the refresh of the " ^
"sequent: " ^ Printexc.to_string e)))
| InvokeTactics.RefreshProofException e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T ("Exception raised during the refresh of the " ^
"proof: " ^ Printexc.to_string e)))
| e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
let completeSearchPattern () =
let inputt = ((rendering_window ())#inputt : TermEditor.term_editor) in
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
try
let metasenv,expr = inputt#get_metasenv_and_term ~context:[] ~metasenv:[] in
let must = CGSearchPattern.get_constraints expr in
show_query_results results
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
let insertQuery () =
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
try
let chosen = ref None in
let window =
show_query_results results
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
let searchPattern () =
let inputt = ((rendering_window ())#inputt : TermEditor.term_editor) in
- let outputhtml = ((rendering_window ())#outputhtml(* : GHtml.xmhtml*)) in
try
let proof =
match ProofEngine.get_proof () with
| None -> ()
| Some metano ->
let uris' =
- TacticChaser.matchConclusion
- mqi_handle
- ~output_html:(fun m -> output_html outputhtml (`Msg (`T m)))
+ TacticChaser.matchConclusion mqi_handle
~choose_must () ~status:(proof, metano)
in
let uri' =
InvokeTactics'.apply ()
with
e ->
- output_html outputhtml
+ HelmLogger.log
(`Error (`T (Printexc.to_string e)))
;;
let dump_environment () =
try
- let oc = open_out environmentfile in
- output_html (outputhtml ()) (`Msg (`T "Dumping environment ..."));
- CicEnvironment.dump_to_channel
- ~callback:(fun uri -> output_html (outputhtml ()) (`Msg (`T uri)))
- oc;
- output_html (outputhtml ()) (`Msg (`T "... done!")) ;
+ let oc = open_out (Helm_registry.get "triciclo.environment_file") in
+ HelmLogger.log (`Msg (`T "Dumping environment ..."));
+ CicEnvironment.dump_to_channel oc;
+ HelmLogger.log (`Msg (`T "... done!")) ;
close_out oc
with exc ->
- output_html (outputhtml ())
+ HelmLogger.log
(`Error (`T (Printf.sprintf "Dump failure, uncaught exception:%s"
(Printexc.to_string exc))))
;;
let restore_environment () =
try
- let ic = open_in environmentfile in
- output_html (outputhtml ()) (`Msg (`T "Restoring environment ... "));
- CicEnvironment.restore_from_channel
- ~callback:(fun uri -> output_html (outputhtml ()) (`Msg (`T uri)))
- ic;
- output_html (outputhtml ()) (`Msg (`T "... done!"));
+ let ic = open_in (Helm_registry.get "triciclo.environment_file") in
+ HelmLogger.log (`Msg (`T "Restoring environment ... "));
+ CicEnvironment.restore_from_channel ic;
+ HelmLogger.log (`Msg (`T "... done!"));
close_in ic
with exc ->
- output_html (outputhtml ())
+ HelmLogger.log
(`Error (`T (Printf.sprintf "Restore failure, uncaught exception:%s"
(Printexc.to_string exc))))
;;
refresh_proof output
with
InvokeTactics.RefreshSequentException e ->
- output_html (outputhtml ())
+ HelmLogger.log
(`Error (`T ("An error occurred while refreshing the " ^
"sequent: " ^ Printexc.to_string e))) ;
(*notebook#remove_all_pages ~skip_switch_page_event:false ;*)
notebook#set_empty_page
| InvokeTactics.RefreshProofException e ->
- output_html (outputhtml ())
+ HelmLogger.log
(`Error (`T ("An error occurred while refreshing the proof: " ^ Printexc.to_string e))) ;
output#unload
) in
let frame =
GBin.frame ~shadow_type:`IN ~packing:(vboxl#pack ~expand:true ~padding:5) ()
in
- let outputhtml =
- new Ui_logger.html_logger
+ let _ =
+ new HelmGtkLogger.html_logger
~width:400 ~height: 100 ~show:true ~packing:frame#add ()
in
object
- method outputhtml = outputhtml
method inputt = inputt
method output = (output : TermViewer.proof_viewer)
method scratch_window = scratch_window
let settings_window = new settings_window output scrolled_window0
(*export_to_postscript_menu_item*)() (choose_selection output) in
set_settings_window settings_window ;
- set_outputhtml outputhtml ;
- ignore(window#event#connect#delete (fun _ -> GMain.Main.quit () ; true )) ;
- CicLogger.log_callback := (outputhtml#log_cic_msg ~append_NL:true)
+ ignore(window#event#connect#delete (fun _ -> GMain.Main.quit () ; true ))
end
(* MAIN *)
let initialize_everything () =
- let module U = Unix in
+ if not (Sys.file_exists configuration_file) then begin
+ eprintf "E: Can't find configuration file '%s'\n" configuration_file;
+ exit 2
+ end;
+ Helm_registry.load_from configuration_file;
let output = TermViewer.proof_viewer ~width:350 ~height:280 () in
let notebook = new notebook in
- let rendering_window' = new rendering_window output notebook in
- rendering_window'#set_auto_disambiguation !auto_disambiguation;
- set_rendering_window rendering_window' ;
- let print_error_as_html prefix msg =
- output_html (outputhtml ()) (`Error (`T (prefix ^ msg)))
- in
- Gdome_xslt.setErrorCallback (Some (print_error_as_html "XSLT Error: "));
- Gdome_xslt.setDebugCallback
- (Some (print_error_as_html "XSLT Debug Message: "));
- rendering_window'#show () ;
- if restore_environment_on_boot && Sys.file_exists environmentfile then
- restore_environment ();
- GtkThread.main ()
+ let rendering_window' = new rendering_window output notebook in
+ rendering_window'#set_auto_disambiguation !auto_disambiguation;
+ set_rendering_window rendering_window';
+ let print_error_as_html prefix msg =
+ HelmLogger.log (`Error (`T (prefix ^ msg)))
+ in
+ Gdome_xslt.setErrorCallback (Some (print_error_as_html "XSLT Error: "));
+ Gdome_xslt.setDebugCallback
+ (Some (print_error_as_html "XSLT Debug Message: "));
+ rendering_window'#show () ;
+ if restore_environment_on_boot &&
+ Sys.file_exists (Helm_registry.get "triciclo.environment_file")
+ then
+ restore_environment ();
+ GtkThread.main ()
;;
let main () =