diff options
author | David Aspinall <da@inf.ed.ac.uk> | 2003-02-18 01:10:48 +0000 |
---|---|---|
committer | David Aspinall <da@inf.ed.ac.uk> | 2003-02-18 01:10:48 +0000 |
commit | 0bbc80a7644642118b2ac3cade070c8b028405dc (patch) | |
tree | 8e3055bad5d2733f74fd90b4ec7e7327d0e29996 /etc | |
parent | f9ef1c43eb74fc4ecf235e3f3fb24f5d472be36e (diff) |
New files.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/README.devel | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/etc/README.devel b/etc/README.devel new file mode 100644 index 00000000..b66e857c --- /dev/null +++ b/etc/README.devel @@ -0,0 +1,100 @@ +-*- outline -*- + +* Developers Notes for Proof General +==================================== + +David Aspinall, March 2000. + +$Id$ + +Notes here about development conventions and compatibility +issues. Please read if you contribute to Proof General! + +Please also join the (very low volume) developers mailing +list, see http://www.proofgeneral.org/mailinglist + + +** Project planning + +We don't use any rigorous planning mechanisms, but please use and +maintain the simple "todo" lists. They can include lists of things to +do as well as notes about outstanding bugs, etc. Each item is +classified with a priority. What usually happens is that either +something is fixed quickly, or its priority gradually decreases, +saving much time not implementing unimportant things! + +Items which are based on bug/problem reports by users are given a +higher priority by default (unless to fix them would be unreasonably +difficult). + +In the top-level directory, todo holds the list of things to do in the +generic Elisp basis and for other generic parts of the project. Each +proof assistant then has its own todo file. + + +** Coding Standards + +When writing your modes, please follow the Emacs Lisp Conventions +See the Emacs Lisp reference manual, node Style Tips. + + +** Testing + +Ideally, we would have an automated test suite for Proof General. +Emacs Lisp is certainly flexible to have such a thing, but it would +take some effort to set it up. Although automated tests could test +functions and states for the right values, a user interface ultimately +needs some human checks that visible appearances and user-input behave +as expected. + +At the moment, we rely on the tiny example files included for each +proof system as simple tests that basic scripting works. Additional +test scripts to test parsing complex scripts and tests against +specific fixed bugs are included in etc/<PA>. Multiple file scripting +test cases should also be provided in etc/<PA>. + + +** Standards for each instance of PG + +We include a README file and low-level todo file for each prover. + + +** Using custom library + +Please use the custom library for all variable declarations, apart +from very low-level variables. Follow the customize group conventions +laid out in generic/proof-config.el + + +** Compatibility with different Emacsen + +One of the greatest problems in developing Proof General is +maintaining compatibility across different versions of Emacs. + +XEmacs is the primary development (and use) platform, but we'd like to +maintain compatibility with FSF Emacs, and the Japanicised versions of +that. The development policy is for the main codebase to be written +for the latest stable version of XEmacs. We follow XEmacs advice on +removing obsolete function calls. + +Hopefully one day we may have a proper test suite and mechanism to +test across different versions of Emacs. For the time being, follow +the following tips. + +*** Compatibility hacks collected in proof-compat.el + + - This file contains implementations/emulations of functions to + provide uniformity between different Emacs versions. If you + use a function specific to XEmacs or newer versions, consider adding + a conditional definition of it here to support other versions + for a while. + +*** Common Lisp macros -- Japan Emacsen have older versions + + - Use (dolist (var list) body), not (dolist (var list result) body). + + + +** CVS tips + + See etc/cvs-tips.txt |