diff options
| author | Karoly Lorentey | 2005-06-15 12:57:51 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2005-06-15 12:57:51 +0000 |
| commit | ef85512e51f043d73788f00a2aed13cccde0682c (patch) | |
| tree | fc1fa1378533250f260ef8eaa9a84ae882d9df84 /admin | |
| parent | 8736257554f49445f7b4402ac7a9436b38ce6452 (diff) | |
| parent | ef88a9999004e6c26148c8d280d6a41f623d7249 (diff) | |
| download | emacs-ef85512e51f043d73788f00a2aed13cccde0682c.tar.gz emacs-ef85512e51f043d73788f00a2aed13cccde0682c.zip | |
Merged from miles@gnu.org--gnu-2005 (patch 80-82, 350-422)
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-350
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-351
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-352
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-353
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-354
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-355
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-356
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-357
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-358
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-359
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-360
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-361
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-362
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-363
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-364
Remove "-face" suffix from widget faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-365
Remove "-face" suffix from custom faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-366
Remove "-face" suffix from change-log faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-367
Remove "-face" suffix from compilation faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-368
Remove "-face" suffix from diff-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-369
lisp/longlines.el (longlines-visible-face): Face removed
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-370
Remove "-face" suffix from woman faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Remove "-face" suffix from whitespace-highlight face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Remove "-face" suffix from ruler-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-373
Remove "-face" suffix from show-paren faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Remove "-face" suffix from log-view faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-375
Remove "-face" suffix from smerge faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-376
Remove "-face" suffix from show-tabs faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-377
Remove "-face" suffix from highlight-changes faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-378
Remove "-face" suffix from and downcase info faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-380
Update uses of renamed pcvs faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-381
Tweak ChangeLog
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-382
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-383
Remove "-face" suffix from strokes-char face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-384
Remove "-face" suffix from compare-windows face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-385
Remove "-face" suffix from calendar faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-386
Remove "-face" suffix from diary-button face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-387
Remove "-face" suffix from testcover faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-388
Remove "-face" suffix from viper faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Remove "-face" suffix from org faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-390
Remove "-face" suffix from sgml-namespace face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-391
Remove "-face" suffix from table-cell face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-392
Remove "-face" suffix from tex-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-393
Remove "-face" suffix from texinfo-heading face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-394
Remove "-face" suffix from flyspell faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-395
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-396
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-397
Remove "-face" suffix from gomoku faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-398
Remove "-face" suffix from mpuz faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-399
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-400
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-401
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-402
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-403
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-404
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-405
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-406
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-407
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-408
Remove "-face" suffix from Buffer-menu-buffer face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-409
Remove "-face" suffix from antlr-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-410
Remove "-face" suffix from ebrowse faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-411
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-412
Remove "-face" suffix from flymake faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Remove "-face" suffix from idlwave faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-414
Remove "-face" suffix from sh-script faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-415
Remove "-face" suffix from vhdl-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-416
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-417
Remove "-face" suffix from which-func face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-418
Remove "-face" suffix from cperl-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-419
Remove "-face" suffix from ld-script faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-420
Fix cperl-mode font-lock problem
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-421
Tweak which-func face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-422
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-80
Merge from emacs--cvs-trunk--0
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-81
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-82
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-350
Diffstat (limited to 'admin')
| -rw-r--r-- | admin/ChangeLog | 10 | ||||
| -rw-r--r-- | admin/FOR-RELEASE | 4 | ||||
| -rw-r--r-- | admin/admin.el | 3 | ||||
| -rw-r--r-- | admin/emacs-pretesters | 312 | ||||
| -rw-r--r-- | admin/make-tarball.txt | 8 |
5 files changed, 65 insertions, 272 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog index 03f5e0ed066..d833ea77a5e 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2005-06-10 Lute Kamstra <lute@gnu.org> | ||
| 2 | |||
| 3 | * admin.el (set-version): Set version in lisp manual too. | ||
| 4 | * make-tarball.txt: Commit lispref/elisp.texi too. | ||
| 5 | |||
| 6 | 2005-06-04 Richard M. Stallman <rms@gnu.org> | ||
| 7 | |||
| 8 | * emacs-pretesters: Refer to etc/DEBUG instead of duplicating it. | ||
| 9 | Other cleanups. | ||
| 10 | |||
| 1 | 2005-04-19 Lute Kamstra <lute@gnu.org> | 11 | 2005-04-19 Lute Kamstra <lute@gnu.org> |
| 2 | 12 | ||
| 3 | * make-tarball.txt: Don't commit lisp/loaddefs.el. | 13 | * make-tarball.txt: Don't commit lisp/loaddefs.el. |
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 441c8fe4fa2..0d2b5d0ee0b 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE | |||
| @@ -82,6 +82,8 @@ is encountered. | |||
| 82 | 82 | ||
| 83 | ** Finish updating the Emacs Lisp manual. | 83 | ** Finish updating the Emacs Lisp manual. |
| 84 | 84 | ||
| 85 | *** Update lispref/README. | ||
| 86 | |||
| 85 | ** Update the Emacs manual. | 87 | ** Update the Emacs manual. |
| 86 | 88 | ||
| 87 | *** Update man/info.texi. | 89 | *** Update man/info.texi. |
| @@ -187,7 +189,7 @@ lispref/control.texi "Luc Teirlinck" Chong Yidong | |||
| 187 | lispref/customize.texi Chong Yidong | 189 | lispref/customize.texi Chong Yidong |
| 188 | lispref/debugging.texi Joakim Verona <joakim@verona.se> Lute Kamstra | 190 | lispref/debugging.texi Joakim Verona <joakim@verona.se> Lute Kamstra |
| 189 | lispref/display.texi Chong Yidong | 191 | lispref/display.texi Chong Yidong |
| 190 | lispref/edebug.texi Chong Yidong | 192 | lispref/edebug.texi Chong Yidong "Luc Teirlinck" |
| 191 | lispref/elisp.texi "Luc Teirlinck" Lute Kamstra | 193 | lispref/elisp.texi "Luc Teirlinck" Lute Kamstra |
| 192 | lispref/errors.texi "Luc Teirlinck" | 194 | lispref/errors.texi "Luc Teirlinck" |
| 193 | lispref/eval.texi "Luc Teirlinck" Chong Yidong | 195 | lispref/eval.texi "Luc Teirlinck" Chong Yidong |
diff --git a/admin/admin.el b/admin/admin.el index 44fbd8ed543..07a2bcb757e 100644 --- a/admin/admin.el +++ b/admin/admin.el | |||
| @@ -84,6 +84,9 @@ Root must be the root of an Emacs source tree." | |||
| 84 | (submatch (1+ (in "0-9.")))))) | 84 | (submatch (1+ (in "0-9.")))))) |
| 85 | (set-version-in-file root "man/emacs.texi" version | 85 | (set-version-in-file root "man/emacs.texi" version |
| 86 | (rx (and "EMACSVER" (1+ space) | 86 | (rx (and "EMACSVER" (1+ space) |
| 87 | (submatch (1+ (in "0-9.")))))) | ||
| 88 | (set-version-in-file root "lispref/elisp.texi" version | ||
| 89 | (rx (and "EMACSVER" (1+ space) | ||
| 87 | (submatch (1+ (in "0-9."))))))) | 90 | (submatch (1+ (in "0-9."))))))) |
| 88 | 91 | ||
| 89 | ;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5 | 92 | ;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5 |
diff --git a/admin/emacs-pretesters b/admin/emacs-pretesters index 169c7ee466d..f7b17afd580 100644 --- a/admin/emacs-pretesters +++ b/admin/emacs-pretesters | |||
| @@ -30,13 +30,13 @@ noise into long discussions or even arguments, and that can waste a | |||
| 30 | lot of time. But when you have a reason to ask other pretesters for | 30 | lot of time. But when you have a reason to ask other pretesters for |
| 31 | help, you can do it that way. | 31 | help, you can do it that way. |
| 32 | 32 | ||
| 33 | * It is absolutely vital that you tell me about even the smallest | 33 | * It is absolutely vital that you report even the smallest change or |
| 34 | change or departure from the standard sources and procedure. | 34 | departure from the standard sources and procedure. |
| 35 | 35 | ||
| 36 | Otherwise, you are not testing the same program that I asked you to | 36 | Otherwise, you are not testing the same program that we asked you to |
| 37 | test. Testing a different program is usually of no use whatever. It | 37 | test. Testing a different program is usually of no use whatever. It |
| 38 | can even cause trouble if you fail to tell me that you tested some | 38 | can even cause trouble, if you fail to tell us that you tested some |
| 39 | other program instead of what I am about to release. I might think | 39 | other program instead of what we are about to release. We might think |
| 40 | that Emacs works, when in fact it has not even been tried, and might | 40 | that Emacs works, when in fact it has not even been tried, and might |
| 41 | have a glaring fault. | 41 | have a glaring fault. |
| 42 | 42 | ||
| @@ -46,8 +46,8 @@ site would use it. | |||
| 46 | 46 | ||
| 47 | Actually, it does no harm to test Emacs with such customizations *as | 47 | Actually, it does no harm to test Emacs with such customizations *as |
| 48 | well as* testing it "out of the box". Anything you do that could find | 48 | well as* testing it "out of the box". Anything you do that could find |
| 49 | a bug is useful, as long as you make sure I know exactly what you did. | 49 | a bug is useful, as long as you make sure we know exactly what you |
| 50 | The important point is that testing with local changes is no | 50 | did. The important point is that testing with local changes is no |
| 51 | substitute for testing Emacs exactly as it is distributed. | 51 | substitute for testing Emacs exactly as it is distributed. |
| 52 | 52 | ||
| 53 | * Even changing the compilation options counts as a change in the | 53 | * Even changing the compilation options counts as a change in the |
| @@ -71,10 +71,10 @@ this is effectively changing Emacs. Because the crucial fact about | |||
| 71 | the planned release is that, without changes, it doesn't work on that | 71 | the planned release is that, without changes, it doesn't work on that |
| 72 | machine. | 72 | machine. |
| 73 | 73 | ||
| 74 | To make Emacs work on that machine, I would need to install new | 74 | To make Emacs work on that machine, we would need to install new |
| 75 | configuration files. That is not out of the question, since it is | 75 | configuration files. That is not out of the question, since it is |
| 76 | safe--it certainly won't break any other machines that already work. | 76 | safe--it certainly won't break any other machines that already work. |
| 77 | But you will have to rush me the legal papers to give the FSF | 77 | But you will have to rush in the legal papers to give the FSF |
| 78 | permission to use such a large piece of text. | 78 | permission to use such a large piece of text. |
| 79 | 79 | ||
| 80 | * Look in the etc/MACHINES file. | 80 | * Look in the etc/MACHINES file. |
| @@ -92,25 +92,25 @@ recommendations also, for the same reason. | |||
| 92 | * Send your problem reports to emacs-pretest-bug@gnu.org, not | 92 | * Send your problem reports to emacs-pretest-bug@gnu.org, not |
| 93 | bug-gnu-emacs. | 93 | bug-gnu-emacs. |
| 94 | 94 | ||
| 95 | Sometimes I won't know what to do about a system-dependent issue, and | 95 | Sometimes we won't know what to do about a system-dependent issue, and |
| 96 | I may need people to tell me what happens if you try a certain thing | 96 | we may need people to say what happens if you try a certain thing on a |
| 97 | on a certain system. When this happens, I'll send out a query. | 97 | certain system. When this happens, we'll send out a query. |
| 98 | 98 | ||
| 99 | * Don't delay sending information. | 99 | * Don't delay sending information. |
| 100 | 100 | ||
| 101 | When you test on a system and encounter no problems, please tell me | 101 | When you test on a system and encounter no problems, please report it |
| 102 | about it right away. That way, I will know that someone has tested | 102 | right away. That way, we will know that someone has tested Emacs on |
| 103 | Emacs on that kind of system. | 103 | that kind of system. |
| 104 | 104 | ||
| 105 | Please don't wait for several days "to see if it really works before | 105 | Please don't wait for several days "to see if it really works before |
| 106 | you say anything." Tell me right away that Emacs seems basically to | 106 | you say anything." Tell us right away that Emacs seems basically to |
| 107 | work; then, if you notice a problem a few days later, tell me | 107 | work; then, if you notice a problem a few days later, tell us |
| 108 | immediately about that when you see it. | 108 | immediately about that when you see it. |
| 109 | 109 | ||
| 110 | It is okay if you double check things before reporting a problem, such | 110 | It is okay if you double check things before reporting a problem, such |
| 111 | as to see if you can easily fix it. But don't wait very long. A good | 111 | as to see if you can easily fix it. But don't wait very long. A good |
| 112 | rule to use in pretesting is always to tell me about every problem on | 112 | rule to use in pretesting is always to report every problem on the |
| 113 | the same day you encounter it, even if that means you can't find a | 113 | same day you encounter it, even if that means you can't find a |
| 114 | solution before you report the problem. | 114 | solution before you report the problem. |
| 115 | 115 | ||
| 116 | I'd much rather hear about a problem today and a solution tomorrow | 116 | I'd much rather hear about a problem today and a solution tomorrow |
| @@ -123,20 +123,22 @@ else, then it will be necessary for anyone who wants to investigate | |||
| 123 | the bug to find the other message. This may be difficult, it is | 123 | the bug to find the other message. This may be difficult, it is |
| 124 | probably time-consuming. | 124 | probably time-consuming. |
| 125 | 125 | ||
| 126 | To help me save time, simply copy the relevant parts of any previous | 126 | To help save our time, simply copy the relevant parts of any previous |
| 127 | messages into your own bug report. | 127 | messages into your own bug report. |
| 128 | 128 | ||
| 129 | In particular, if I ask you for more information because a bug report | 129 | In particular, if we ask you for more information because a bug report |
| 130 | was incomplete, it is best to send me the *entire* collection of | 130 | was incomplete, it is best to send me the *entire* collection of |
| 131 | relevant information, all together. If you send just the additional | 131 | relevant information, all together. If you send just the additional |
| 132 | information, that makes me do extra work. There is even a risk that | 132 | information, that makes extra work for us. There is even a risk that |
| 133 | I won't remember what question you are sending me the answer to. | 133 | we won't remember what question you are sending the answer to. |
| 134 | 134 | ||
| 135 | * When you encounter a bug that manifests itself as a Lisp error, | 135 | * When you encounter a bug that manifests itself as a Lisp error, |
| 136 | try setting debug-on-error to t and making the bug happen again. | 136 | try setting debug-on-error to t and making the bug happen again. |
| 137 | Then you will get a Lisp backtrace. Including that in your bug report | 137 | Then you will get a Lisp backtrace. Including that in your bug report |
| 138 | is very useful. | 138 | is very useful. |
| 139 | 139 | ||
| 140 | * For advice on debugging, see etc/DEBUG. | ||
| 141 | |||
| 140 | * Debugging optimized code is possible, if you compile with GCC, but | 142 | * Debugging optimized code is possible, if you compile with GCC, but |
| 141 | in some cases the optimized code can be confusing. If you are not | 143 | in some cases the optimized code can be confusing. If you are not |
| 142 | accustomed to that, recompile Emacs without -O. One way to do this is | 144 | accustomed to that, recompile Emacs without -O. One way to do this is |
| @@ -144,193 +146,6 @@ accustomed to that, recompile Emacs without -O. One way to do this is | |||
| 144 | make clean | 146 | make clean |
| 145 | make CFLAGS=-g | 147 | make CFLAGS=-g |
| 146 | 148 | ||
| 147 | * If you use X windows, it is a good idea to run Emacs under GDB (or | ||
| 148 | some other suitable debugger) *all the time*, at least while | ||
| 149 | pretesting. | ||
| 150 | |||
| 151 | Then, when Emacs crashes, you will be able to debug the live process, | ||
| 152 | not just a core dump. The `pr' command defined in src/.gdbinit is very | ||
| 153 | useful in this case for examining Lisp_Object values as they would | ||
| 154 | appear in Lisp. | ||
| 155 | |||
| 156 | If you can't use `pr' because Emacs has got a fault already, or | ||
| 157 | because you have only a core dump, you can use `xtype' to look at the | ||
| 158 | type of a value, and then choose one of the other commands `xsymbol', | ||
| 159 | `xstring', `xcons', `xvector' and so on to examine the contents. | ||
| 160 | |||
| 161 | I myself *always* run Emacs under GDB so that I can debug conveniently | ||
| 162 | if the occasion arises. | ||
| 163 | |||
| 164 | * To get Lisp-level backtrace information within GDB, | ||
| 165 | look for stack frames that call Ffuncall. Select them one by one in GDB | ||
| 166 | and type this: | ||
| 167 | |||
| 168 | p *args | ||
| 169 | pr | ||
| 170 | |||
| 171 | This will print the name of the Lisp function called by that level | ||
| 172 | of function calling. | ||
| 173 | |||
| 174 | By printing the remaining elements of args, you can see the argument | ||
| 175 | values. Here's how to print the first argument: | ||
| 176 | |||
| 177 | p args[1] | ||
| 178 | pr | ||
| 179 | |||
| 180 | If you do not have a live process, you can use xtype and the other | ||
| 181 | x... commands such as xsymbol to get such information, albeit less | ||
| 182 | conveniently. | ||
| 183 | |||
| 184 | * Even with a live process, these x... commands are useful for | ||
| 185 | examining the fields in a buffer, window, process, frame or marker. | ||
| 186 | Here's an example using concepts explained in the node "Value History" | ||
| 187 | of the GDB manual to print the variable frame from this line in | ||
| 188 | xmenu.c: | ||
| 189 | |||
| 190 | buf.frame_or_window = Fcons (frame, prefix); | ||
| 191 | |||
| 192 | First, use these commands: | ||
| 193 | |||
| 194 | cd src | ||
| 195 | gdb emacs | ||
| 196 | b xmenu.c:1209 | ||
| 197 | r -q | ||
| 198 | |||
| 199 | Then type C-x 5 2 to create a new frame, and it hits the breakpoint: | ||
| 200 | |||
| 201 | (gdb) p frame | ||
| 202 | $1 = 1077872640 | ||
| 203 | (gdb) xtype | ||
| 204 | Lisp_Vectorlike | ||
| 205 | PVEC_FRAME | ||
| 206 | (gdb) xframe | ||
| 207 | $2 = (struct frame *) 0x3f0800 | ||
| 208 | (gdb) p *$ | ||
| 209 | $3 = { | ||
| 210 | size = 536871989, | ||
| 211 | next = 0x366240, | ||
| 212 | name = 809661752, | ||
| 213 | [...] | ||
| 214 | } | ||
| 215 | (gdb) p $3->name | ||
| 216 | $4 = 809661752 | ||
| 217 | |||
| 218 | Now we can use `pr' to print the name of the frame: | ||
| 219 | |||
| 220 | (gdb) pr | ||
| 221 | "emacs@steenrod.math.nwu.edu" | ||
| 222 | |||
| 223 | * The Emacs C code heavily uses macros defined in lisp.h. So suppose | ||
| 224 | we want the address of the l-value expression near the bottom of | ||
| 225 | `kbd_buffer_store_event' from keyboard.c: | ||
| 226 | |||
| 227 | XVECTOR (kbd_buffer_frame_or_window)->contents[kbd_store_ptr | ||
| 228 | - kbd_buffer] | ||
| 229 | = event->frame_or_window); | ||
| 230 | |||
| 231 | XVECTOR is a macro, and therefore GDB does not know about it. | ||
| 232 | GDB cannot evaluate p XVECTOR (kbd_buffer_frame_or_window). | ||
| 233 | |||
| 234 | However, you can use the xvector command in GDB to get the same | ||
| 235 | result. Here is how: | ||
| 236 | |||
| 237 | (gdb) p kbd_buffer_frame_or_window | ||
| 238 | $1 = 1078005760 | ||
| 239 | (gdb) xvector | ||
| 240 | $2 = (struct Lisp_Vector *) 0x411000 | ||
| 241 | 0 | ||
| 242 | (gdb) p $->contents[kbd_store_ptr - kbd_buffer] | ||
| 243 | $3 = 1077872640 | ||
| 244 | (gdb) p &$ | ||
| 245 | $4 = (int *) 0x411008 | ||
| 246 | |||
| 247 | * Here's a related example of macros and the GDB `define' command. | ||
| 248 | There are many Lisp vectors such as `recent_keys', which contains the | ||
| 249 | last 100 keystrokes. We can print this Lisp vector | ||
| 250 | |||
| 251 | p recent_keys | ||
| 252 | pr | ||
| 253 | |||
| 254 | But this may be inconvenient, since `recent_keys' is much more verbose | ||
| 255 | than `C-h l'. We might want to print only the last 10 elements of | ||
| 256 | this vector. `recent_keys' is updated in keyboard.c by the command | ||
| 257 | |||
| 258 | XVECTOR (recent_keys)->contents[recent_keys_index] = c; | ||
| 259 | |||
| 260 | So we define a GDB command `xvector-elts', so the last 10 keystrokes | ||
| 261 | are printed by | ||
| 262 | |||
| 263 | xvector-elts recent_keys recent_keys_index 10 | ||
| 264 | |||
| 265 | where you can define xvector-elts as follows: | ||
| 266 | |||
| 267 | define xvector-elts | ||
| 268 | set $i = 0 | ||
| 269 | p $arg0 | ||
| 270 | xvector | ||
| 271 | set $foo = $ | ||
| 272 | while $i < $arg2 | ||
| 273 | p $foo->contents[$arg1-($i++)] | ||
| 274 | pr | ||
| 275 | end | ||
| 276 | document xvector-elts | ||
| 277 | Prints a range of elements of a Lisp vector. | ||
| 278 | xvector-elts v n i | ||
| 279 | prints `i' elements of the vector `v' ending at the index `n'. | ||
| 280 | end | ||
| 281 | |||
| 282 | * To debug what happens while preloading and dumping Emacs, | ||
| 283 | do `gdb temacs' and start it with `r -batch -l loadup dump'. | ||
| 284 | |||
| 285 | If temacs actually succeeds when running under GDB in this way, do not | ||
| 286 | try to run the dumped Emacs, because it was dumped with the GDB | ||
| 287 | breakpoints in it. | ||
| 288 | |||
| 289 | * If you encounter X protocol errors, try evaluating (x-synchronize t). | ||
| 290 | That puts Emacs into synchronous mode, where each Xlib call checks for | ||
| 291 | errors before it returns. This mode is much slower, but when you get | ||
| 292 | an error, you will see exactly which call really caused the error. | ||
| 293 | |||
| 294 | * If the symptom of the bug is that Emacs fails to respond, don't | ||
| 295 | assume Emacs is `hung'--it may instead be in an infinite loop. To | ||
| 296 | find out which, make the problem happen under GDB and stop Emacs once | ||
| 297 | it is not responding. (If Emacs is using X Windows directly, you can | ||
| 298 | stop Emacs by typing C-z at the GDB job.) Then try stepping with | ||
| 299 | `step'. If Emacs is hung, the `step' command won't return. If it is | ||
| 300 | looping, `step' will return. | ||
| 301 | |||
| 302 | If this shows Emacs is hung in a system call, stop it again and | ||
| 303 | examine the arguments of the call. In your bug report, state exactly | ||
| 304 | where in the source the system call is, and what the arguments are. | ||
| 305 | |||
| 306 | If Emacs is in an infinite loop, please determine where the loop | ||
| 307 | starts and ends. The easiest way to do this is to use the GDB command | ||
| 308 | `finish'. Each time you use it, Emacs resumes execution until it | ||
| 309 | exits one stack frame. Keep typing `finish' until it doesn't | ||
| 310 | return--that means the infinite loop is in the stack frame which you | ||
| 311 | just tried to finish. | ||
| 312 | |||
| 313 | Stop Emacs again, and use `finish' repeatedly again until you get back | ||
| 314 | to that frame. Then use `next' to step through that frame. By | ||
| 315 | stepping, you will see where the loop starts and ends. Also please | ||
| 316 | examine the data being used in the loop and try to determine why the | ||
| 317 | loop does not exit when it should. Include all of this information in | ||
| 318 | your bug report. | ||
| 319 | |||
| 320 | * If certain operations in Emacs are slower than they used to be, here | ||
| 321 | is some advice for how to find out why. | ||
| 322 | |||
| 323 | Stop Emacs repeatedly during the slow operation, and make a backtrace | ||
| 324 | each time. Compare the backtraces looking for a pattern--a specific | ||
| 325 | function that shows up more often than you'd expect. | ||
| 326 | |||
| 327 | If you don't see a pattern in the C backtraces, get some Lisp | ||
| 328 | backtrace information by looking at Ffuncall frames (see above), and | ||
| 329 | again look for a pattern. | ||
| 330 | |||
| 331 | When using X, you can stop Emacs at any time by typing C-z at GDB. | ||
| 332 | When not using X, you can do this with C-g. | ||
| 333 | |||
| 334 | * Configure tries to figure out what kind of system you have by | 149 | * Configure tries to figure out what kind of system you have by |
| 335 | compiling and linking programs which calls various functions and looks | 150 | compiling and linking programs which calls various functions and looks |
| 336 | at whether that succeeds. The file config.log contains any messages | 151 | at whether that succeeds. The file config.log contains any messages |
| @@ -344,6 +159,9 @@ or more simply, | |||
| 344 | rm config.cache | 159 | rm config.cache |
| 345 | ./configure | 160 | ./configure |
| 346 | 161 | ||
| 162 | * Don't try changing Emacs *in any way* during pretest unless it fails | ||
| 163 | to work unchanged. | ||
| 164 | |||
| 347 | * Always be precise when talking about changes you have made. Show | 165 | * Always be precise when talking about changes you have made. Show |
| 348 | things rather than describing them. Use exact filenames (relative to | 166 | things rather than describing them. Use exact filenames (relative to |
| 349 | the main directory of the distribution), not partial ones. For | 167 | the main directory of the distribution), not partial ones. For |
| @@ -352,27 +170,27 @@ makefile". Instead of saying "I defined the MUMBLE macro", send a | |||
| 352 | diff. | 170 | diff. |
| 353 | 171 | ||
| 354 | * Always use `diff -c' to make diffs. If you don't include context, it | 172 | * Always use `diff -c' to make diffs. If you don't include context, it |
| 355 | may be hard for me to figure out where you propose to make the | 173 | may be hard for us to figure out where you propose to make the |
| 356 | changes. So I might have to ignore your patch. | 174 | changes. So we might ignore your patch. |
| 357 | 175 | ||
| 358 | * When you write a fix, keep in mind that I can't install a change | 176 | * When you write a fix, keep in mind that we can't install a change |
| 359 | that *might* break other systems without the risk that it will fail to | 177 | that *might* break other systems without the risk that it will fail to |
| 360 | work and therefore require an additional cycle of pretesting. | 178 | work and therefore require an additional cycle of pretesting. |
| 361 | 179 | ||
| 362 | People often suggest fixing a problem by changing config.h or | 180 | People often suggest fixing a problem by changing config.h or |
| 363 | src/ymakefile or even src/Makefile to do something special that a | 181 | src/ymakefile or even src/Makefile to do something special that a |
| 364 | particular system needs. Sometimes it is totally obvious that such | 182 | particular system needs. Sometimes it is totally obvious that such |
| 365 | changes would break Emacs for almost all users. I can't possibly make | 183 | changes would break Emacs for almost all users. We can't possibly |
| 366 | a change like that. All I can do is send it back to you and ask you | 184 | make a change like that. All we can do is ask you to find a fix that |
| 367 | to find a fix that is safe to install. | 185 | is safe to install. |
| 368 | 186 | ||
| 369 | Sometimes people send fixes that *might* be an improvement in | 187 | Sometimes people send fixes that *might* be an improvement in |
| 370 | general--but it is hard to be sure of this. I can install such | 188 | general--but it is hard to be sure of this. I can install such |
| 371 | changes some of the time, but not during pretest, when I am trying to | 189 | changes some of the time, but not during pretest, when I am trying to |
| 372 | get a new version to work reliably as quickly as possible. | 190 | get a new version to work reliably as quickly as possible. |
| 373 | 191 | ||
| 374 | The safest changes for me to install are changes to the s- and m- | 192 | The safest changes for us to install are changes to the s- and m- |
| 375 | files. At least I know those can't affect most systems. | 193 | files. At least those can't break other systems. |
| 376 | 194 | ||
| 377 | Another safe kind of change is one that uses a conditional to make | 195 | Another safe kind of change is one that uses a conditional to make |
| 378 | sure it will apply only to a particular kind of system. Ordinarily, | 196 | sure it will apply only to a particular kind of system. Ordinarily, |
| @@ -380,60 +198,20 @@ that is a bad way to solve a problem, and I would want to find a | |||
| 380 | cleaner alternative. But the virtue of safety can make it superior at | 198 | cleaner alternative. But the virtue of safety can make it superior at |
| 381 | pretest time. | 199 | pretest time. |
| 382 | 200 | ||
| 383 | * Don't try changing Emacs *in any way* unless it fails to work unchanged. | 201 | * Don't suggest changes during pretest to add features or make |
| 384 | 202 | something cleaner. Every change risks introducing a bug, so I won't | |
| 385 | * Don't even suggest changes to add features or make something | 203 | install a change during pretest unless it is *necessary*. |
| 386 | cleaner. Every change I install could introduce a bug, so I won't | ||
| 387 | install a change during pretest unless I see it is *necessary*. | ||
| 388 | 204 | ||
| 389 | * If you would like to suggest changes for purposes other than fixing | 205 | * If you would like to suggest changes for purposes other than fixing |
| 390 | user-visible bugs, don't wait till pretest time. Instead, send them | 206 | user-visible bugs, don't wait till pretest time. Instead, send them |
| 391 | after I have made a release that proves to be stable. Then I can give | 207 | after we have made a release that proves to be stable. That is the |
| 392 | your suggestions proper consideration. If you send them at pretest | 208 | easiest time to consider such suggestions. If you send them at |
| 393 | time, I will have to defer them till later, and that might mean I | 209 | pretest time, we will have to defer them till later, and that might |
| 394 | forget all about them. | 210 | mean we forget all about them. |
| 395 | 211 | ||
| 396 | * In some cases, if you don't follow these guidelines, your | 212 | * In some cases, if you don't follow these guidelines, your |
| 397 | information might still be useful, but I might have to do more work to | 213 | information might still be useful, but we would have to do more work |
| 398 | make use of it. Unfortunately, I am so far behind in my work that I | 214 | to make use of it. That might cause it to fall by the wayside. |
| 399 | just can't keep up unless you help me to do it efficiently. | ||
| 400 | |||
| 401 | Some suggestions for debugging on MS Windows: | ||
| 402 | |||
| 403 | Marc Fleischeuers, Geoff Voelker and Andrew Innes | ||
| 404 | |||
| 405 | To debug emacs with Microsoft Visual C++, you either start emacs from | ||
| 406 | the debugger or attach the debugger to a running emacs process. To | ||
| 407 | start emacs from the debugger, you can use the file bin/debug.bat. The | ||
| 408 | Microsoft Developer studio will start and under Project, Settings, | ||
| 409 | Debug, General you can set the command-line arguments and emacs' | ||
| 410 | startup directory. Set breakpoints (Edit, Breakpoints) at Fsignal and | ||
| 411 | other functions that you want to examine. Run the program (Build, | ||
| 412 | Start debug). Emacs will start and the debugger will take control as | ||
| 413 | soon as a breakpoint is hit. | ||
| 414 | |||
| 415 | You can also attach the debugger to an already running emacs process. | ||
| 416 | To do this, start up the Microsoft Developer studio and select Build, | ||
| 417 | Start debug, Attach to process. Choose the emacs process from the | ||
| 418 | list. Send a break to the running process (Debug, Break) and you will | ||
| 419 | find that execution is halted somewhere in user32.dll. Open the stack | ||
| 420 | trace window and go up the stack to w32_msg_pump. Now you can set | ||
| 421 | breakpoints in emacs (Edit, Breakpoints). Continue the running emacs | ||
| 422 | process (Debug, Step out) and control will return to emacs, until a | ||
| 423 | breakpoint is hit. | ||
| 424 | |||
| 425 | To examine the contents of a lisp variable, you can use the function | ||
| 426 | 'debug_print'. Right-click on a variable, select QuickWatch, and | ||
| 427 | place 'debug_print(' and ')' around the expression. Press | ||
| 428 | 'Recalculate' and the output is sent to the 'Debug' pane in the Output | ||
| 429 | window. If emacs was started from the debugger, a console window was | ||
| 430 | opened at emacs' startup; this console window also shows the output of | ||
| 431 | 'debug_print'. It is also possible to keep appropriately masked and | ||
| 432 | typecast lisp symbols in the Watch window, this is more convenient | ||
| 433 | when steeping though the code. For instance, on entering | ||
| 434 | apply_lambda, you can watch (struct Lisp_Symbol *) (0xfffffff & | ||
| 435 | args[0]). | ||
| 436 | |||
| 437 | 215 | ||
| 438 | Local Variables: | 216 | Local Variables: |
| 439 | mode: text | 217 | mode: text |
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 4ca4a21feab..10fca7e84ac 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt | |||
| @@ -22,10 +22,10 @@ For each step, check for possible errors. | |||
| 22 | 5. rm configure; make bootstrap | 22 | 5. rm configure; make bootstrap |
| 23 | 23 | ||
| 24 | 6. Commit configure, README, AUTHORS, lisp/cus-load.el, | 24 | 6. Commit configure, README, AUTHORS, lisp/cus-load.el, |
| 25 | lisp/finder-inf.el, lisp/version.el, man/emacs.texi. | 25 | lisp/finder-inf.el, lisp/version.el, man/emacs.texi, |
| 26 | Copy lisp/loaddefs.el to lisp/ldefs-boot.el and commit | 26 | lispref/elisp.texi. Copy lisp/loaddefs.el to lisp/ldefs-boot.el |
| 27 | lisp/ldefs-boot.el. For a release, also commit the ChangeLog | 27 | and commit lisp/ldefs-boot.el. For a release, also commit the |
| 28 | files in all directories. | 28 | ChangeLog files in all directories. |
| 29 | 29 | ||
| 30 | 7. make-dist --snapshot. Check the contents of the new tar with | 30 | 7. make-dist --snapshot. Check the contents of the new tar with |
| 31 | admin/diff-tar-files against an older tar file. Some old pretest | 31 | admin/diff-tar-files against an older tar file. Some old pretest |