Since writing this, we have discovered that macros can live in arbitrary
hierarchies inside the macros folder, e.g. jedit/macros/Isabelle/, which
then show up in the macros menu. Very nice. Installation instructions
updated.
* commit '84e5f7d81403549f9d88fab3bf0da02b657f47bc':
regression: change CPU time non-mono from an error to a warning, so that it doesn't kill an otherwise working build.
style: regression: refactor use of print_test_line.
regression: report CPU usage; support timeouts based on CPU usage.
* commit 'af60787317365e05fe03df3d98a41fe9b8740b04':
various scripts: use print_function uniformly for python3 compat
regression: decode test output immediately
regression: python3 compat, use byte literals where bytes are expected
regression: python3 compat, Queue -> queue
Some tests had timeouts of up to 4 hours. Note that timeouts are
applied on a per-test basis, not per-testsuite. This is now clarified
in the tests.xml documentation.
This commit resurrects some bitrotted support for generating apply-style proofs
from Python. It is somewhat incomplete and untested, but can serve to make
template proofs much more readable.
This change means we no longer need to manually update these files when
Isabelle incorporates new unicode symbols. In particular, these translators
will automatically gain support for symbols like "\<longlonglongrightarrow>"
when we move to Isabelle 2016.
Inline code from a Markdown source (`like this`) is typically translated
without the assistance of Pygments. As a result we don't get automatic
subscript and superscript support, and need to roll our own. This translation
is pretty blunt and fragile. Expect it to fall over in a TeX error if you pass,
e.g., a "\<^bsub>" without a closing "\<^esub>".
You probably do *not* want to use this functionality to go straight from THY
files to TeX. The motivation for this is translating inline code in Markdown
(`like this`) into something TeX-able. In particular, we assume all relevant
Isabelle styles and preamble are already in scope.
The code points of the xsymbols whose ASCII text begins with "\<^" appear to be
a ruse. Their unicode characters do not correspond to their intent because
they are actually format markers. For example, "\<^bsub>" maps to something
described as "south east double arrow," but is intended to mean "start
subscript."
It turns out we do not need to encode these at all because a sufficiently
clever Pygments can interpret their ASCII representations. One such clever
instance is [0]. This commit removes encoding of all symbols whose ASCII
representation begins with "\<^" under the assumption they will be handled by a
later tool in your pipeline.
[0]: https://bitbucket.org/lsf37/pygments-main/branch/sub-super
Jumps to first error in current theory file (presumably the currently
focused textArea).
The buffer overview indicates where the error is, but it's hard to go
directly to the offending command, and in large files the overview
buffer doesn't cover the whole file anyway.
The sleep time helps to avoid overloading servers if a bug causes the
script to send emails in an infinite loop. Now that the script has been
running a while and we have a little more confidence in it, we reduce
the timeout to speed up deliveries of email.
Autostop is quite handy for keeping your system under control, but when things
go pear shaped the guidance provided by Linux's OOM score doesn't necessarily
align with what the user cares about. In particular, it can take down parts of
your windowing subsystem or a harmless browser tab going about its business.
This commit adds command line options to give autostop a list of processes
which are the only ones you would like stopped. Existing behaviour remains
unchanged.
When streaming a large theory through these scripts, doing string replacements
line-by-line and repeated dictionary lookups become a significant performance
overhead. Relevant observable functionality should be unaffected by this
change.
Currently, when Ctrl+C is pressed, background "poly" processes often
continue to run, even if "pidspace" is being used. Eeew!
We now make a better attempt at killing our children when Ctrl+C is
pressed. In particular, we use the "psutil" python library instead of
the "timeout" binary. The former should be more portable, working on
MacOS X systems as well.
"psutil" and "pidspace" don't interact well; "psutil" doesn't seem to
find children inside the pidspace, which is problematic. Might need to
address this a little more in the future.
This patch dedicated to Matt.
Due to previous commit, which didn't adjust this line to deal with
the extra parameter in the "results" tuple. A statically-typed
language would have caught this.