aboutsummaryrefslogtreecommitdiffhomepage
path: root/TODO.defunct
diff options
context:
space:
mode:
authorGravatar David Aspinall <da@inf.ed.ac.uk>2004-12-01 22:38:34 +0000
committerGravatar David Aspinall <da@inf.ed.ac.uk>2004-12-01 22:38:34 +0000
commitee9fbb707100dd2e05132c75dc0f8bee26e666bf (patch)
tree1a386905d502f399dd4c557a9507f80cded8c9de /TODO.defunct
parente6afdceb37b938d3d1ba78bdf73ab0d66223b431 (diff)
Renamed file
Diffstat (limited to 'TODO.defunct')
-rw-r--r--TODO.defunct263
1 files changed, 263 insertions, 0 deletions
diff --git a/TODO.defunct b/TODO.defunct
new file mode 100644
index 00000000..4943e3d8
--- /dev/null
+++ b/TODO.defunct
@@ -0,0 +1,263 @@
+-*- mode:outline -*-
+
+* Proof General Defunct List of Things to Do
+
+This is a list of things that fell out of todo. They'll
+probably never be read again, let alone done...
+
+
+
+** Things to do in the generic interface
+
+*** X X-Symbol improvements: see if we can get support for
+ proof-xsym-extra-modes outside PG (just by loading proof-site).
+ Will be handy for Isabelle's .itex Isabelle-LaTeX files.
+ Then we can parameterise more of the xsym support, and
+ remove spurious settings of calculated stuff from
+ x-symbol-isa.el (see FIXME comments in v3.1 there).
+
+*** X X-Symbol improvement: turning it on/off seems to move point.
+
+*** X Why does dired get loaded when PG loads? (Can we speed
+ loading by avoiding a particular function?)
+
+*** X Process handling output.
+ Handling mixtures of urgent and non-urgent messages:
+ at the moment any non-urgent output *before* an urgent
+ message will not be displayed in the response buffer.
+ Accept this as a feature for now.
+
+*** X Internal improvements for marking up proof assistant output.
+ We need a better mechanism for allowing "invisible" mark up
+ of assistant output based on annotations. Present code
+ allows proof-shell-leave-annotations-in-output=t to work
+ together with font-lock to do mark up.
+ Instead we need something more like what enriched-mode does
+ (although I've just tried it and I foound that copying with
+ the mouse ignores the text properties, but copying with the
+ keyboard copies them!). It uses a general library
+ format.el for reading and writing files in multiple formats.
+ This is not quite what we want for our purpose, but it might be a
+ closer approximation than using font-lock-fontify and
+ deleting the special characters. It would allow sgml-like
+ markupo in the future, too.
+ Or maybe w3's code for HTML mark up could be borrowed.
+
+*** X Idea: introduce a dynamic follow mode which follows
+ proof-locked-end rather than proof-queue-or-locked-end.
+ Would be annoying for interactive use though, point would
+ jump from under fingers (although no typing anyway, hardly
+ matters). Alternative is dynamic recenter mode to
+ keep end of locked region in buffer.
+
+*** X Improve goto button image [suggestion from Markus]
+ Is it possible to avoid the arrows to touch in the middle,
+ emphasizing the 'point' a bit more. The arrows look a bit outwards
+ bent, too.
+
+*** X Check compilation okay, check on use of eval-and-compile.
+
+*** X Difference in menubar appearance depending on whether X-Symbol
+ is loaded before Proof General or not.
+
+*** X Update logo to include new "???" prover badge
+ from graphics file elsewhere (da)
+
+*** X bug: outline mode when proof-strict-read-only is nil ought to
+ work, but there may be problems.
+
+*** X CVS repository issues.
+ Where are obsolete 'fileattr' files generated from/maintained?
+ Should junk these (which appear to say that tms is watching everything).
+
+*** X Fixup display problems.
+ The window dedicated stuff is a real pain and I've
+ spent ages inserting workarounds. Why do we want it??
+ The latest problem is that with
+ (setq special-display-regexps
+ (cons "\\*Inferior .*-\\(goals\\|response\\)\\*"
+ special-display-regexps))
+ I get the script buffer made into a dedicated buffer,
+ presumably because the wrong window is selected in
+ proof-display-and-keep-buffer?
+ [da: can't repeat this now, presume it has gone away?]
+
+*** X Add other image sources to images/ directory.
+ Add target to html/images to remove images generated from
+ the image directory.
+
+*** X splash screen: report XEmacs problem of not displaying transparent
+ gif properly.
+
+*** X Allow bib-cite style clicking on Load/Import commands to go
+ to file.
+
+*** X Images for splash screen: could add xpm files for logos
+ so that XEmacs displays transparent parts properly.
+ (Probably not worth effort of distributing more files).
+
+*** X Customization mechanism: is there a way to make saved settings
+ not be overwritten by setq's in the code? Need to think how
+ to do this, something like customize-set-variable-if-unchanged
+ Otherwise no so useful for people to use customize for
+ prover config settings (we'd need to shadow them all again for
+ each assistant for this to work smoothly).
+ Sure sign saving will fail is when you see "this option has
+ been changed outside customization buffer"
+ At the moment even setting config variables in a hook is tricky,
+ because proof-config-done is called before the hook variables for the
+ new mode are. Our new version of define-derived-mode needs
+ to address this.
+
+*** X Proofs in Isabelle scripts can be non-interactive. Non-interactive
+ proofs have only one command, effectively. It might be useful
+ to find a way to integrate these into Proof General nicely.
+
+*** X Code in proof.el assumes all characters with top bit set are special
+ instructions to Emacs. This is rather arrogant, and precludes proof
+ systems which utilize 8-bit character sets! Needs repair. (3h)
+
+*** X Span convenience functions for special 'type property.
+ Could put these in proof.el or somewhere.
+
+*** X Cleanup handling of proof-terminal-string. At the moment some
+ commands need to have the terminal string, some don't.
+ da: I suggest removing proof-terminal-string altogether and
+ adding back the semi-colons or fullstops at the specific level.
+ It's not a big deal and would support other provers which
+ may use a mixture of terminators, or no terminators at all.
+ Wait until it's a problem for somebody.
+ [Trouble with this is that terminators are used for active
+ terminator mode, among several other things]
+
+*** X Functions for next,previous input a la shell mode, but in proof
+ script buffer (5h, da).
+
+*** (defsubst set-span-type-property (span val)
+ "Set type property of SPAN to VAL"
+ (set-span-property span 'type val))
+
+*** (defsubst span-type-property (span)
+ "Get type property of SPAN"
+ (span-property span 'type))
+
+*** etc. (1hr)
+
+*** X Read-only mode of extents sometimes gets in the way: for example,
+ if file changes on disk, can't reload it via usual functions.
+ Can this be improved? Always have to retract first, and that
+ leaves stuff around.
+
+*** X toolbar icons: Automatically generate reduced and
+ pressed/greyed-out versions from gimp xcf files.
+ (1 day's gimp hacking)
+
+*** X Proof General customization: how should it work?
+ Presently we have a bunch of variables in proof.el which are
+ set from a bunch of similarly named variables in <engine>-syntax.el.
+ Seems a bit daft: why not just have the customization in
+ one place, and settings hardwired in <engine>-syntax.el.
+ That way we can see which settings are part of instantiation of
+ proof.el, and which are part of cusomization for <engine>.
+
+*** X Moreover, I think it would be nice to change the architecture
+ to make customization for new provers much easier.
+ The standard use of 'define-derived-mode' could be invoked
+ automatically in proof-site, and we could easily get away from the
+ kludge of proof-config-done and friends.
+ (Compare this to the way font-lock works automatically for XEmacs
+ when the right variable name is set, but for GNU Emacs you have
+ to write something special).
+ The objection to doing this is based on the idea that we should use
+ an object-like inheritance mechanism to define the new modes.
+ But if this is forgone, it might even be possible to add
+ support for new assistants entirely via the customize mechanism,
+ without any knowledge of elisp apart from regular expressions!
+ [see proof-easy-config.el]
+
+*** X Support a history of proof commands, with a "redo" command to
+ redo undo-to-point or sequences of toolbar undo's.
+
+*** X Provers with sophisticated/configurable syntax should tell Emacs
+ about their syntax somehow, rather than trying to duplicate
+ specifications inside Emacs.
+ Maybe some particular ATerm format would help with this?
+
+*** X Comment support is not very generic: we don't support end-of-line
+ terminated comments. Is there any case where this might be
+ worthwhile? (2h to add it).
+
+*** X Make process handling smarter: because Emacs is single-threaded,
+ no process output can be dealt with when we are running some
+ command. This means that it would be safe to extend the
+ red region, by putting more commands on the queue. Also it would
+ be safe to implement a clever undo command which worked on the
+ red region: if there are commands waiting to be processed, we
+ could remove them from the queue. If there are no commands waiting,
+ we have to wait until something becomes blue to undo it by sending
+ a command to the process.
+
+*** X Ideas for efficiency improvements. Rather than repeatedly
+ re-parsing the buffer, we could parse the whole buffer *once*
+ and make adjustments after edits, like font-lock. We could
+ make an extent for every command, and set it to "blue", "red"
+ or "clear" as appropriate. (This would allow proofs to be
+ sent out-of-order to the proof process too, although perhaps
+ that's not so nice).
+ The function proof-segment-up-to could be made to cache its
+ result.
+
+*** X proof-mark-buffer-atomic marks the buffer as only containing
+ comments if the first ACS is a goal-save span. This is however not a
+ problem for LEGO and Isabelle. (30 min)
+
+*** X Add support for XEmacs 21 packaging. Make suitable updates available
+ on web page, and make RPM put things in the right place so no .emacs
+ file may need editing(?). [2 days]
+
+*** X The narrowing issue
+ Code uses (point-min) and (point-max) everywhere.
+ Most primitive functions give error if given arguments outside
+ a restriction. However, most places these are used in PG we really
+ mean the start or end of the buffer (e.g. when parsing).
+ The only way to fix this seems to be with messy
+ (save-restriction (widen) ... sequences.
+
+*** X Solaris bugs: font locking and button enabling.
+
+ [Markus]: I can only produce this problem on Solaris, where we have
+ both a mule and non-mule version of xemacs-21.1.8. On my Linux box
+ at home there is no problem present (using xemacs-21.1.7-mule).
+
+ Note that on the Solaris boxes the problem is already exhibited by
+ visiting a new/empty thy file: buttons are off and are not enabled
+ by typing new stuff.
+
+ Moved down the list now, instead we disable button enablers on
+ Solaris.
+
+*** X Multiple session architecture (difficult)
+
+ With some major re-engineering, PG could be made to work with multiple
+ provers at once, and multiple instances of the same prover.
+
+ Ideas: - introduce "session" notion
+ - have list of current sessions in progress,
+ values of active scripting buffer and other per-session vars
+ for each one
+ - proof shell filter and other functions must automatically
+ switch context to correct session
+ - force everybody to use proof-easy-config macro, and set
+ <prover>-var automatically from <proof>-var there,
+ to get defaults for new sessions.
+
+
+
+** Things to do for Web Pages, Distribution
+
+*** X Convert to SSI only plus a meta-generation phase?
+
+*** X Add status bar messages to navigation bar
+
+*** X Get rid of footer() function.
+