filter choices
in
filter_phase_3
- (List.map (fun o,l -> o,List.sort choices_compare_by_passes l)
+ (List.map (fun (o,l) -> o,List.sort choices_compare_by_passes l)
(uniq (List.stable_sort choices_compare choices)))
in
choices
;;
-let rec to_string =
- function
+let rec to_string exn =
+ try
+ (match exn with
HExtlib.Localized (floc,exn) ->
let _,msg = to_string exn in
let (x, y) = HExtlib.loc_of_floc floc in
| GrafiteTypes.Command_error msg -> None, "Error: " ^ msg
| CicNotationParser.Parse_error err ->
None, sprintf "Parse error: %s" err
- | Unix.Unix_error (code, api, param) ->
+ | Unix.Unix_error (code, api, _param) ->
let err = Unix.error_message code in
None, "Unix Error (" ^ api ^ "): " ^ err
| HMarshal.Corrupt_file fname -> None, sprintf "file '%s' is corrupt" fname
None, "NRefiner uncertain: " ^ snd (Lazy.force msg)
| NCicMetaSubst.Uncertain msg ->
None, "NCicMetaSubst uncertain: " ^ Lazy.force msg
+ | NCicMetaSubst.MetaSubstFailure msg ->
+ None, "NCicMetaSubst failure: " ^ Lazy.force msg
| NCicTypeChecker.TypeCheckerFailure msg ->
None, "NTypeChecker failure: " ^ Lazy.force msg
| NCicTypeChecker.AssertFailure msg ->
| MatitaEngine.TryingToAdd msg ->
None, "Attempt to insert an alias in batch mode: " ^ Lazy.force msg
| MatitaEngine.AlreadyLoaded msg ->
- None, "The file " ^ Lazy.force msg ^ " needs recompilation but it is
- already loaded; undo the inclusion and try again."
+ None, "The file " ^ Lazy.force msg ^ " needs recompilation but it is already loaded; undo the inclusion and try again."
| MatitaEngine.FailureCompiling (filename,exn) ->
None, "Compiling " ^ filename ^ ":\n" ^ snd (to_string exn)
| NCicRefiner.AssertFailure msg ->
loc,
"********** DISAMBIGUATION ERRORS: **********\n" ^
explain (aux errorll)
- | exn -> None, "Uncaught exception: " ^ Printexc.to_string exn
-
+ | exn -> None, ("Uncaught exception: " ^ Printexc.to_string exn ^ Printexc.get_backtrace ()))
+ with exn ->
+ None, ("Exception raised during pretty-printing of an exception: " ^
+ snd (to_string exn))