[isabelle-dev] Isabelle2013-2 release
Makarius
makarius at sketis.net
Thu Nov 21 15:24:22 CET 2013
On Thu, 21 Nov 2013, Peter Lammich wrote:
> I think that is a clear indication that the status failed can happen
> (stack-overflow, out-of-memory, what-so-ever), and should be displayed
> in isabelle/jEdit!
After diagnosing the problem, I did put a note on my TODO list to make the
status reports more defensive, to allow system disintegration on the ML
side. E.g. the current order of status messages assumes that some later
bits of ML code have a chance to run.
This is just the normal process of continuous convergence of the system
towards an increasingly better state, which is ongoing for some decades
already. (An attempt to "fix" it now will inevitably break other things.)
> ML {*
> fun stack_overflow a = a + 1 + stack_overflow a
> *}
>
> lemma f:False by (tactic {* let val _ = stack_overflow 0 in all_tac
> end*})
>
> ML_val {*
> Thm.peek_status @{thm f}
> *}
The question here is if it is of practical relevance or just a synthetic
example. You could also raise Exn.Interrupt here directly.
The principle that Proof General and Isabelle/jEdit as interactive
front-ends are not required to be fully authentic still applies -- until
there is just one uniform document model for batch and interactive mode,
and no TTY nor Proof General anymore.
If a breakdown happens as easily as editing the text, it is a problem.
If it is merely a conceptual demonstration of breakability, if is not.
Makarius
More information about the isabelle-dev
mailing list