src/Pure/Tools/build.ML
changeset 59369 7090199d3f78
parent 59368 100db5cf5be5
child 59445 2c27c3d1fd3b
equal deleted inserted replaced
59368:100db5cf5be5 59369:7090199d3f78
   172       let
   172       let
   173         val theories =
   173         val theories =
   174           YXML.parse_body theories_yxml |>
   174           YXML.parse_body theories_yxml |>
   175             let open XML.Decode
   175             let open XML.Decode
   176             in list (pair Options.decode (list (string #> rpair Position.none))) end;
   176             in list (pair Options.decode (list (string #> rpair Position.none))) end;
   177         val result =
   177         val res1 =
   178           Exn.capture (fn () =>
   178           Exn.capture (fn () =>
   179             theories |> List.app (build_theories (K NONE) (Path.explode master_dir))) ();
   179             theories |> List.app (build_theories (K NONE) (Path.explode master_dir))) ();
   180         val ok =
   180         val res2 = Exn.capture Session.shutdown ();
   181           (case result of
   181         val result =
   182             Exn.Res _ => true
   182           (Par_Exn.release_all [res1, res2]; "") handle exn =>
   183           | Exn.Exn exn => (Runtime.exn_error_message exn; false));
   183             (Runtime.exn_message exn handle _ (*sic!*) =>
   184     in Output.protocol_message (Markup.build_theories_result id ok) [] end);
   184               "Exception raised, but failed to print details!");
       
   185     in Output.protocol_message (Markup.build_theories_result id) [result] end);
   185 
   186 
   186 end;
   187 end;