equal
deleted
inserted
replaced
293 | exn_msg _ exn = General.exnMessage exn; |
293 | exn_msg _ exn = General.exnMessage exn; |
294 |
294 |
295 in |
295 in |
296 |
296 |
297 fun exn_message exn = exn_msg (! debug) exn; |
297 fun exn_message exn = exn_msg (! debug) exn; |
298 |
298 fun print_exn (exn, s) = Output.error_msg (cat_lines [exn_message exn, s]); |
299 fun print_exn NONE = () |
|
300 | print_exn (SOME (exn, s)) = Output.error_msg (cat_lines [exn_message exn, s]); |
|
301 |
299 |
302 end; |
300 end; |
303 |
301 |
304 |
302 |
305 (* controlled execution *) |
303 (* controlled execution *) |
768 fun >> tr = |
766 fun >> tr = |
769 (case apply true tr (get_state ()) of |
767 (case apply true tr (get_state ()) of |
770 NONE => false |
768 NONE => false |
771 | SOME (state', exn_info) => |
769 | SOME (state', exn_info) => |
772 (global_state := (state', exn_info); |
770 (global_state := (state', exn_info); |
773 print_exn exn_info; |
771 (case exn_info of |
|
772 NONE => () |
|
773 | SOME err => setmp_thread_properties tr print_exn err); |
774 true)); |
774 true)); |
775 |
775 |
776 fun >>> [] = () |
776 fun >>> [] = () |
777 | >>> (tr :: trs) = if >> tr then >>> trs else (); |
777 | >>> (tr :: trs) = if >> tr then >>> trs else (); |
778 |
778 |