src/Pure/PIDE/document.ML
Fri, 02 Aug 2013 16:00:14 +0200 wenzelm support print functions with explicit arguments, as provided by overlays;
Fri, 02 Aug 2013 14:26:09 +0200 wenzelm maintain overlays within node perspective;
Wed, 31 Jul 2013 12:46:53 +0200 wenzelm simplified / clarified execution priority: auto prints << 0, proofs < 0, eval = 0, print_state = 1;
Wed, 31 Jul 2013 12:14:13 +0200 wenzelm allow explicit indication of required node: full eval, no prints;
Tue, 30 Jul 2013 18:19:16 +0200 wenzelm recovered delay for Document.start_execution (see also 627fb639a2d9), which potentially improves throughput when many consecutive edits arrive;
Tue, 30 Jul 2013 16:22:07 +0200 wenzelm more timing;
Tue, 30 Jul 2013 16:01:19 +0200 wenzelm more timing;
Tue, 30 Jul 2013 11:38:43 +0200 wenzelm de-assign execs that were not registered as running yet -- observe change of perspective more thoroughly;
Mon, 29 Jul 2013 19:55:38 +0200 wenzelm traverse node on change of "required" state;
Mon, 29 Jul 2013 18:59:58 +0200 wenzelm keep memo_exec execution running, which is important to cancel goal forks eventually;
Mon, 29 Jul 2013 16:52:04 +0200 wenzelm maintain explicit execution frontier: avoid conflict with former task via static dependency;
Mon, 29 Jul 2013 15:59:47 +0200 wenzelm clarified conditions for node traversal;
Mon, 29 Jul 2013 15:20:02 +0200 wenzelm tuned;
Mon, 29 Jul 2013 13:24:15 +0200 wenzelm discontinued notion of "stable" result -- running execution is never canceled;
Sat, 20 Jul 2013 16:29:06 +0200 wenzelm document update at high priority -- important;
Sat, 20 Jul 2013 16:27:55 +0200 wenzelm option editor_execution_priority;
Mon, 15 Jul 2013 10:25:35 +0200 wenzelm more careful termination of removed execs, leaving running execs undisturbed;
Fri, 12 Jul 2013 12:04:16 +0200 wenzelm clarified execution: maintain running execs only, check "stable" separately via memo (again);
Fri, 12 Jul 2013 11:28:03 +0200 wenzelm tuned signature;
Fri, 12 Jul 2013 11:07:02 +0200 wenzelm clarified module name;
Thu, 11 Jul 2013 23:24:40 +0200 wenzelm more explicit type Exec.context;
Thu, 11 Jul 2013 18:41:05 +0200 wenzelm strictly monotonic Document.update: avoid disruptive cancel_execution, merely discontinue_execution and cancel/terminate old execs individually;
Thu, 11 Jul 2013 16:26:14 +0200 wenzelm more abstract types;
Thu, 11 Jul 2013 16:01:48 +0200 wenzelm tuned;
Thu, 11 Jul 2013 14:42:11 +0200 wenzelm global management of command execution fragments;
Thu, 11 Jul 2013 12:28:24 +0200 wenzelm fully synchronized guard of running execution;
Thu, 11 Jul 2013 11:37:06 +0200 wenzelm re-assign prints of unchanged eval only -- avoid crash of new_exec;
Thu, 11 Jul 2013 11:09:23 +0200 wenzelm tuned -- refrain from odd optimization;
Thu, 11 Jul 2013 10:43:53 +0200 wenzelm tuned;
Wed, 10 Jul 2013 12:33:28 +0200 wenzelm tuned start_execution: avoid sleep on worker thread;
Wed, 10 Jul 2013 11:26:55 +0200 wenzelm clarified Command.print: update old prints here;
Tue, 09 Jul 2013 23:49:19 +0200 wenzelm produce print_execs assignment earlier during last_common phase (referring to current command_id, not prev);
Tue, 09 Jul 2013 17:58:38 +0200 wenzelm more formal type assign_update: avoid duplicate results and redundant update of global State.execs;
Fri, 05 Jul 2013 22:58:24 +0200 wenzelm tuned signature;
Fri, 05 Jul 2013 18:37:44 +0200 wenzelm tuned signature;
Fri, 05 Jul 2013 17:09:28 +0200 wenzelm clarified type Command.eval;
Fri, 05 Jul 2013 16:22:28 +0200 wenzelm tuned signature;
Fri, 05 Jul 2013 15:38:03 +0200 wenzelm explicit module Document_ID as source of globally unique identifiers across ML/Scala;
Thu, 04 Jul 2013 23:51:47 +0200 wenzelm separate exec_id assignment for Command.print states, without affecting result of eval;
Thu, 04 Jul 2013 16:04:53 +0200 wenzelm more Command.memo operations;
Thu, 04 Jul 2013 11:55:45 +0200 wenzelm made SML/NJ happy;
Wed, 03 Jul 2013 22:30:33 +0200 wenzelm more print function parameters;
Wed, 03 Jul 2013 21:55:15 +0200 wenzelm tuned;
Wed, 03 Jul 2013 21:38:10 +0200 wenzelm discontinued odd workaround for some old Poly/ML, which is still supported but of little practical relevance;
Wed, 03 Jul 2013 21:32:58 +0200 wenzelm tuned;
Wed, 03 Jul 2013 17:50:47 +0200 wenzelm allow multiple print functions;
Wed, 03 Jul 2013 16:58:35 +0200 wenzelm tuned signature;
Wed, 03 Jul 2013 16:19:57 +0200 wenzelm tuned signature;
Wed, 03 Jul 2013 15:19:36 +0200 wenzelm tuned;
Wed, 27 Feb 2013 16:27:44 +0100 wenzelm discontinued obsolete header "files" -- these are loaded explicitly after exploring dependencies;
Wed, 27 Feb 2013 12:45:19 +0100 wenzelm discontinued obsolete 'uses' within theory header;
Sun, 24 Feb 2013 17:29:55 +0100 wenzelm simplified Outer_Syntax.read_span: internalized Toplevel.is_ignored;
Sun, 13 Jan 2013 19:45:32 +0100 wenzelm more sensible order of theory nodes (correspondance to Scala version), e.g. relevant to theory progress;
Sun, 25 Nov 2012 19:49:24 +0100 wenzelm Isabelle-specific implementation of quasi-abstract markup elements -- back to module arrangement before d83797ef0d2d;
Thu, 18 Oct 2012 12:00:27 +0200 wenzelm more official Future.terminate;
Wed, 05 Sep 2012 20:54:40 +0200 wenzelm eliminated potentially confusing terminology of Scala "layer";
Sun, 02 Sep 2012 14:02:05 +0200 wenzelm maintain stable state of node entries from last round -- bypass slightly different Thm.join_theory_proofs;
Sat, 01 Sep 2012 19:27:28 +0200 wenzelm central management of forked goals wrt. transaction id;
Thu, 30 Aug 2012 21:23:04 +0200 wenzelm refined treatment of forked proofs at transaction boundaries, including proof commands (see also 7ee000ce5390);
Thu, 30 Aug 2012 19:18:49 +0200 wenzelm some support for registering forked proofs within Proof.state, using its bottom context;
Thu, 30 Aug 2012 16:39:50 +0200 wenzelm tuned signature;
Sun, 26 Aug 2012 21:46:50 +0200 wenzelm theory def/ref position reports, which enable hyperlinks etc.;
Fri, 24 Aug 2012 12:35:39 +0200 wenzelm check side-comments of command spans (normally filtered out in Outer_Syntax.toplevel_source);
Sat, 11 Aug 2012 19:34:36 +0200 wenzelm vacuous execution after first malformed command;
Fri, 10 Aug 2012 15:14:45 +0200 wenzelm apply all text edits to each node, before determining the resulting doc_edits -- allow several iterations to consolidate spans etc.;
Fri, 27 Jul 2012 20:54:01 +0200 wenzelm even more permissive approximation of master_dir, which is only required to access external resources ('uses' etc.);
Tue, 07 Aug 2012 15:01:48 +0200 wenzelm simplified Document.Node.Header -- internalized errors;
Fri, 20 Apr 2012 23:16:46 +0200 wenzelm improved interleaving of start_execution vs. cancel_execution of the next update;
Fri, 20 Apr 2012 22:48:48 +0200 wenzelm always revisit nodes independently of "required" flag, which may change during editing -- avoid "bloodbath effect" when changing perspective while loading;
Fri, 20 Apr 2012 22:51:06 +0200 wenzelm tuned;
Fri, 20 Apr 2012 20:21:22 +0200 wenzelm builtin timing for main operations;
Wed, 11 Apr 2012 14:20:51 +0200 wenzelm tuned;
Wed, 11 Apr 2012 11:44:21 +0200 wenzelm just one dedicated execution per document version -- NB: non-monotonicity of cancel always requires fresh update;
Tue, 10 Apr 2012 20:42:17 +0200 wenzelm tuned future priorities: print 0, goal ~1, execute ~2;
Mon, 09 Apr 2012 20:42:05 +0200 wenzelm more explicit last exec result;
Mon, 09 Apr 2012 19:50:04 +0200 wenzelm dynamic propagation of node "updated" status, which is required to propagate edits and re-assigments and allow direct memo_result;
Mon, 09 Apr 2012 17:38:39 +0200 wenzelm tuned;
Mon, 09 Apr 2012 17:22:23 +0200 wenzelm simplified Future.cancel/cancel_group (again) -- running threads only;
Sat, 07 Apr 2012 19:28:44 +0200 wenzelm added static command status markup, to emphasize accepted but unassigned/unparsed commands (notably in overview panel);
Sat, 07 Apr 2012 16:41:59 +0200 wenzelm explicit checks stable_finished_theory/stable_command allow parallel asynchronous command transactions;
Fri, 06 Apr 2012 23:34:38 +0200 wenzelm discontinued obsolete last_execs (cf. cd3ab7625519);
Fri, 06 Apr 2012 12:02:24 +0200 wenzelm stop node execution at first unassigned exec;
Fri, 06 Apr 2012 11:49:08 +0200 wenzelm discontinued Document.update_perspective side-entry (cf. 546adfa8a6fc) -- NB: re-assignment is always necessary due to non-monotonic cancel_execution;
Thu, 05 Apr 2012 22:33:52 +0200 wenzelm more scalable execute/update: avoid redundant traversal of invisible/finished nodes;
Thu, 05 Apr 2012 14:34:54 +0200 wenzelm less ambitious memo_eval, since memo_result is still not robust here;
Thu, 05 Apr 2012 14:14:51 +0200 wenzelm less aggressive discontinue_execution before document update, to avoid unstable execs that need to be re-assigned;
Thu, 05 Apr 2012 13:01:54 +0200 wenzelm more explicit memo_eval vs. memo_result, to enforce bottom-up execution;
Thu, 05 Apr 2012 11:58:46 +0200 wenzelm Command.memo including physical interrupts (unlike Lazy.lazy);
Thu, 05 Apr 2012 10:45:53 +0200 wenzelm tuned;
Wed, 04 Apr 2012 21:03:30 +0200 wenzelm tuned -- NB: get_theory still needs to apply Lazy.force due to interrupt instabilities;
Wed, 04 Apr 2012 14:19:47 +0200 wenzelm separate module for prover command execution;
Wed, 04 Apr 2012 14:00:47 +0200 wenzelm tuned;
Tue, 20 Mar 2012 18:01:34 +0100 wenzelm minimalistic support for remote URLs: no master dir here;
Fri, 16 Mar 2012 13:05:30 +0100 wenzelm define keywords early when processing the theory header, before running the body commands;
Thu, 15 Mar 2012 22:08:53 +0100 wenzelm declare command keywords via theory header, including strict checking outside Pure;
Thu, 15 Mar 2012 17:40:26 +0100 wenzelm declare keywords as side-effect of header edit;
Thu, 15 Mar 2012 00:10:45 +0100 wenzelm some support for outer syntax keyword declarations within theory header;
Tue, 13 Mar 2012 21:17:37 +0100 wenzelm clarified command state -- markup within proper_range, excluding trailing whitespace;
Mon, 12 Mar 2012 17:27:52 +0100 wenzelm refined define_command vs. run_command: static tokenization vs. dynamic parsing, to increase the chance that the proper transaction is run after redefining commands (NB: requires slightly more space and time for document state);
Thu, 01 Mar 2012 11:28:33 +0100 wenzelm clarified document nodes (full import graph) vs. node_status (non-preloaded theories);
Tue, 29 Nov 2011 21:50:00 +0100 wenzelm clarified Time vs. Timing;
Mon, 28 Nov 2011 22:05:32 +0100 wenzelm separate module for concrete Isabelle markup;
Sun, 18 Sep 2011 19:49:35 +0200 wenzelm explicit master_dir as part of header -- still required (for Cygwin) since Scala layer does not pass file content yet;
Wed, 07 Sep 2011 21:31:50 +0200 wenzelm no print_state for final proof commands, which return to theory state;
Sat, 03 Sep 2011 19:47:31 +0200 wenzelm discontinued predefined empty command (obsolete!?);
Sat, 03 Sep 2011 19:39:16 +0200 wenzelm discontinued global execs: store exec value directly within entries;
Sat, 03 Sep 2011 18:08:09 +0200 wenzelm Document.remove_versions on ML side;
Fri, 02 Sep 2011 21:06:05 +0200 wenzelm less agressive parsing of commands (priority ~1);
Fri, 02 Sep 2011 15:21:40 +0200 wenzelm more precise iterate_entries_after if start refers to last entry;
Fri, 02 Sep 2011 11:52:13 +0200 wenzelm clarified define_command: store name as structural information;
Thu, 01 Sep 2011 23:08:42 +0200 wenzelm amended last_common, if that happens to the very last entry (important to load HOL/Auth, for example);
Thu, 01 Sep 2011 11:33:44 +0200 wenzelm more careful treatment of interrupts, to retain them within forked/joined boundary of command transactions;
Wed, 31 Aug 2011 20:32:24 +0200 wenzelm explicit running_color;
Wed, 31 Aug 2011 19:52:13 +0200 wenzelm tuned join_commands: avoid traversing cumulative table;
Sat, 27 Aug 2011 13:26:06 +0200 wenzelm more precise treatment of nodes that are fully required for partially visible ones;
Fri, 26 Aug 2011 21:27:58 +0200 wenzelm tuned signature -- iterate subsumes both fold and get_first;
Fri, 26 Aug 2011 21:18:42 +0200 wenzelm further clarification of Document.updated, based on last_common and after_entry;
Fri, 26 Aug 2011 16:06:58 +0200 wenzelm tuned signature;
Fri, 26 Aug 2011 15:56:30 +0200 wenzelm improved Document.edit: more accurate update_start and no_execs;
Fri, 26 Aug 2011 15:09:54 +0200 wenzelm refined document state assignment: observe perspective, more explicit assignment message;
Thu, 25 Aug 2011 19:12:58 +0200 wenzelm tuned signature -- emphasize traditional read/eval/print terminology, which is still relevant here;
Thu, 25 Aug 2011 16:44:06 +0200 wenzelm propagate information about last command with exec state assignment through document model;
Wed, 24 Aug 2011 17:25:45 +0200 wenzelm misc tuning and simplification;
Wed, 24 Aug 2011 17:16:48 +0200 wenzelm tuned pri: prefer purging of canceled execution;
Wed, 24 Aug 2011 17:14:31 +0200 wenzelm tuned Document.node: maintain "touched" flag to indicate changes in entries etc.;
Wed, 24 Aug 2011 15:55:43 +0200 wenzelm misc tuning and simplification;
Wed, 24 Aug 2011 15:30:43 +0200 wenzelm ignore irrelevant timings;
Wed, 24 Aug 2011 13:40:10 +0200 wenzelm print state only for visible command, to avoid wasting resources for the larger part of the text;
Wed, 24 Aug 2011 13:03:39 +0200 wenzelm update_perspective without actual edits, bypassing the full state assignment protocol;
Tue, 23 Aug 2011 21:19:24 +0200 wenzelm tuned;
Tue, 23 Aug 2011 15:48:41 +0200 wenzelm some support for toplevel printing wrt. editor perspective (still inactive);
Tue, 23 Aug 2011 12:20:12 +0200 wenzelm propagate editor perspective through document model;
Mon, 22 Aug 2011 21:42:02 +0200 wenzelm some support for editor perspective;
Sat, 20 Aug 2011 23:35:30 +0200 wenzelm refined Graph implementation: more abstract/scalable Graph.Keys instead of plain lists -- order of adjacency is now standardized wrt. Key.ord;
Sat, 20 Aug 2011 15:52:29 +0200 wenzelm added Future.joins convenience;
Fri, 19 Aug 2011 18:01:23 +0200 wenzelm tuned;
Fri, 19 Aug 2011 17:39:37 +0200 wenzelm tuned signature (again);
Fri, 19 Aug 2011 16:13:26 +0200 wenzelm tuned signature -- treat structure Task_Queue as private to implementation;
Fri, 19 Aug 2011 15:56:26 +0200 wenzelm refined Future.cancel: explicit future allows to join actual cancellation;
Thu, 18 Aug 2011 18:07:40 +0200 wenzelm more precise treatment of exception nesting and serial numbers;
Thu, 18 Aug 2011 17:53:32 +0200 wenzelm more careful treatment of exception serial numbers, with propagation to message channel;
Wed, 17 Aug 2011 22:14:22 +0200 wenzelm more systematic handling of parallel exceptions;
Tue, 16 Aug 2011 23:17:26 +0200 wenzelm workaround for Cygwin, to make it work in the important special case without extra files;
Tue, 16 Aug 2011 21:50:53 +0200 wenzelm more robust treatment of node dependencies in incremental edits;
Tue, 16 Aug 2011 21:13:52 +0200 wenzelm use full .thy file name as node name, which makes MiscUtilities.resolveSymlinks/File.getCanonicalPath more predictable;
Mon, 15 Aug 2011 21:54:32 +0200 wenzelm touch descendants of edited nodes;
Mon, 15 Aug 2011 21:05:30 +0200 wenzelm parellel scheduling of node edits and execution;
Mon, 15 Aug 2011 20:38:16 +0200 wenzelm tuned error message;
Mon, 15 Aug 2011 20:19:41 +0200 wenzelm retrieve imports from document state, with fall-back on theory loader for preloaded theories;
Mon, 15 Aug 2011 19:27:55 +0200 wenzelm explicit check of finished evaluation;
Mon, 15 Aug 2011 16:38:42 +0200 wenzelm refined Document.edit: less stateful update via Graph.schedule;
Mon, 15 Aug 2011 14:54:36 +0200 wenzelm simplified exec: eliminated unused status flag;
Sat, 13 Aug 2011 20:41:29 +0200 wenzelm simplified Toplevel.init_theory: discontinued special master argument;
Sat, 13 Aug 2011 20:20:36 +0200 wenzelm provide node header via Scala layer;
Sat, 13 Aug 2011 15:59:26 +0200 wenzelm clarified node header -- exclude master_dir;
Sat, 13 Aug 2011 13:42:35 +0200 wenzelm maintain node header;
Fri, 12 Aug 2011 15:28:30 +0200 wenzelm clarified document model header: master_dir (native wrt. editor, potentially URL) and node_name (full canonical path);
Thu, 11 Aug 2011 20:32:44 +0200 wenzelm uniform treatment of header edits as document edits;
Thu, 11 Aug 2011 18:01:28 +0200 wenzelm explicit datatypes for document node edits;
Wed, 10 Aug 2011 16:05:14 +0200 wenzelm future_job: explicit indication of interrupts;
Mon, 11 Jul 2011 22:55:47 +0200 wenzelm tuned signature -- corresponding to Scala version;
Sun, 10 Jul 2011 00:21:19 +0200 wenzelm propagate header changes to prover process;
Fri, 08 Jul 2011 22:00:53 +0200 wenzelm moved global state to structure Document (again);
Tue, 05 Jul 2011 20:36:49 +0200 wenzelm get theory from last executation state;
Tue, 05 Jul 2011 11:45:48 +0200 wenzelm clarified cancel_execution/await_cancellation;
Sat, 02 Jul 2011 20:22:02 +0200 wenzelm tuned;
Mon, 11 Apr 2011 17:23:20 +0200 wenzelm more permissive run_command: identity execution for empty toplevel, e.g. after malformed theory header;
Sun, 20 Mar 2011 21:28:11 +0100 wenzelm structure Timing: covers former start_timing/end_timing and Output.timeit etc;
Mon, 31 Jan 2011 23:02:53 +0100 wenzelm tuned signature;
Mon, 31 Jan 2011 22:57:01 +0100 wenzelm support named tasks, for improved tracing;
Mon, 31 Jan 2011 21:54:49 +0100 wenzelm more direct Future.bulk, which potentially reduces overhead for Par_List;
Thu, 27 Jan 2011 12:24:00 +0100 wenzelm cancel document execution before editing, to improve reactivity on systems with few cores;
Tue, 25 Jan 2011 21:26:25 +0100 wenzelm singleton (sequential) execution, to avoid race conditions in theory loader state (e.g. when multiple independent theories import the same theory);
Tue, 25 Jan 2011 20:06:32 +0100 wenzelm workaround for odd x86_64 problem in Poly/ML 5.4.0 (actually SVN 1151?), which causes unexpected nontermination of Isabelle/Scala document editing;
Thu, 13 Jan 2011 17:39:35 +0100 wenzelm full theory path enables loading parents via master directory and keeps files strictly separate;
Sun, 14 Nov 2010 14:05:08 +0100 wenzelm clarified interact/print state: proof commands are treated as in TTY mode to get full response;
Sat, 13 Nov 2010 21:46:24 +0100 wenzelm always print state of proof commands (notably "qed" etc.);
Sat, 13 Nov 2010 11:41:02 +0100 wenzelm await_cancellation in the main thread, independently of the execution futures, which might get interrupted or be absent after node deletetion;
Thu, 11 Nov 2010 19:58:07 +0100 wenzelm more precise treatment of deleted nodes;
Tue, 09 Nov 2010 21:44:19 +0100 wenzelm added general Synchronized.counter convenience;
Sat, 06 Nov 2010 20:59:59 +0100 wenzelm continue after failed commands;
Sat, 06 Nov 2010 16:31:35 +0100 wenzelm explicit "timing" status for toplevel transactions;
Sat, 06 Nov 2010 16:03:49 +0100 wenzelm tuned;
Wed, 15 Sep 2010 16:06:52 +0200 wenzelm Document.async_state: some attempts to make this more robust wrt. cancelation of the main transaction -- avoid confusing feedback about pending forks;
Thu, 09 Sep 2010 18:21:06 +0200 wenzelm refined Runtime.toplevel_error/Document.run_command: let interrupts pass unhindered;
Thu, 09 Sep 2010 17:20:27 +0200 wenzelm more abstract treatment of interrupts in structure Exn -- hardly ever need to mention Interrupt literally;
Tue, 31 Aug 2010 23:46:49 +0200 wenzelm moved Toplevel.run_command to Pure/PIDE/document.ML;
Mon, 30 Aug 2010 14:56:27 +0200 wenzelm tuned;
Tue, 17 Aug 2010 15:54:04 +0200 wenzelm tune;
Tue, 17 Aug 2010 15:10:49 +0200 wenzelm added functor Linear_Set, based on former adhoc structures in document.ML;
Sun, 15 Aug 2010 20:13:07 +0200 wenzelm document commands: maintain transition as future (wrt. potentially slow Outer_Syntax.prepare_command), refrain from second Toplevel.put_id;
Sun, 15 Aug 2010 19:30:11 +0200 wenzelm renamed create_id to new_id;
Sun, 15 Aug 2010 18:41:23 +0200 wenzelm more explicit / functional ML version of document model;
Sat, 14 Aug 2010 22:45:23 +0200 wenzelm more basic Markup.parse_int/print_int (using signed_string_of_int) (ML);
Sat, 14 Aug 2010 11:52:24 +0200 wenzelm tuned;
Thu, 12 Aug 2010 15:19:11 +0200 wenzelm clarified "state" (accumulated data) vs. "exec" (execution that produces data);
Wed, 11 Aug 2010 22:41:26 +0200 wenzelm represent document ids by (long) int, to benefit from the somewhat faster Inttab in ML (LinearSet in Scala is invariably indexed by native object ids);
Thu, 05 Aug 2010 14:35:35 +0200 wenzelm simplified/refined document model: collection of named nodes, without proper dependencies yet;
less more (0) tip