Mercurial > hg > xemacs-beta
changeset 2538:aa1958a123a6
[xemacs-hg @ 2005-01-31 20:15:38 by ben]
Remove BETA; moved to man/beta.texi
author | ben |
---|---|
date | Mon, 31 Jan 2005 20:15:38 +0000 |
parents | b7b90f750a78 |
children | 955de19fc694 |
files | etc/BETA |
diffstat | 1 files changed, 0 insertions(+), 677 deletions(-) [+] |
line wrap: on
line diff
--- a/etc/BETA Mon Jan 31 20:08:52 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,677 +0,0 @@ - -*- mode:outline -*- - -* Introduction -============== - -You are running a potentially unstable version of XEmacs. Please do -not report problems with Beta XEmacs to comp.emacs.xemacs. Report -them to <xemacs-beta@xemacs.org>, preferably with -'M-x report-xemacs-bug RET'. - -** Mailing Lists -================ - -*** XEmacs Beta Mailing List ----------------------------- - -If you are not subscribed to the XEmacs beta list you should be. -Currently all discussion of development issues, including bug reports -and coding discussion, takes place on the XEmacs Beta mailing list. -Only patches and administrative actions regarding patches are sent -elsewhere (to the XEmacs Patches list). - -*** XEmacs Patches Mailing List -------------------------------- - -XEmacs Patches records proposed changes to XEmacs, and their -disposition. It is open subscription, and all patches that are -seriously proposed for inclusion in XEmacs should be posted here. You -can follow progress of your patch by subscribing to the mailing list -or in the archives. - -Besides patches, only actions by members of the XEmacs Review Board -should be posted to this list. All discussion should be redirected to -XEmacs Beta or XEmacs Design. - -*** XEmacs Design Mailing List ------------------------------- - -XEmacs Design is for design discussions such as adding major features -or whole modules, or reimplementation of existing functions, to XEmacs. - -*** List Administrivia ----------------------- - -In the descriptions below, the word LIST (all uppercase) is a -variable. Substitute "beta", "design", or "patches" as appropriate -(to get "xemacs-beta" as the mailbox for the XEmacs Beta mailing list, -or <http://www.xemacs.org/Lists/#xemacs-beta> for its URL). - -The XEmacs mailing lists are managed by the Mailman mailing list -package, and the usual Mailman commands work. Do not send mailing -list requests to the main address (<xemacs-LIST@xemacs.org>), always -send them to <xemacs-LIST-request@xemacs.org>. If you have problems -with the list itself, they should be brought to the attention of the -XEmacs Mailing List manager <list-manager@xemacs.org> (the same -mailbox, "list-manager", for all lists). All public mailing lists -have searchable archives. The URL is - - http://list-archive.xemacs.org/xemacs-LIST - -Note that the xemacs-LIST-admin address is used internally by the -Mailman software; it is NOT a synonym for xemacs-LIST-request. - -*** Managing your subscription via the Web ------------------------------------------- - -Subscription, unsubscription, and options (such as digests and -temporarily suspending delivery) can be accomplished via the web -interface at <http://www.xemacs.org/Lists/#xemacs-LIST>. - -*** Subscribing by e-mail -------------------------- - -Send an email message to <xemacs-LIST-request@xemacs.org> with -`subscribe' (without the quotes) as the BODY of the message. - -*** Unsubscribing by e-mail ---------------------------- - -Send an email message to <xemacs-LIST-request@xemacs.org> with -`unsubscribe' (without the quotes) as the BODY of the message. - -** Beta Release Schedule -======================== - -We would like to achieve a weekly or fortnightly release cycle (you -know the Open Source model: release early, release often), and in a -perfect world that would indeed be the case. There are at least three -things that often get in the way of that goal: 1) The Release Manager -has a life outside of XEmacs (hard to believe, I know, but true), -2) we like to make releases that will build (at least on the Release -Manager's box), and 3) Murphy likes to throw a spanner in the works -right when you least expect it (Murphy's Law: Whatever can go wrong, -will go wrong). - -If you'd like to keep right up to date and ride the bleeding edge, use -CVS (see <http://www.xemacs.org/Develop/cvsaccess.html>). If you -can't use CVS for some reason and must use FTP, please let us know. -it will make it more likely that we release betas more often. - - -** Reporting Problems -===================== - -The best way to get problems fixed in XEmacs is to submit good problem -reports, 'M-x report-xemacs-bug RET' will help you do this (assuming -you have a usable XEmacs). Since this is beta software, problems are -certain to exist. Please read through all of part II of the XEmacs -FAQ for an overview of problem reporting. Other items which are most -important are: - -1. Do not submit C stack backtraces without line numbers. Since it - is possible to compile optimized with debug information with GCC - it is never a good idea to compile XEmacs without the -g flag. - XEmacs runs on a variety of platforms, and often it is not - possible to recreate problems which afflict a specific platform. - The line numbers in the C stack backtrace help isolate where the - problem is actually occurring. - -2. Attempt to recreate the problem starting with an invocation of - XEmacs with `xemacs -no-autoloads'. Quite often, problems are - due to package interdependencies, and the like. An actual bug - in XEmacs should be reproducible in a default configuration - without loading any special packages (or the one or two specific - packages that cause the bug to appear). If you have trouble - getting anything to work at all with the above invocation, use - `xemacs -vanilla' instead. If you need to load your user init - file or the site file to get the problem to occur, then it has - something to do with them, and you should try to isolate the - issue in those files. - -3. A picture can be worth a thousand words. When reporting an - unusual display, it is generally best to capture the problem in a - screen dump and include that with the problem report. The easiest - way to get a screen dump is to use the xv program and its grab - function. Save the image as a GIF to keep bandwidth requirements - down without loss of information. MIME is the preferred method - for making the image attachments. - -** Getting the Source -===================== - -In addition to the normal tar distribution, XEmacs source is now -available via CVS. Please see - - http://www.xemacs.org/Develop/cvsaccess.html - -* Compiling Beta XEmacs -======================= - -** Building an XEmacs from patches -================================== - -All beta releases of XEmacs are included with patches from the previous -version in an attempt to keep bandwidth requirements down. Patches -should be applied with the GNU patch program in something like the -following. Let's say you're upgrading XEmacs 21.5-beta9 to XEmacs -21.5-beta10 and you have a full unmodified XEmacs 21.5-beta9 source -tree to work with. Change to the top level directory and issue the -shell command: - -$ gunzip -c /tmp/xemacs-21.5.9-21.5.10.patch.gz | patch -p1 - -After patching, check to see that no patches were missed by doing -$ find . -name \*.rej -print - -Any rejections should be treated as serious problems to be resolved -before building XEmacs. - -After seeing that there were no rejections, issue the commands - -$ ./config.status --recheck -$ make beta > ./beta.err 2>&1 -$ make check > ./xemacs-make-check.err 2>&1 - -Redirect the output from make to those files because you'll use them -later when you send off a build report with 'M-x build-report RET' - -** Building XEmacs from a full distribution -=========================================== - -[1] Locate a convenient place where you have at least 100MB of free space -and issue the command - -$ gunzip -c /tmp/xemacs-21.5.10.tar.gz | tar xvf - - -(or simply `tar zxvf /tmp/xemacs-21.5.10.tar.gz' if you use GNU tar). - -[2] cd to the top level directory and issue an appropriate configure -command. - -[3] Run `configure'. If you are new, just consider running it with no -options, to see if you can get a succesful build. When you are more -experienced, you should put various flags in. Here is what we suggest: - -[a] It's a good idea to use - ---extra-verbose ---debug ---memory-usage-stats ---error-checking=all - -These turn on extra debugging info and checks. The last one in particular -will add a great deal of extra error-checking -- which will slow your XEmacs -down somewhat but is likely to catch bugs much sooner and make your bug -reports much more useful. - -[b] You should also strongly consider - ---with-mule ---use-pkcc ---pdump ---with-clash-detection ---with-wmcommand ---with-xfs - -These turn on optional features, which can always use testing. - -[c] If you have gcc, consider using - ---compiler=gcc ---xemacs-compiler=g++ - -This will compile XEmacs using g++, which will turn on a lot of additional -error-checking. - -[d] If your packages are not installed under /usr/local, you should add a -line like - ---package-path=~/.xemacs::/xemacs/site-packages:/xemacs/xemacs-packages:/xemacs/mule-packages - -[e] If you want to build multiple configurations from the same source tree, -make separate build directories for each configuration, run `configure' from -the top level of these (currently empty) directories and use an option like - ---srcdir=/xemacs/source-tree - -(or wherever your source tree is). This will magically create symlinks and -populate your build directory. - -[f] Use --site-prefixes (or --site-includes and --site-libraries) if you have -some packages that XEmacs can compile with that are located in an unusual -place. For example: - ---site-prefixes=/usr/local/pgsql:/usr/local/BerkeleyDB.4.1 - -[g] Depending on your build environment, consuder setting or not setting -options for menubars, scrollbars, window systems, native sound, etc. If -you're not sure, leave them out and let configure do the auto-detection. -(If you get bugs compiling GTK, use `--with-gtk=no --with-gnome=no'.) - -Part of the configure output is a summary that looks something -like the following. (this summary is also available as the file -'Installation' in the top directory of your build tree, and via -the command 'M-x describe-installation RET'). - -uname -a: Linux eicq 2.4.20 #1 Wed Dec 18 02:14:29 EST 2002 i586 unknown - -./configure '--extra-verbose' '--site-prefixes=/usr/local/pgsql:/usr/local/BerkeleyDB.4.1' '--dynamic=yes' '--with-gtk=no' '--with-gnome=no' '--with-toolbars' '--with-wmcommand' '--with-athena=next' '--with-menubars=lucid' '--with-scrollbars=athena' '--with-dialogs=athena' '--with-widgets=athena' '--with-gif' '--with-sound=native,noesd' '--with-site-lisp=no' '--with-site-modules' '--pdump' '--with-mule' '--with-xfs' '--debug' '--error-checking=all' '--memory-usage-stats' '--use-kkcc' '--with-clash-detection' - - -XEmacs 21.5-b10 "burdock" (+CVS-20030131) configured for `i586-pc-linux'. - - -Compilation / Installation: - Source code location: /usr/local/src/xemacs - Installation prefix: /usr/local - Additional prefixes: /usr/local/pgsql /usr/local/BerkeleyDB.4.1 - Operating system description file: `s/linux.h' - Machine description file: `m/intel386.h' - Compiler: gcc -Wall -Wno-switch -Winline -Wmissing-prototypes -Wsign-compare -Wundef -Wstrict-prototypes -Wshadow -Wmissing-declarations -O1 -ggdb3 -Wall -Wchar-subscripts -Wunused -Wundef -Wshadow -Wsign-compare -Wmissing-declarations -march=k6 - Relocating allocator for buffers: no - GNU version of malloc: yes - - Using Doug Lea's new malloc from the GNU C Library. - -Window System: - Compiling in support for the X window system: - - X Windows headers location: /usr/X11/include - - X Windows libraries location: /usr/X11/lib - - Handling WM_COMMAND properly. - Compiling in support for the Athena widget set: - - Athena headers location: X11/neXtaw - - Athena library to link: neXtaw - Using Lucid menubars. - Using Athena scrollbars. - Using Athena dialog boxes. - Using Athena native widgets. - -TTY: - Compiling in support for ncurses. - Compiling in support for GPM (General Purpose Mouse). - -Images: - Compiling in support for GIF images (builtin). - Compiling in support for XPM images. - Compiling in support for PNG images. - Compiling in support for JPEG images. - Compiling in support for TIFF images. - Compiling in support for X-Face message headers. - -Sound: - Compiling in support for sound (native). - -Databases: - Compiling in support for Berkeley database. - Compiling in support for PostgreSQL. - - Using PostgreSQL header file: libpq-fe.h - - Using PostgreSQL V7 bindings. - -Internationalization: - Compiling in support for Mule (multi-lingual Emacs). - Compiling in support for XIM (X11R5+ I18N input method). - - Using raw Xlib to provide XIM support. - - Using XFontSet to provide bilingual menubar. - -Mail: - Compiling in support for "dot-locking" mail spool file locking method. - -Other Features: - Inhibiting IPv6 canonicalization at startup. - Compiling in support for dynamic shared object modules. - Using the new GC algorithms. - Using the new portable dumper. - Compiling in support for extra debugging code. - WARNING: --------------------------------------------------------- - WARNING: Compiling in support for runtime error checking. - WARNING: XEmacs will run noticeably more slowly as a result. - WARNING: Error checking is on by default for XEmacs beta releases. - WARNING: --------------------------------------------------------- - - - -[4] Then... - -$ make > ./beta.err 2>&1 -$ make check > ./xemacs-make-check.err 2>&1 - -...and you should have a working XEmacs. - -[5] After you have verified that you have a functional editor, fire up -your favorite mail program and send a build report to -<xemacs-buildreports@xemacs.org>. - -Preferably this is best done from XEmacs, following these simple steps: - -M-x customize-group RET build-report RET -M-x build-report RET - -See also -<http://www.xemacs.org/Releases/Public-21.2/tester.html#reporting> - -If you create the report manually by other means, here is what the -build report should include: - -1. Your hardware configuration (OS version, etc.) - -2. Version numbers of software in use (X11 version, system library - versions if appropriate, graphics library versions if appropriate). - If you're on a system like Linux, include all the version numbers - you can because chances are it makes a difference. - -3. The options given to configure - -4. The configuration report illustrated above - - For convenience all of the above items are placed in a file called - `Installation' in the top level build directory. They are also - available by performing M-x describe-installation inside XEmacs. - -5. Any other unusual items you feel should be brought to the attention - of the developers. - - -* Packages -========== - -[Note: these instructions have been partly updated, but not carefully -reviewed in some time. Caveat tester.] - -Starting with XEmacs 21.1, much of the functionality of XEmacs has -been unbundled into "the packages." For more information about the -package system, see the Info nodes on Packages (in the XEmacs User -Manual) and on Packaging (in the Lisp Reference). - -When bootstrapping XEmacs, you may need to manually install some -packages (at least xemacs-base and efs). These packages are available -by FTP at <ftp://ftp.xemacs.org/pub/xemacs/packages/>. - -** Binary package installation -============================== - -Prerequisite: XEmacs 21.0-b1. - -Binary packages are complete entities that can be untarred at the top -level of an XEmacs package hierarchy and work at runtime. To install files -in this directory, run the command `M-x package-admin-add-binary-package' -and fill in appropriate values to the prompts. - -** Manual procedures for package management -=========================================== - -Prerequisite: XEmacs 21.0 - -When adding and deleting files from a lisp directory the -auto-autoloads.el (global symbols) and custom-load.el (Customization -groups) must be kept in synch. Assuming one is manipulating a -directory called `lisp-utils', the command to rebuild the -auto-autoloads.el file is: - -xemacs -vanilla -batch \ - -eval \("setq autoload-package-name \"lisp-utils\""\) \ - -f batch-update-directory lisp-utils - -The command to rebuild the custom-load.el file is: - -xemacs -vanilla -batch -f Custom-make-dependencies lisp-utils - -To byte-compile both of these files the command is: - -xemacs -vanilla -batch -f batch-byte-compile \ - lisp-utils/auto-autoloads.el lisp-utils/custom-load.el - -Of course, being a beta tester, you'd be aware that it is much easier -to manage your XEmacs packages with PUI. - -** Building XEmacs and XEmacs packages from scratch -=================================================== - -To build everything completely from scratch isn't hard, just time -consuming. - -*** Step 1 - grab the sources (core and packages) - -$ cvs -d :pserver:cvs@cvs.xemacs.org:/pack/xemacscvs login - [password: "cvs" (sans quotes)] - -$ cvs -d :pserver:cvs@cvs.xemacs.org:/pack/xemacscvs co -d xemacs-21.5 xemacs - -$ cvs -d :pserver:cvs@cvs.xemacs.org:/pack/xemacscvs co packages - -*** Step 2 - build XEmacs - -$ cd xemacs-21.5 -$ ./configure [options...] -$ make > ./beta.err 2>&1 -$ make check > ./xemacs-make-check.err 2>&1 - -And optionally: - -$ make install > ./xemacs-make-install.err 2>&1 - -*** Step 3 - build and install the packages - -$ cd packages -$ cp Local.rules.template Local.rules - -Then edit Local.rules to suit your needs/environment -see: (Info-goto-node "(xemacs)Local.rules file") for details about -this file. - -And then: - -$ make install - -* Improving XEmacs -================= - -** Creating patches for submission -================================== - -All patches to XEmacs that are seriously proposed for inclusion (eg, -bug fixes) should be mailed to <xemacs-patches@xemacs.org>. Each -patch will be reviewed by the patches review board, and will be -acknowledged and added to the distribution, or rejected with an -explanation. Progress of the patch is tracked on the XEmacs Patches -mailing list, which is open subscription. (If a patch is simply -intended to facilitate discussion, "I mean something that works like -this but this is really rough", a Cc to XEmacs Patches is optional, -but doesn't hurt.) - -Patches to XEmacs Lisp packages should be sent to the maintainer of -the package. If the maintainer is listed as `XEmacs Development Team' -patches should be sent to <xemacs-patches@xemacs.org>. - -Emailed patches should preferably be sent in MIME format and quoted -printable encoding (if necessary). - -The simplest way to create well-formed patches is to use CVS and -Didier Verna's Patcher library (available as patcher.el in the -xemacs-devel package). Patcher is new and requires some setup, but -most of the core developers are now using it for their own patches. -Patcher also can be configured to create patches for several projects, -and recognize the project from the directory it is invoked in. This -makes it a useful general tool (as long as XEmacs-style patches are -accepted at your other projects, which is likely since they conform to -the GNU standards). - -When making patches by hand, please use the `-u' option, or if your -diff doesn't support it, `-c'. Using ordinary (context-free) diffs -are notoriously prone to error, since line numbers tend to change when -others make changes to the same source file. - -An example of the `diff' usage: - -$ diff -u OLDFILE NEWFILE - --or- - -$ diff -c OLDFILE NEWFILE - -Also, it is helpful if you create the patch in the top level of the -XEmacs source directory: - -$ cp -p lwlib/xlwmenu.c lwlib/xlwmenu.c.orig - hack, hack, hack.... -$ diff -u lwlib/xlwmenu.c.orig lwlib/xlwmenu.c - -Also note that if you cut & paste from an xterm to an XEmacs mail buffer -you will probably lose due to tab expansion. The best thing to do is -to use an XEmacs shell buffer to run the diff commands, or ... -M-x cd to the appropriate directory, and issue the command `C-u M-!' from -within XEmacs. - -Patches should be as single-minded as possible. Mammoth patches can -be very difficult to place into the right slot. They are much easier -to deal with when broken down into functional or conceptual chunks. -The patches submitted by Kyle Jones and Hrvoje Niksic are stellar -examples of how to "Do The Right Thing". - -Each patch should be accompanied by an update to the appropriate -ChangeLog file. Guidelines for writing ChangeLog entries is governed -by the GNU coding standards. Please see -<http://www.gnu.org/prep/standards_toc.html> [Change Logs section] -for details. - -Do not submit context diffs (either -c or -u) of ChangeLogs. Because -of the "stack" nature of ChangeLogs (new entries are always pushed on -the top), context diffs will fail to apply more often than they -succeed. Simply cutting and pasting the entry from an Emacs buffer to -the mail buffer (beware of tab expansion!) is probably easiest. The -Patcher library also will set up your ChangeLogs for you, and copy -them to the mail. Context-less unified diffs (-U 0) are also -acceptable. - -*** Patch discussion etiquette -------------------------------- - -If you intend a patch for _application_ to the sources as is, _always_ -post it to xemacs-patches, even if there are minor points you would -like to have discussed by others. Not doing so will resulting in -patches getting "lost". If you expect that the patch will not be -acceptable, but are using it to stimulate discussion, then don't post -to xemacs-patches. Intermediate cases are up to your judgment; -unless you're sure you'll follow up with a "real" patch, better to err -on the side of posting to xemacs-patches. - -Discussion of the _content_ of the patch (ie responses to reviewer -comments beyond "that's right, ok, I'll do it your way") should _always_ -be posted to xemacs-beta or to xemacs-design. If you're not sure -which is more appropriate, send it to xemacs-beta. That is the most -widely read channel. - -If discussion results in a bright idea and you come up with a new -patch, normally you should post it to both mailing lists. The people -discussing on XEmacs Beta will want to know the outcome of the thread, -and you need to submit to XEmacs Patches as the "list of record." - -If the old patch has been applied to CVS, then just submit the new one -as usual. If it has not been applied, then it is best to submit a new -patch against CVS. If possible do this as a reply to the original -patch post, or something following it in the thread. (The point is to -get the original patch post's Message-ID in your References header.) -In this case, also use the keyword SUPERSEDES in the Subject header to -indicate that the old patch is no longer valid, and that this one -replaces it. - -These rules will result in a fair number of cross posts, but we don't -yet have a better way to handle that. - -Note: Developers should never post to xemacs-patches unless there is a -patch in the post. We plan to enforce this with an automatic filter. - -The exceptions are administrative. If you have commit authorization, -then post a short COMMIT notice to xemacs-patches when you commit to -CVS. Members of the Review Board will also post short notices of -administrative action (APPROVE, VETO, QUERY, etc) to xemacs-patches. - -** Large contributions -====================== - -Perhaps you have a whole new mode, or a major synchronization with -upstream for a neglected package, or a synchronization with GNU Emacs -you would like to contribute. We welcome such contributions, but they -are likely to be relatively controversial, generate more comments and -requests for revision, and take longer to integrate. Please be -patient with the process. - -*** Updates to existing packages --------------------------------- - -If a package has gotten a bit out of date, or even started to bitrot, -we welcome patches to synchronize it with upstream/GNU Emacs versions. -Most packages end up varying somewhat from their GNU origins. See -"Syncing with GNU Emacs" for hints. Note that if you do a reasonably -large amount of syncing with GNU Emacs, you should log this in the -file itself as well as in the ChangeLog. - -If the package is important to you, please consider becoming the -maintainer. (See "New packages", below.) - -*** New packages ----------------- - -If you have a new mode or other large addition that does not require -changes to the core, please consider submitting it as a package, and -becoming the maintainer. You get direct commit privileges to the -repository for your package, "approval" privileges for your own -patches as well as third party patches to your package, and some -degree of veto power over patches you don't like. In return, you are -expected to maintain friendly liaison with the upstream developer (if -you aren't the upstream developer), keep watch on the XEmacs Patches -list for relevant patches, and be available by email to other -developers for discussion of changes that impact your package. It's -also a pretty standard route to the "core" development group, where we -have plenty of extra work waiting for volunteers. - -You don't have to become the maintainer, but it virtually ensures -rapid acceptance of the package. - -For help in creating new packages, see the (rather sparse) discussions -in the XEmacs User's Guide and the Lisp Reference Manual. The XEmacs -Package Release Engineer (Ville Skyttä <scop@xemacs.org> is currently -serving with Norbert Koch <viteno@xemacs.org> assisting; Steve -Youngs <youngs@xemacs.org> and Stephen Turnbull <stephen@xemacs.org> -also can help) are the most likely sources of advice. - -*** Syncing with GNU Emacs --------------------------- - -Syncing with GNU Emacs is an important activity. Although each -version has its advantages and areas of concentration, it is very -desirable that common functionality share specifications and APIs. -When porting GNU code to XEmacs, the following points should be given -special attention: - - o Recent GNU Emacsen cannot be built without Mule, but XEmacs can. - Make sure your changes do not assume the presence of Mule. - - o GNU Emacs nomenclature often differs from that of XEmacs. - Sometimes syncing the names is desirable, other times not. - - o GNU Emacs functionality often differs from that of XEmacs. - Syncing functionality is often controversial. - -It is important that you let other developers know that -synchronization has taken place, to what degree, and when. For this -purpose, we use comments of the form - -/* Synched up with: FSF 21.3 by Stephen Turnbull */ - -in the source file itself, as the last element of the prefatory -material (copyright notice and commentary). Obviously the comment -marker needs to be changed to leading semicolons for Lisp, but -otherwise the format is the same. - -Of course you should note syncing as the purpose in the ChangeLog, -too. But entries get buried deep in the ChangeLog file, and may even -get moved to a separate ChangeLog.OLD file for rarely synched files. - -Rather than dates we use the version of GNU Emacs to sync to. If the -synchronization is partial, add a new comment describing what has -actually been synched, leaving the description of the last full sync -in place. At each full sync, remove all previous synchronization -comments. - -This applies to Lisp that we have broken out into packages, but -remains in the GNU Emacs core, as well to core Lisp in XEmacs.