Commit Graph

27 Commits

Author SHA1 Message Date
Daniel Matichuk cccb7033b8 lib/apply_debug: show protected subgoals
This overrides the default proof state printing function to also
show any subgoals which have been hidden (protected).

This makes proof states shown during apply_debug more
comprehensible.
2017-04-06 12:11:54 +10:00
Daniel Matichuk cbff0aa5ec apply_debug: avoid hanging in batch mode 2017-02-24 13:32:59 +11:00
Daniel Matichuk 08a2bbf1e1 apply_debug: added "show_running" flag
Default behaviour now doesn't mark up the currently
running method - this seemed too confusing.
2017-02-15 15:00:23 +11:00
Daniel Matichuk be014b29bb apply_debug: hilight calling method
Both the breakpoint and "calling" method from
the original expression are highlighted as the breakpoint.

Note jEdit doesn't seem to highlight across theories (buffers?)
2017-02-15 15:00:23 +11:00
Daniel Matichuk ced7e45ad4 apply_debug: use entity markup from Isabelle2016-1
This makes use of modern dynamic markup so that
clicking on a "continue" can show us the current
breakpoint without needed strange proof state print
hacks.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 82d2d945af apply_debug: remove per-continue flags
The implementation here was too messy for such an
esoteric feature.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 8ec025de01 apply_debug: hack max_threads to avoid scheduling issues
I can't figure out how to keep the cleanup phase of the
Executions module while circumventing the scheduling limitation
imposed by max_threads.

This workaround just keeps max_threads high enough to schedule the threads needed
by all active apply_debug sessions.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 8fdd5d3ac8 apply_debug: more robust fact binding for break method 2017-02-15 15:00:23 +11:00
Daniel Matichuk ebc81dd770 apply_debug: fix match issue
add testing file
2017-02-15 15:00:23 +11:00
Daniel Matichuk b8858709f5 apply_debug: make "break" syntax to capture tokens
This avoids mandatory "bounds" and lets break highlighting occur
inside of matches/eisbach methods
2017-02-15 15:00:23 +11:00
Daniel Matichuk 2d04efbb38 apply_debug: bind Eisbach context during break
This requires a few tricks, since this isn't readily available.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 905f8e6f49 apply_debug: discard context modifications
Demotes "break" to a regular tactic, simplifying its integration with other tools
2017-02-15 15:00:23 +11:00
Daniel Matichuk c786015801 apply_debug: avoid hacks in evaluation markup
Fixed issue where match was executed in closure state
2017-02-15 15:00:23 +11:00
Daniel Matichuk 2b94552d28 apply_debug: clear initial dependencies for trace 2017-02-15 15:00:23 +11:00
Daniel Matichuk 49d3f643c4 apply_debug: allow tags/trace in either order 2017-02-15 15:00:23 +11:00
Daniel Matichuk 1c7f5cfeca apply_debug: integrate apply_trace
New "trace" modifier lets you trace between continues
2017-02-15 15:00:23 +11:00
Daniel Matichuk 3fdbc1fb23 apply_debug: use one less thread
Naive use of futures/forking causes apply_debug to block if
not enough threads are available.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 7250bd1a54 apply_debug: add "wp" breakpoint
Lift low-level wp tactic into context_tactic to support
breakpoints modifying context (i.e. wp set)
2017-02-15 15:00:23 +11:00
Daniel Matichuk f3d3162fb0 apply_debug: cleanup test code 2017-02-15 15:00:23 +11:00
Daniel Matichuk 3d81f2ad97 apply_debug: allow per-continue tags 2017-02-15 15:00:23 +11:00
Daniel Matichuk 541f289916 apply_debug: add method-based breakpoint filtering
Also fix breakpoint hilights to work when no subgoals are present
2017-02-15 15:00:23 +11:00
Daniel Matichuk e5c74668de apply_debug: support break tags
Only trigger breakpoints based on active tags
2017-02-15 15:00:23 +11:00
Daniel Matichuk 3bc3581f51 apply_debug: hilight active breakpoint, cleanup
Inject a dummy print translation to guess which breakpoint is being looked at.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 97c8619424 apply_debug: capture execution errors
- Avoid throwing exceptions on the proof thread, instead defer it to the final slot

- Manage current-method markup with extra thread, this properly clears on proof thread restarts
2017-02-15 15:00:23 +11:00
Daniel Matichuk 95742d0581 apply_debug: more synchronization issues
- Avoid starting the restart-managing thread until we have the first result.
- Fix accidental immediate restart.
- Better generational tracking to avoid stale threads manipulating the current
proof thread.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 8a6350fa3f apply_debug: fix some synchronization issues
Generational tracking of tactic excursions and restarts
should block until previous results have been processed
2017-02-15 15:00:23 +11:00
Daniel Matichuk 21bd775bc0 apply_debug: add support for method re-play
This allows for execution to restart and re-play up
to the current "continue", regardless of whether or not
the overall execution has moved past it.
2017-02-15 15:00:23 +11:00