[isabelle-dev] Reprocessing in Isabelle/jEdit

Makarius makarius at sketis.net
Wed Mar 25 00:00:44 CET 2015


On Tue, 24 Mar 2015, Jasmin Blanchette wrote:

> When editing inside Isabelle/jEdit (f19f4afa49e2), it used to be so that 
> everything above was left alone. Now, if I edit a lemma in the middle of 
> the window, everything above it that is visible gets reprocessed.

This is certainly bad.  Strange that it did not show up earlier: bisection 
shows it is from 12 days ago:

The first bad revision is:
changeset:   59678:86a76300137e
user:        wenzelm
date:        Thu Mar 12 20:34:08 2015 +0100
summary:     clarified command content;

When doing this I was aware of the importance of proper command comparison 
for the editing process, but got it wrong nonetheless due to weakly-typed 
equality in Java/Scala!  I stared a long time at the sources, without 
seeing it -- I am used to think in strongly-typed ML.

This lapse is now addressed in the subsequent change:

changeset:   59801:88a89f01fc27
user:        wenzelm
date:        Tue Mar 24 23:37:05 2015 +0100
files:       src/Pure/Thy/thy_syntax.scala
description:
proper comparison of blobs_info (amending illtyped equality from 86a76300137e) -- avoid redundant update of unchanged commands;

--- a/src/Pure/Thy/thy_syntax.scala	Tue Mar 24 21:54:25 2015 +0100
+++ b/src/Pure/Thy/thy_syntax.scala	Tue Mar 24 23:37:05 2015 +0100
@@ -147,8 +147,8 @@
      : (List[Command], List[(Command.Blobs_Info, Command_Span.Span)]) =
    {
      (cmds, blobs_spans) match {
-      case (cmd :: cmds, (blobs, span) :: rest) if cmd.blobs == blobs && cmd.span == span =>
-        chop_common(cmds, rest)
+      case (cmd :: cmds, (blobs_info, span) :: rest)
+      if cmd.blobs_info == blobs_info && cmd.span == span => chop_common(cmds, rest)
        case _ => (cmds, blobs_spans)
      }
    }


 	Makarius



More information about the isabelle-dev mailing list