forked from ProofGeneral/PG
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BUGS
88 lines (60 loc) · 3.4 KB
/
BUGS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
-*- outline -*-
* Known Bugs and Workarounds for Proof General.
The bugs here are split into problems which are generic,
and those which only apply to particular provers.
The FAQ mentions other issues which are not necessarily PG bugs.
This list is incomplete and only occasionally updated, please search
on Trac for current issues.
* Reporting bugs
If you have a problem that is not mentioned here, please visit the
Trac at the address above to add a ticket. Please describe your
problem carefully, include a short demonstration file and tell us the
exact version of Emacs and Proof General that you are using.
* General issues
** If the proof assistant goes into a loop displaying lots of information
It may be difficult or impossible to interrupt it, because Emacs
doesn't get a chance to process the C-c C-c keypress or "Stop" button
push (or anything else). In this situation, you will need to send an
interrupt to the (e.g.) Isabelle process from another shell. If that
doesn't stop things, you can try 'kill -FPE <emacs-pid>'.
This problem can happen with looping rewrite rules in the Isabelle
simplifier, when tracing rewriting. It seems to be worse on
certain architectures, and slower machines.
** Glitches in display handling, esp with multiple frames
Unfortunately the handling of the display is very difficult to manage
because the API provided by Emacs is quirky and varies between
versions. If the eager display/tear-down of frames is annoying you,
you may customize the variable `proof-shell-fiddle-frames' to nil to
reduce it a bit. To prevent eagerly displaying new frames at on
starting the shell, you can also add a mode hook to set
`proof-eagerly-raise' e.g.:
(add-hook 'proof-goals-mode-hook
(lambda () (setq proof-eagerly-raise nil)))
(add-hook 'proof-response-mode-hook
(lambda () (setq proof-eagerly-raise nil)))
Generally, the best way of working with multiple frames is to try not
to stop/start the proof assistant too much (this involves killing
buffers, which spoils the frame/buffer correspondence).
** Using C-g can leave script management in a mess (rare).
The code is not fully protected from Emacs interrupts.
Workaround: Don't type C-g while script management is processing.
If you do, use proof-restart-scripting to be sure of synchronizing.
** When proof-rsh-command is set to "ssh host", C-c C-c broken
The whole process may be killed instead of interrupted. This isn't a
bug in Proof General, but the behaviour of ssh. Try using rsh
instead, it is said to forward signals to the remote command.
** In tty mode, the binding C-c C-RET has no effect.
Workaround: manually bind C-c RET to 'proof-goto-point instead.
** Prover does not lock/may not notice dirty files
Files are not locked when they are being read by the prover, so a long
file could be edited and saved as the prover is processing it,
resulting in a loss of synchronization between Emacs and the proof
assistant. Files ought to be coloured red while they are being
processed, just as single lines are. Workaround: be careful not to
edit a file as it is being read by the proof assistant.
* Problems with Coq
** Multiple file handling and auto-compilation is incomplete
** C-c C-a C-i on long intro lines breaks line the wrong way.
** coqtags doesn't find all declarations.
It cannot handle lists e.g., with "Parameter x,y:nat" it only tags x
but not y. Workaround: don't rely too much on the etags mechanism.