* Re: Pretest? @ 2007-02-26 2:39 Nick Roberts 2007-02-26 7:19 ` Pretest? David Kastrup 2007-02-26 8:47 ` Pretest? Richard Stallman 0 siblings, 2 replies; 91+ messages in thread From: Nick Roberts @ 2007-02-26 2:39 UTC (permalink / raw) To: emacs-devel > > I think a new pretest March 1 would be good. > OK, March 1 it is. If the release really will be soon, how about forking at the same time and imposing a formal approval procedure on the release branch to prevent unnecessary, and possibly adverse, commits? -- Nick http://www.inet.net.nz/~nickrob ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-26 2:39 Pretest? Nick Roberts @ 2007-02-26 7:19 ` David Kastrup 2007-02-26 9:07 ` Pretest? Nick Roberts 2007-02-26 8:47 ` Pretest? Richard Stallman 1 sibling, 1 reply; 91+ messages in thread From: David Kastrup @ 2007-02-26 7:19 UTC (permalink / raw) To: Nick Roberts; +Cc: emacs-devel Nick Roberts <nickrob@snap.net.nz> writes: >> > I think a new pretest March 1 would be good. > >> OK, March 1 it is. > > If the release really will be soon, how about forking at the same > time and imposing a formal approval procedure on the release branch > to prevent unnecessary, and possibly adverse, commits? Once we fork, no developer will look back. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-26 7:19 ` Pretest? David Kastrup @ 2007-02-26 9:07 ` Nick Roberts 0 siblings, 0 replies; 91+ messages in thread From: Nick Roberts @ 2007-02-26 9:07 UTC (permalink / raw) To: David Kastrup; +Cc: emacs-devel David Kastrup writes: > Nick Roberts <nickrob@snap.net.nz> writes: > > >> > I think a new pretest March 1 would be good. > > > >> OK, March 1 it is. > > > > If the release really will be soon, how about forking at the same > > time and imposing a formal approval procedure on the release branch > > to prevent unnecessary, and possibly adverse, commits? > > Once we fork, no developer will look back. Well obviously I disagree as most developers want to see a release. That clearly won't happen if they stop working on it. -- Nick http://www.inet.net.nz/~nickrob ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-26 2:39 Pretest? Nick Roberts 2007-02-26 7:19 ` Pretest? David Kastrup @ 2007-02-26 8:47 ` Richard Stallman 1 sibling, 0 replies; 91+ messages in thread From: Richard Stallman @ 2007-02-26 8:47 UTC (permalink / raw) To: Nick Roberts; +Cc: emacs-devel If the release really will be soon, how about forking at the same time and imposing a formal approval procedure on the release branch to prevent unnecessary, and possibly adverse, commits? I would rather keep Emacs 22 in the trunk until we release it. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: cygwin succesfull straight build
@ 2007-02-23 18:15 Eli Zaretskii
2007-03-07 1:26 ` Pretest? Angelo Graziosi
0 siblings, 1 reply; 91+ messages in thread
From: Eli Zaretskii @ 2007-02-23 18:15 UTC (permalink / raw)
To: Angelo Graziosi; +Cc: emacs-devel
> Date: Fri, 23 Feb 2007 14:07:19 +0100 (MET)
> From: Angelo Graziosi <Angelo.Graziosi@roma1.infn.it>
> cc: emacs-devel@gnu.org
>
> Eli Zaretskii wrote:
>
> > It is important for us to know whether the distribution tarball builds
> > (./configure; make; make install) cleanly on all supported platforms.
>
>
> If the pretest is
> ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.93.tar.gz (timestamp
> 01/23/2007 01:16, size 37,118,034), I have built it on Cygwin, since it
> was released, without problems (using GCC-4.0.3 for stability reasons).
Thanks. But I'd like to hear from other Cygwin users as well, if
there are any.
^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-23 18:15 cygwin succesfull straight build Eli Zaretskii @ 2007-03-07 1:26 ` Angelo Graziosi 2007-03-08 19:40 ` Pretest? Chong Yidong 0 siblings, 1 reply; 91+ messages in thread From: Angelo Graziosi @ 2007-03-07 1:26 UTC (permalink / raw) To: emacs-devel; +Cc: Eli Zaretskii Chong Yidong wrote: > I have rolled a 22.0.95 tarball, which can be found at the usual > location: > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.95.tar.gz > ... > I would know, if possible, how emacs-22.0.95.tar.gz has been generated. Thanks, Angelo. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-07 1:26 ` Pretest? Angelo Graziosi @ 2007-03-08 19:40 ` Chong Yidong 2007-03-09 13:59 ` Pretest? Giorgos Keramidas 0 siblings, 1 reply; 91+ messages in thread From: Chong Yidong @ 2007-03-08 19:40 UTC (permalink / raw) To: Angelo Graziosi; +Cc: Eli Zaretskii, emacs-devel Angelo Graziosi <Angelo.Graziosi@roma1.infn.it> writes: > Chong Yidong wrote: > >> I have rolled a 22.0.95 tarball, which can be found at the usual >> location: > >> ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.95.tar.gz >> ... >> > > I would know, if possible, how emacs-22.0.95.tar.gz has been generated. See admin/make-tarball.txt in the CVS repository. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-08 19:40 ` Pretest? Chong Yidong @ 2007-03-09 13:59 ` Giorgos Keramidas 2007-03-09 14:44 ` Pretest? Chong Yidong 0 siblings, 1 reply; 91+ messages in thread From: Giorgos Keramidas @ 2007-03-09 13:59 UTC (permalink / raw) To: Chong Yidong; +Cc: Eli Zaretskii, emacs-devel On 2007-03-08 14:40, Chong Yidong <cyd@stupidchicken.com> wrote: >> I would know, if possible, how emacs-22.0.95.tar.gz has been generated. > > See admin/make-tarball.txt in the CVS repository. Hi all, just a quick question: Are we going to have a new pretest tarball this week too? ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-09 13:59 ` Pretest? Giorgos Keramidas @ 2007-03-09 14:44 ` Chong Yidong 2007-03-09 17:07 ` Pretest? Christian Faulhammer ` (3 more replies) 0 siblings, 4 replies; 91+ messages in thread From: Chong Yidong @ 2007-03-09 14:44 UTC (permalink / raw) To: Giorgos Keramidas; +Cc: Eli Zaretskii, emacs-devel Giorgos Keramidas <keramida@ceid.upatras.gr> writes: > On 2007-03-08 14:40, Chong Yidong <cyd@stupidchicken.com> wrote: >>> I would know, if possible, how emacs-22.0.95.tar.gz has been generated. >> >> See admin/make-tarball.txt in the CVS repository. > > Hi all, just a quick question: > > Are we going to have a new pretest tarball this week too? I would like to suggest issuing a pretest on Monday the 12th. What do people think? ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-09 14:44 ` Pretest? Chong Yidong @ 2007-03-09 17:07 ` Christian Faulhammer 2007-03-09 17:35 ` Pretest? Juanma Barranquero 2007-03-09 17:49 ` Pretest? Eli Zaretskii ` (2 subsequent siblings) 3 siblings, 1 reply; 91+ messages in thread From: Christian Faulhammer @ 2007-03-09 17:07 UTC (permalink / raw) To: emacs-devel [-- Attachment #1.1: Type: text/plain, Size: 299 bytes --] Chong Yidong <cyd@stupidchicken.com>: > > Are we going to have a new pretest tarball this week too? > I would like to suggest issuing a pretest on Monday the 12th. What do > people think? Good idea, as there is a at least one annyoing bug in the snapshot that is fixed in CVS. V-Li [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 189 bytes --] [-- Attachment #2: Type: text/plain, Size: 142 bytes --] _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-09 17:07 ` Pretest? Christian Faulhammer @ 2007-03-09 17:35 ` Juanma Barranquero 2007-03-09 18:33 ` Pretest? Chong Yidong 0 siblings, 1 reply; 91+ messages in thread From: Juanma Barranquero @ 2007-03-09 17:35 UTC (permalink / raw) To: Christian Faulhammer; +Cc: emacs-devel On 3/9/07, Christian Faulhammer <v-li@gmx.de> wrote: > Good idea, as there is a at least one annyoing bug in the snapshot > that is fixed in CVS. What about M-: (describe-buffer-bindings "*scratch*") => CRASH! Is not annoying, just un-nice. Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-09 17:35 ` Pretest? Juanma Barranquero @ 2007-03-09 18:33 ` Chong Yidong 0 siblings, 0 replies; 91+ messages in thread From: Chong Yidong @ 2007-03-09 18:33 UTC (permalink / raw) To: Juanma Barranquero; +Cc: Christian Faulhammer, emacs-devel "Juanma Barranquero" <lekktu@gmail.com> writes: > On 3/9/07, Christian Faulhammer <v-li@gmx.de> wrote: > >> Good idea, as there is a at least one annyoing bug in the snapshot >> that is fixed in CVS. > > What about > > M-: (describe-buffer-bindings "*scratch*") => CRASH! > > Is not annoying, just un-nice. Thanks for finding that bug (and fixing it). ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-09 14:44 ` Pretest? Chong Yidong 2007-03-09 17:07 ` Pretest? Christian Faulhammer @ 2007-03-09 17:49 ` Eli Zaretskii 2007-03-09 18:07 ` Pretest? Giorgos Keramidas 2007-03-09 21:26 ` Pretest? Richard Stallman 2007-03-12 10:39 ` Pretest? Juanma Barranquero 3 siblings, 1 reply; 91+ messages in thread From: Eli Zaretskii @ 2007-03-09 17:49 UTC (permalink / raw) To: Chong Yidong; +Cc: keramida, emacs-devel > Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org > From: Chong Yidong <cyd@stupidchicken.com> > Date: Fri, 09 Mar 2007 09:44:23 -0500 > > I would like to suggest issuing a pretest on Monday the 12th. What do > people think? I think we need a new pretest ASAP, as the current one has a broken ps-print. March 12 is fine. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-09 17:49 ` Pretest? Eli Zaretskii @ 2007-03-09 18:07 ` Giorgos Keramidas 0 siblings, 0 replies; 91+ messages in thread From: Giorgos Keramidas @ 2007-03-09 18:07 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Chong Yidong, emacs-devel On 2007-03-09 19:49, Eli Zaretskii <eliz@gnu.org> wrote: > > Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org > > From: Chong Yidong <cyd@stupidchicken.com> > > Date: Fri, 09 Mar 2007 09:44:23 -0500 > > > > I would like to suggest issuing a pretest on Monday the 12th. What do > > people think? > > I think we need a new pretest ASAP, as the current one has a broken > ps-print. March 12 is fine. Cool! This was partly the reason for my asking. emacs-22.0.95 and ps-print fails here, but CVS head works fine. Thanks for the fast replies :) ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-09 14:44 ` Pretest? Chong Yidong 2007-03-09 17:07 ` Pretest? Christian Faulhammer 2007-03-09 17:49 ` Pretest? Eli Zaretskii @ 2007-03-09 21:26 ` Richard Stallman 2007-03-12 10:39 ` Pretest? Juanma Barranquero 3 siblings, 0 replies; 91+ messages in thread From: Richard Stallman @ 2007-03-09 21:26 UTC (permalink / raw) To: Chong Yidong; +Cc: keramida, eliz, emacs-devel I would like to suggest issuing a pretest on Monday the 12th. What do people think? Sounds good to me. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-09 14:44 ` Pretest? Chong Yidong ` (2 preceding siblings ...) 2007-03-09 21:26 ` Pretest? Richard Stallman @ 2007-03-12 10:39 ` Juanma Barranquero 2007-03-12 10:42 ` Pretest? David Kastrup ` (3 more replies) 3 siblings, 4 replies; 91+ messages in thread From: Juanma Barranquero @ 2007-03-12 10:39 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel On 3/9/07, Chong Yidong <cyd@stupidchicken.com> wrote: > I would like to suggest issuing a pretest on Monday the 12th. What do > people think? If you don't mind, I'd like to reach a consensus with respect to the emacsclient / isearch discussion in emacs-pretest-bugs. The proposed patch is tiny (seven lines plus comments), but the issue is larger, as it seems like Richard doesn't like emacsclient / server "forcibly exit[ing] the minibuffer" or "interfer[ing] with isearch". Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-12 10:39 ` Pretest? Juanma Barranquero @ 2007-03-12 10:42 ` David Kastrup 2007-03-12 11:46 ` Pretest? Juanma Barranquero 2007-03-12 14:53 ` Pretest? Stefan Monnier ` (2 subsequent siblings) 3 siblings, 1 reply; 91+ messages in thread From: David Kastrup @ 2007-03-12 10:42 UTC (permalink / raw) To: Juanma Barranquero; +Cc: Chong Yidong, emacs-devel "Juanma Barranquero" <lekktu@gmail.com> writes: > On 3/9/07, Chong Yidong <cyd@stupidchicken.com> wrote: > >> I would like to suggest issuing a pretest on Monday the 12th. What do >> people think? > > If you don't mind, I'd like to reach a consensus with respect to the > emacsclient / isearch discussion in emacs-pretest-bugs. The proposed > patch is tiny (seven lines plus comments), but the issue is larger, as > it seems like Richard doesn't like emacsclient / server "forcibly > exit[ing] the minibuffer" or "interfer[ing] with isearch". Well, seems like diverting the pretest-bug list to emacs-devel might not be the worst idea after all. -- David Kastrup ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-12 10:42 ` Pretest? David Kastrup @ 2007-03-12 11:46 ` Juanma Barranquero 0 siblings, 0 replies; 91+ messages in thread From: Juanma Barranquero @ 2007-03-12 11:46 UTC (permalink / raw) To: David Kastrup; +Cc: Chong Yidong, emacs-devel On 3/12/07, David Kastrup <dak@gnu.org> wrote: > "Juanma Barranquero" <lekktu@gmail.com> writes: > Well, seems like diverting the pretest-bug list to emacs-devel might > not be the worst idea after all. My thoughs exactly ;-) Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-12 10:39 ` Pretest? Juanma Barranquero 2007-03-12 10:42 ` Pretest? David Kastrup @ 2007-03-12 14:53 ` Stefan Monnier 2007-03-12 15:46 ` Pretest? Juanma Barranquero 2007-03-12 20:55 ` Pretest? Chong Yidong 2007-03-13 2:43 ` Pretest? Richard Stallman 3 siblings, 1 reply; 91+ messages in thread From: Stefan Monnier @ 2007-03-12 14:53 UTC (permalink / raw) To: Juanma Barranquero; +Cc: Chong Yidong, emacs-devel > If you don't mind, I'd like to reach a consensus with respect to the > emacsclient / isearch discussion in emacs-pretest-bugs. I don't see why this should delay the next pretest. Stefan ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-12 14:53 ` Pretest? Stefan Monnier @ 2007-03-12 15:46 ` Juanma Barranquero 2007-03-12 15:53 ` Pretest? David Kastrup 0 siblings, 1 reply; 91+ messages in thread From: Juanma Barranquero @ 2007-03-12 15:46 UTC (permalink / raw) To: Stefan Monnier; +Cc: Chong Yidong, emacs-devel On 3/12/07, Stefan Monnier <monnier@iro.umontreal.ca> wrote: > I don't see why this should delay the next pretest. It seems a bit silly to release a pretest just to change something non-trivial immediately afterwards. The patch I'm proposing is trivial, but IIUC what Richard is saying, perhaps greater changes will be needed. There's no harm in waiting a day or three, is it? Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-12 15:46 ` Pretest? Juanma Barranquero @ 2007-03-12 15:53 ` David Kastrup 0 siblings, 0 replies; 91+ messages in thread From: David Kastrup @ 2007-03-12 15:53 UTC (permalink / raw) To: Juanma Barranquero; +Cc: Chong Yidong, Stefan Monnier, emacs-devel "Juanma Barranquero" <lekktu@gmail.com> writes: > On 3/12/07, Stefan Monnier <monnier@iro.umontreal.ca> wrote: > >> I don't see why this should delay the next pretest. > > It seems a bit silly to release a pretest just to change something > non-trivial immediately afterwards. The patch I'm proposing is > trivial, but IIUC what Richard is saying, perhaps greater changes will > be needed. There's no harm in waiting a day or three, is it? For every pretest, I hope it will be the last. My next important conference with Emacs tutorials is at the end of April. A release will make persuading people to use Emacs 22 much easier. So I agree that it seems pointless to make a prerelease when fundamental things are scheduled for change or fixes. -- David Kastrup ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-12 10:39 ` Pretest? Juanma Barranquero 2007-03-12 10:42 ` Pretest? David Kastrup 2007-03-12 14:53 ` Pretest? Stefan Monnier @ 2007-03-12 20:55 ` Chong Yidong 2007-03-12 21:32 ` Pretest? Juanma Barranquero 2007-03-13 2:43 ` Pretest? Richard Stallman 3 siblings, 1 reply; 91+ messages in thread From: Chong Yidong @ 2007-03-12 20:55 UTC (permalink / raw) To: Juanma Barranquero; +Cc: emacs-devel "Juanma Barranquero" <lekktu@gmail.com> writes: > On 3/9/07, Chong Yidong <cyd@stupidchicken.com> wrote: > >> I would like to suggest issuing a pretest on Monday the 12th. What do >> people think? > > If you don't mind, I'd like to reach a consensus with respect to the > emacsclient / isearch discussion in emacs-pretest-bugs. The proposed > patch is tiny (seven lines plus comments), but the issue is larger, as > it seems like Richard doesn't like emacsclient / server "forcibly > exit[ing] the minibuffer" or "interfer[ing] with isearch". >From reading the discussion, I don't think there is any indication that a big change to Emacs is being called for (even taking Richard's rather terse comments into account). ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-12 20:55 ` Pretest? Chong Yidong @ 2007-03-12 21:32 ` Juanma Barranquero 2007-03-13 1:03 ` Pretest? Chong Yidong 0 siblings, 1 reply; 91+ messages in thread From: Juanma Barranquero @ 2007-03-12 21:32 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel On 3/12/07, Chong Yidong <cyd@stupidchicken.com> wrote: > From reading the discussion, I don't think there is any indication > that a big change to Emacs is being called for I didn't say "big". Still, I think significant would be a good description. Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-12 21:32 ` Pretest? Juanma Barranquero @ 2007-03-13 1:03 ` Chong Yidong 2007-03-13 9:37 ` Pretest? Juanma Barranquero 0 siblings, 1 reply; 91+ messages in thread From: Chong Yidong @ 2007-03-13 1:03 UTC (permalink / raw) To: Juanma Barranquero; +Cc: emacs-devel "Juanma Barranquero" <lekktu@gmail.com> writes: > On 3/12/07, Chong Yidong <cyd@stupidchicken.com> wrote: > >> From reading the discussion, I don't think there is any indication >> that a big change to Emacs is being called for > > I didn't say "big". Still, I think significant would be a good description. OK, let's wait a couple of days till Wednesday the 14th. I'd like to know exactly what "significant" changes Richard is asking for. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-13 1:03 ` Pretest? Chong Yidong @ 2007-03-13 9:37 ` Juanma Barranquero 0 siblings, 0 replies; 91+ messages in thread From: Juanma Barranquero @ 2007-03-13 9:37 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel On 3/13/07, Chong Yidong <cyd@stupidchicken.com> wrote: > I'd like to know exactly what "significant" changes Richard is asking > for. The ones in the next message in the thread? Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-12 10:39 ` Pretest? Juanma Barranquero ` (2 preceding siblings ...) 2007-03-12 20:55 ` Pretest? Chong Yidong @ 2007-03-13 2:43 ` Richard Stallman 2007-03-13 9:43 ` Pretest? Juanma Barranquero 3 siblings, 1 reply; 91+ messages in thread From: Richard Stallman @ 2007-03-13 2:43 UTC (permalink / raw) To: Juanma Barranquero; +Cc: cyd, emacs-devel If you don't mind, I'd like to reach a consensus with respect to the emacsclient / isearch discussion in emacs-pretest-bugs. The proposed patch is tiny (seven lines plus comments), but the issue is larger, as it seems like Richard doesn't like emacsclient / server "forcibly exit[ing] the minibuffer" or "interfer[ing] with isearch". I think that in cases like this server.el should display the new buffer in another window, so that the user knows to go over and edit it. But server.el should not mess up the command that is being executed. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-13 2:43 ` Pretest? Richard Stallman @ 2007-03-13 9:43 ` Juanma Barranquero 2007-03-13 9:52 ` Pretest? Andreas Schwab 2007-03-14 3:24 ` Pretest? Richard Stallman 0 siblings, 2 replies; 91+ messages in thread From: Juanma Barranquero @ 2007-03-13 9:43 UTC (permalink / raw) To: rms; +Cc: cyd, emacs-devel On 3/13/07, Richard Stallman <rms@gnu.org> wrote: > I think that in cases like this server.el should display the new buffer > in another window, so that the user knows to go over and edit it. If the user wants server.el to display emacsclient-sent buffers in another window or frame, he can set server-window. > But server.el should not mess up the command that is being executed. As David pointed out, emacsclient is rarely started in an asynchronous way; usually is as a result of user interaction, either clicking somewhere or typing "emacsclient myfile" in a shell. "Messing up" with the command being executed is exactly what I would expect from such an action. And IIRC, both the current isearch issue and the previous patch to abort recursive editing were prompted by users considering not doing that as a bug. Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-13 9:43 ` Pretest? Juanma Barranquero @ 2007-03-13 9:52 ` Andreas Schwab 2007-03-13 10:09 ` Pretest? David Kastrup 2007-03-13 10:23 ` Pretest? Juanma Barranquero 2007-03-14 3:24 ` Pretest? Richard Stallman 1 sibling, 2 replies; 91+ messages in thread From: Andreas Schwab @ 2007-03-13 9:52 UTC (permalink / raw) To: Juanma Barranquero; +Cc: cyd, rms, emacs-devel "Juanma Barranquero" <lekktu@gmail.com> writes: > On 3/13/07, Richard Stallman <rms@gnu.org> wrote: > >> But server.el should not mess up the command that is being executed. > > As David pointed out, emacsclient is rarely started in an asynchronous > way; usually is as a result of user interaction, either clicking > somewhere or typing "emacsclient myfile" in a shell. "Messing up" with > the command being executed is exactly what I would expect from such an > action. I agree. I have sometimes wondered why my emacsclient frame does not pop up (I have set server-window to create a new frame) when I have forgotten to exit an isearch in another frame. Normally almost any command will abort the isearch. > And IIRC, both the current isearch issue and the previous > patch to abort recursive editing were prompted by users considering > not doing that as a bug. Which I agree with aborting isearch, I don't agree with aborting a recursive editing, since the latter is not as much a modal thing. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-13 9:52 ` Pretest? Andreas Schwab @ 2007-03-13 10:09 ` David Kastrup 2007-03-13 10:23 ` Pretest? Juanma Barranquero 1 sibling, 0 replies; 91+ messages in thread From: David Kastrup @ 2007-03-13 10:09 UTC (permalink / raw) To: Andreas Schwab; +Cc: Juanma Barranquero, cyd, rms, emacs-devel Andreas Schwab <schwab@suse.de> writes: > "Juanma Barranquero" <lekktu@gmail.com> writes: > >> On 3/13/07, Richard Stallman <rms@gnu.org> wrote: >> >>> But server.el should not mess up the command that is being executed. >> >> As David pointed out, emacsclient is rarely started in an asynchronous >> way; usually is as a result of user interaction, either clicking >> somewhere or typing "emacsclient myfile" in a shell. "Messing up" with >> the command being executed is exactly what I would expect from such an >> action. > > I agree. I have sometimes wondered why my emacsclient frame does not pop > up (I have set server-window to create a new frame) when I have forgotten > to exit an isearch in another frame. Normally almost any command will > abort the isearch. > >> And IIRC, both the current isearch issue and the previous >> patch to abort recursive editing were prompted by users considering >> not doing that as a bug. > > Which I agree with aborting isearch, I don't agree with aborting a > recursive editing, since the latter is not as much a modal thing. To make that clear: my suggestion was about exiting the minibuffer. However, if point moves to the buffer window, exiting the minibuffer can probably be left to the normal recursive-minibuffer mechanisms that kick in when the user tries using the minibuffer other than moving back into it with C-x o. So that suggestion of mine was probably not really an improvement. -- David Kastrup ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-13 9:52 ` Pretest? Andreas Schwab 2007-03-13 10:09 ` Pretest? David Kastrup @ 2007-03-13 10:23 ` Juanma Barranquero 2007-03-19 5:15 ` Pretest? Richard Stallman 1 sibling, 1 reply; 91+ messages in thread From: Juanma Barranquero @ 2007-03-13 10:23 UTC (permalink / raw) To: Andreas Schwab; +Cc: cyd, rms, emacs-devel On 3/13/07, Andreas Schwab <schwab@suse.de> wrote: > Which I agree with aborting isearch, I don't agree with aborting a > recursive editing, since the latter is not as much a modal thing. This is the relevant code from server.el, which has been in place for 107 days now: (when (> (recursion-depth) 0) ;; We're inside a minibuffer already, so if the emacs-client is trying ;; to open a frame on a new display, we might end up with an unusable ;; frame because input from that display will be blocked (until exiting ;; the minibuffer). Better exit this minibuffer right away. ;; Similarly with recursive-edits such as the splash screen. (process-put proc :previous-string string) (run-with-timer 0 nil (lexical-let ((proc proc)) (lambda () (server-process-filter proc "")))) (top-level)) Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-13 10:23 ` Pretest? Juanma Barranquero @ 2007-03-19 5:15 ` Richard Stallman 0 siblings, 0 replies; 91+ messages in thread From: Richard Stallman @ 2007-03-19 5:15 UTC (permalink / raw) To: Juanma Barranquero; +Cc: schwab, cyd, emacs-devel ;; We're inside a minibuffer already, so if the emacs-client is trying ;; to open a frame on a new display, we might end up with an unusable ;; frame because input from that display will be blocked (until exiting ;; the minibuffer). Better exit this minibuffer right away. ;; Similarly with recursive-edits such as the splash screen. In the case where it really is on a different display, and if you don't see that other display, the result would be very undesirable. This code prevents that bad result. Unfortunately, there is no way ot distinguish the various cases, because there is no way for Lisp code to find out which frame or display the minibuffer is on. So I guess this has to be left alone. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-13 9:43 ` Pretest? Juanma Barranquero 2007-03-13 9:52 ` Pretest? Andreas Schwab @ 2007-03-14 3:24 ` Richard Stallman 2007-03-14 7:10 ` Pretest? David Kastrup ` (2 more replies) 1 sibling, 3 replies; 91+ messages in thread From: Richard Stallman @ 2007-03-14 3:24 UTC (permalink / raw) To: Juanma Barranquero; +Cc: cyd, emacs-devel > I think that in cases like this server.el should display the new buffer > in another window, so that the user knows to go over and edit it. If the user wants server.el to display emacsclient-sent buffers in another window or frame, he can set server-window. Yes, but that is a different issue. I am talking about what to do when emacsclient wants to display a buffer, but something like a minibuffer or an isearch prevents it from switching effectively to that buffer in the normal way. It should display that buffer in another window, and not abort anything. And IIRC, both the current isearch issue and the previous patch to abort recursive editing were prompted by users considering not doing that as a bug. I thought they complained because the buffer was not visible. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 3:24 ` Pretest? Richard Stallman @ 2007-03-14 7:10 ` David Kastrup 2007-03-14 13:39 ` Pretest? Stefan Monnier 2007-03-14 9:18 ` Pretest? Juanma Barranquero 2007-03-14 13:56 ` Pretest? Chong Yidong 2 siblings, 1 reply; 91+ messages in thread From: David Kastrup @ 2007-03-14 7:10 UTC (permalink / raw) To: rms; +Cc: Juanma Barranquero, cyd, emacs-devel Richard Stallman <rms@gnu.org> writes: > > I think that in cases like this server.el should display the new buffer > > in another window, so that the user knows to go over and edit it. > > If the user wants server.el to display emacsclient-sent buffers in > another window or frame, he can set server-window. > > Yes, but that is a different issue. I am talking about what to do > when emacsclient wants to display a buffer, but something like a > minibuffer or an isearch prevents it from switching effectively to > that buffer in the normal way. > > It should display that buffer in another window, and not abort > anything. > > And IIRC, both the current isearch issue and the previous > patch to abort recursive editing were prompted by users considering > not doing that as a bug. > > I thought they complained because the buffer was not visible. You can't show the buffer if an isearch is going on in a single frame with a single window and you are not going to interrupt isearch. -- David Kastrup ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 7:10 ` Pretest? David Kastrup @ 2007-03-14 13:39 ` Stefan Monnier 2007-03-14 14:04 ` Pretest? David Kastrup 0 siblings, 1 reply; 91+ messages in thread From: Stefan Monnier @ 2007-03-14 13:39 UTC (permalink / raw) To: David Kastrup; +Cc: Juanma Barranquero, cyd, rms, emacs-devel > You can't show the buffer if an isearch is going on in a single frame > with a single window and you are not going to interrupt isearch. Why not? Why can't it pop up in a new window? Stefan PS: I don't know if it'd be a good idea, tho. I'm just trying to understand. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 13:39 ` Pretest? Stefan Monnier @ 2007-03-14 14:04 ` David Kastrup 2007-03-14 14:19 ` Pretest? Stefan Monnier 0 siblings, 1 reply; 91+ messages in thread From: David Kastrup @ 2007-03-14 14:04 UTC (permalink / raw) To: Stefan Monnier; +Cc: Juanma Barranquero, cyd, rms, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> You can't show the buffer if an isearch is going on in a single frame >> with a single window and you are not going to interrupt isearch. > > Why not? Why can't it pop up in a new window? Where would that window be? Are you talking about splitting the frame? That might involve recentering. It would also be out of character to move window-point to the new window, since isearch does not normally offer a way to do window changes without exiting isearch. -- David Kastrup ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 14:04 ` Pretest? David Kastrup @ 2007-03-14 14:19 ` Stefan Monnier 0 siblings, 0 replies; 91+ messages in thread From: Stefan Monnier @ 2007-03-14 14:19 UTC (permalink / raw) To: David Kastrup; +Cc: Juanma Barranquero, cyd, rms, emacs-devel >>> You can't show the buffer if an isearch is going on in a single frame >>> with a single window and you are not going to interrupt isearch. >> Why not? Why can't it pop up in a new window? > Where would that window be? Are you talking about splitting the > frame? Well, yes: a *new* window. > That might involve recentering. Big deal! > It would also be out of character to move window-point to the new window, > since isearch does not normally offer a way to do window changes without > exiting isearch. Well, as I said in my PS whether it's a good idea or not is a separate issue. I was asking specifically why you thought it "can't" be done. Stefan ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 3:24 ` Pretest? Richard Stallman 2007-03-14 7:10 ` Pretest? David Kastrup @ 2007-03-14 9:18 ` Juanma Barranquero 2007-03-14 9:32 ` Pretest? David Kastrup 2007-03-14 13:56 ` Pretest? Chong Yidong 2 siblings, 1 reply; 91+ messages in thread From: Juanma Barranquero @ 2007-03-14 9:18 UTC (permalink / raw) To: rms; +Cc: cyd, emacs-devel On 3/14/07, Richard Stallman <rms@gnu.org> wrote: > I thought they complained because the buffer was not visible. The reporter said: "emacsclient seems to interrupt find-file, swith-to-buffer and areas marked to be copied, so I think it is somewhat inconsistent not to quit isearch and put the new buffer on top." We haven't done a poll of user expectations with respect to emacsclient, but I certainly wouldn't just expect the buffer to be visible, but selected as well. Cancelling isearch is not something done in extreme circunstances; almost anything you type or do will cancel it (like switching to another frame). What's so special in cancelling it from emacsclient? Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 9:18 ` Pretest? Juanma Barranquero @ 2007-03-14 9:32 ` David Kastrup 2007-03-14 9:44 ` Pretest? Juanma Barranquero 0 siblings, 1 reply; 91+ messages in thread From: David Kastrup @ 2007-03-14 9:32 UTC (permalink / raw) To: Juanma Barranquero; +Cc: cyd, rms, emacs-devel "Juanma Barranquero" <lekktu@gmail.com> writes: > On 3/14/07, Richard Stallman <rms@gnu.org> wrote: > >> I thought they complained because the buffer was not visible. > > The reporter said: "emacsclient seems to interrupt find-file, > swith-to-buffer and areas marked to be copied, so I think it is > somewhat inconsistent not to quit isearch and put the new buffer on > top." > > We haven't done a poll of user expectations with respect to > emacsclient, but I certainly wouldn't just expect the buffer to be > visible, but selected as well. > > Cancelling isearch is not something done in extreme circunstances; > almost anything you type or do will cancel it (like switching to > another frame). What's so special in cancelling it from emacsclient? Agreed. However, we should still come up with a suitable strategy concerning what we should do when we are in a minibuffer for other reasons (such as M-x). My initial impulse would be to let an emacsclient call behave like C-x C-f: this would with the default setting of enable-recursive-minibuffers (nil) cancel the minibuffer command, return to a non-minibuffer window and open the given file there. With enable-recursive-minibuffers to t, however, would then cause the message "Cannot switch buffers in minibuffer window". Suboptimal. But at least for the default settings, the behavior would be very much like what is expected. And I think even in the case where emacsclient -eval is used, the assumption of "clear minibuffer usage" seems reasonable, since that is somewhat equivalent to using M-: -- David Kastrup ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 9:32 ` Pretest? David Kastrup @ 2007-03-14 9:44 ` Juanma Barranquero 2007-03-14 10:07 ` Pretest? David Kastrup 0 siblings, 1 reply; 91+ messages in thread From: Juanma Barranquero @ 2007-03-14 9:44 UTC (permalink / raw) To: David Kastrup; +Cc: cyd, rms, emacs-devel On 3/14/07, David Kastrup <dak@gnu.org> wrote: > However, we should still come up with a suitable strategy > concerning what we should do when we are in a minibuffer for other > reasons (such as M-x). [...] > With enable-recursive-minibuffers to t, however, would then cause the > message "Cannot switch buffers in minibuffer window". Curious. I have enable-recursive-minibuffers set to t, but I would still expect emacsclient to interrupt M-x, etc. Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 9:44 ` Pretest? Juanma Barranquero @ 2007-03-14 10:07 ` David Kastrup 2007-03-14 10:17 ` Pretest? Juanma Barranquero 0 siblings, 1 reply; 91+ messages in thread From: David Kastrup @ 2007-03-14 10:07 UTC (permalink / raw) To: Juanma Barranquero; +Cc: cyd, rms, emacs-devel "Juanma Barranquero" <lekktu@gmail.com> writes: > On 3/14/07, David Kastrup <dak@gnu.org> wrote: > >> However, we should still come up with a suitable strategy >> concerning what we should do when we are in a minibuffer for other >> reasons (such as M-x). > > [...] > >> With enable-recursive-minibuffers to t, however, would then cause the >> message "Cannot switch buffers in minibuffer window". > > Curious. I have enable-recursive-minibuffers set to t, but I would > still expect emacsclient to interrupt M-x, etc. What is "curious" about that? I proposed what I consider a pretty logical and consistent way of dealing with emacsclient calls, and then mentioned a drawback of this for a certain setting. And now you call it curious that what I mention as a drawback does not strike you as the best behavior? Curious. Anyway: people are ready to forward their expectations all around. The question is how we can tie the various expectations into some rules and behavior that will be acceptable to most people under most settings. If we can find a simple rule set working for all cases reasonably well, this would be optimal. I proposed a simple rule set and mentioned that I considered some special case of it undesirable. Can you can come up with a good rule set (with as few exceptions as possible, since we want to avoid introducing lots of special cases) that is better-behaved? If so, please do. -- David Kastrup ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 10:07 ` Pretest? David Kastrup @ 2007-03-14 10:17 ` Juanma Barranquero 0 siblings, 0 replies; 91+ messages in thread From: Juanma Barranquero @ 2007-03-14 10:17 UTC (permalink / raw) To: David Kastrup; +Cc: cyd, rms, emacs-devel On 3/14/07, David Kastrup <dak@gnu.org> wrote: > What is "curious" about that? I proposed what I consider a pretty > logical and consistent way of dealing with emacsclient calls, and then > mentioned a drawback of this for a certain setting. > > And now you call it curious that what I mention as a drawback does not > strike you as the best behavior? > > Curious. Please, don't be so jumpy, because I tend to answer in the same mood and that leads to me being labeled as "aggressive" pretty fast :) My "curious" was meant as "it is curious how wildly different expectations are from one user (or indeed, developer) to another". No judgement, no implication that my choice was better, no nothing but a little wonder about human variability (and irritability, I would add as an afterthought). Honestly: I just read an old thread from September 2005 where some people was hopeful that 22.1 could be released that same year. So I'm now just a little sad, and the issue of whether emacsclient interrupts or not seems less and less important to me. I'd only like to ask that an option be left somewhere so overeager interrupters like me can do our thing without having to hack server.el. Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 3:24 ` Pretest? Richard Stallman 2007-03-14 7:10 ` Pretest? David Kastrup 2007-03-14 9:18 ` Pretest? Juanma Barranquero @ 2007-03-14 13:56 ` Chong Yidong 2007-03-14 14:24 ` Pretest? Stefan Monnier 2007-03-15 1:38 ` Pretest? Richard Stallman 2 siblings, 2 replies; 91+ messages in thread From: Chong Yidong @ 2007-03-14 13:56 UTC (permalink / raw) To: rms; +Cc: Juanma Barranquero, emacs-devel Richard Stallman <rms@gnu.org> writes: > > I think that in cases like this server.el should display the new buffer > > in another window, so that the user knows to go over and edit it. > > If the user wants server.el to display emacsclient-sent buffers in > another window or frame, he can set server-window. > > Yes, but that is a different issue. I am talking about what to do > when emacsclient wants to display a buffer, but something like a > minibuffer or an isearch prevents it from switching effectively to > that buffer in the normal way. > > It should display that buffer in another window, and not abort > anything. That might means the new buffer will not be immediately available for editing, until the user cancels the minibuffer or isearch. If the user calls emacsclient, the intention is almost certainly to perform the edit in Emacs, so this is a minor nuisance. Another possible complication (which I haven't thought much about) is when Emacs has frames open on more than one display. If you are currently working on one display, having left isearch on in another display, invoking emacsclient might lead to puzzling behavior. Anyway, I don't feel strongly about this issue one way or another. As Juanma has said, it's rather sad to have the Emacs 22 release drag on and on while we deal with this kind of nitpicky issues. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 13:56 ` Pretest? Chong Yidong @ 2007-03-14 14:24 ` Stefan Monnier 2007-03-15 1:38 ` Pretest? Richard Stallman 1 sibling, 0 replies; 91+ messages in thread From: Stefan Monnier @ 2007-03-14 14:24 UTC (permalink / raw) To: Chong Yidong; +Cc: Juanma Barranquero, rms, emacs-devel > Another possible complication (which I haven't thought much about) is > when Emacs has frames open on more than one display. If you are > currently working on one display, having left isearch on in another > display, invoking emacsclient might lead to puzzling behavior. Read the relevant code in server.el. It contains a comment that explains that the exit-minibuffer behavior is there specifically to deal with multi-display situations. This same problem doesn't directly affect isearch I believe, or at least not to the same extent (with recursive edits, the active terminal grabs control, so the other display's events are completely blocked). Supposedly, since isearch uses overriding-terminal-local-map, it should be possible to keep isearch running on the other display, but I believe that the current implementation of isearch mixes up terminal-local, buffer-local, and global settings in such a messed up way that it won't work without further changes. Stefan ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 13:56 ` Pretest? Chong Yidong 2007-03-14 14:24 ` Pretest? Stefan Monnier @ 2007-03-15 1:38 ` Richard Stallman 2007-03-15 10:04 ` Pretest? Juanma Barranquero 2007-03-15 15:44 ` Pretest? Chong Yidong 1 sibling, 2 replies; 91+ messages in thread From: Richard Stallman @ 2007-03-15 1:38 UTC (permalink / raw) To: Chong Yidong; +Cc: lekktu, emacs-devel > It should display that buffer in another window, and not abort > anything. That might means the new buffer will not be immediately available for editing, until the user cancels the minibuffer or isearch. That is right. The user will see the other buffer appear, and can either finish or cancel the command that is in progress. I think that is less harsh. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-15 1:38 ` Pretest? Richard Stallman @ 2007-03-15 10:04 ` Juanma Barranquero 2007-03-16 5:20 ` Pretest? Richard Stallman 2007-03-15 15:44 ` Pretest? Chong Yidong 1 sibling, 1 reply; 91+ messages in thread From: Juanma Barranquero @ 2007-03-15 10:04 UTC (permalink / raw) To: rms; +Cc: Chong Yidong, emacs-devel On 3/15/07, Richard Stallman <rms@gnu.org> wrote: > That is right. The user will see the other buffer appear, and can > either finish or cancel the command that is in progress. I think that > is less harsh. For some definition of "less harsh" that maps nicely to your tastes, perhaps. I much prefer to be interrupted, and profoundly dislike any code that splits my window without my explicit request. (Consider this as a petition to, at the very least, add an option to enable the interrupting, non-window-splitting behavior.) Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-15 10:04 ` Pretest? Juanma Barranquero @ 2007-03-16 5:20 ` Richard Stallman 0 siblings, 0 replies; 91+ messages in thread From: Richard Stallman @ 2007-03-16 5:20 UTC (permalink / raw) To: Juanma Barranquero; +Cc: cyd, emacs-devel (Consider this as a petition to, at the very least, add an option to enable the interrupting, non-window-splitting behavior.) I don't mind having it as an option. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-15 1:38 ` Pretest? Richard Stallman 2007-03-15 10:04 ` Pretest? Juanma Barranquero @ 2007-03-15 15:44 ` Chong Yidong 2007-03-16 5:21 ` Pretest? Richard Stallman 1 sibling, 1 reply; 91+ messages in thread From: Chong Yidong @ 2007-03-15 15:44 UTC (permalink / raw) To: rms; +Cc: lekktu, emacs-devel Richard Stallman <rms@gnu.org> writes: > > It should display that buffer in another window, and not abort > > anything. > > That might means the new buffer will not be immediately available for > editing, until the user cancels the minibuffer or isearch. > > That is right. The user will see the other buffer appear, and can > either finish or cancel the command that is in progress. I think that > is less harsh. By the way, do you actually use emacsclient/server yourself? It seems that people who actually do use emacsclient (well, and also everyone else who has weighed in on this matter) feel it is more intuitive for an emacsclient call to interrupt isearch, rather than the behavior you are proposing. In that sense, your "less harsh" behavior---whatever other benefits it might have---is actually more harsh, because it doesn't do what people expect. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-15 15:44 ` Pretest? Chong Yidong @ 2007-03-16 5:21 ` Richard Stallman 2007-03-16 7:36 ` Pretest? David Kastrup 0 siblings, 1 reply; 91+ messages in thread From: Richard Stallman @ 2007-03-16 5:21 UTC (permalink / raw) To: Chong Yidong; +Cc: lekktu, emacs-devel By the way, do you actually use emacsclient/server yourself? No, I don't use it. I have only occasionally tested it. I wonder about the statement that emacsclient is always invoked at specific user request. Indeed, that is usually so, but is it always so? As usage becomes more diverse, I expect it will cease to be true. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-16 5:21 ` Pretest? Richard Stallman @ 2007-03-16 7:36 ` David Kastrup 0 siblings, 0 replies; 91+ messages in thread From: David Kastrup @ 2007-03-16 7:36 UTC (permalink / raw) To: rms; +Cc: lekktu, Chong Yidong, emacs-devel Richard Stallman <rms@gnu.org> writes: > By the way, do you actually use emacsclient/server yourself? > > No, I don't use it. I have only occasionally tested it. > > I wonder about the statement that emacsclient is always invoked at > specific user request. Indeed, that is usually so, but is it always > so? As usage becomes more diverse, I expect it will cease to be > true. Why? Does your system tend to asynchronously pop up editors which you, as the user, did not request by some particular interaction? I never have experienced anything like that. The only case where one might be having second thoughts is for the _multi-tty_ branch: there it might be nice to not have the home display changed when one has connected via emacsclient from work in between. However, this is completely unfeasible due to Emacs' lack of multi-threading terminals: at some point of time, top-level will get executed in the remote tty, anyway. So I can't see where you get your ideas about typical usage of emacsclient, and it does not particularly help that you state that you don't actually use it, in contrast to the people reporting their expected behaviors. Perhaps you are thinking that one will use emacsclient --eval for doing some noninteractive system task in some asynchronous manner. However, it would be an awful mistake to do this with an interactive Emacs session since the state of such a session and the files it may have open (including password-protected files in different accounts accessed via tramp) are completely unknown. In spite of its name, emacsclient is very much restricted to behaving like an interactive _editor_. Using it for noninteractive non-user-initiated tasks would not be feasible. If you really wanted to build a system service executing Elisp based on it, you'd start an Emacs of its own, non-interactively, detached from a tty. We can't even do that in Emacs 22. So please let us not base our defaults on some weird case that is not likely to become the default usage in future and can't even be usefully employed in that manner in Emacs 22. -- David Kastrup ^ permalink raw reply [flat|nested] 91+ messages in thread
* Pretest? @ 2007-02-23 9:30 Juanma Barranquero 2007-02-23 18:06 ` Pretest? Eli Zaretskii 2007-02-23 18:48 ` Pretest? Chong Yidong 0 siblings, 2 replies; 91+ messages in thread From: Juanma Barranquero @ 2007-02-23 9:30 UTC (permalink / raw) To: Emacs-Devel A month since 22.0.93, and the flow of patches has slowed down quite a bit. Perhaps we should issue another pretest while we wait for the legal issues to be sorted out? Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-23 9:30 Pretest? Juanma Barranquero @ 2007-02-23 18:06 ` Eli Zaretskii 2007-02-23 18:48 ` Pretest? Chong Yidong 1 sibling, 0 replies; 91+ messages in thread From: Eli Zaretskii @ 2007-02-23 18:06 UTC (permalink / raw) To: Juanma Barranquero; +Cc: emacs-devel > Date: Fri, 23 Feb 2007 10:30:31 +0100 > From: "Juanma Barranquero" <lekktu@gmail.com> > > A month since 22.0.93, and the flow of patches has slowed down quite a > bit. Perhaps we should issue another pretest while we wait for the > legal issues to be sorted out? I'd prefer if we waited for a couple more days. I have a few important patches in my sandbox, and I'd like to see whether the latest changes in w32menu.c don't cause any trouble elsewhere. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-23 9:30 Pretest? Juanma Barranquero 2007-02-23 18:06 ` Pretest? Eli Zaretskii @ 2007-02-23 18:48 ` Chong Yidong 2007-02-23 19:36 ` Pretest? Eli Zaretskii 1 sibling, 1 reply; 91+ messages in thread From: Chong Yidong @ 2007-02-23 18:48 UTC (permalink / raw) To: Juanma Barranquero; +Cc: Emacs-Devel "Juanma Barranquero" <lekktu@gmail.com> writes: > A month since 22.0.93, and the flow of patches has slowed down quite a > bit. Perhaps we should issue another pretest while we wait for the > legal issues to be sorted out? I agree. (I was hoping Alan's C++ misfontification fix could come in time, but it can wait for the next tarball.) I have rolled a 22.0.94 tarball: ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.94.tar.gz ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.93-22.0.94.xdelta.sig (I didn't see Eli's message till I uploaded the tarball. Hopefully those patches can wait for the next tarball, along with the PGG doc fixes and the C++ fontification fix.) ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-23 18:48 ` Pretest? Chong Yidong @ 2007-02-23 19:36 ` Eli Zaretskii 2007-02-24 15:40 ` Pretest? Chong Yidong 0 siblings, 1 reply; 91+ messages in thread From: Eli Zaretskii @ 2007-02-23 19:36 UTC (permalink / raw) To: Chong Yidong; +Cc: lekktu, emacs-devel > From: Chong Yidong <cyd@stupidchicken.com> > Date: Fri, 23 Feb 2007 13:48:09 -0500 > Cc: Emacs-Devel <emacs-devel@gnu.org> > > I have rolled a 22.0.94 tarball: > > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.94.tar.gz > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.93-22.0.94.xdelta.sig > > (I didn't see Eli's message till I uploaded the tarball. Hopefully > those patches can wait for the next tarball, along with the PGG doc > fixes and the C++ fontification fix.) Please in the future wait for a while before you act. I don't always have time to react immediately, and I imagine others have such problems as well. My free time is very limited, so I usually can work on Emacs only on weekends. Thus, any changes that I need to make that take more than a few moments are delayed by several days. I suggest in the future to announce that you will produce the next pretest on such-and-such date (several days in the future), so that people who have important patches could install them in time for the pretest. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-23 19:36 ` Pretest? Eli Zaretskii @ 2007-02-24 15:40 ` Chong Yidong 2007-02-24 19:07 ` Pretest? Eli Zaretskii 0 siblings, 1 reply; 91+ messages in thread From: Chong Yidong @ 2007-02-24 15:40 UTC (permalink / raw) To: Eli Zaretskii; +Cc: lekktu, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > Please in the future wait for a while before you act. I don't always > have time to react immediately, and I imagine others have such > problems as well. My free time is very limited, so I usually can work > on Emacs only on weekends. Thus, any changes that I need to make that > take more than a few moments are delayed by several days. > > I suggest in the future to announce that you will produce the next > pretest on such-and-such date (several days in the future), so that > people who have important patches could install them in time for the > pretest. Yes, you're right. Maybe we should avoid announcing this pretest, and roll the next pretest in short order, so that it can include the GPG doc changes, the patches you are testing, and (hopefully) Alan's C++ fix. How about a week, say the weekend of March 1? ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-24 15:40 ` Pretest? Chong Yidong @ 2007-02-24 19:07 ` Eli Zaretskii 2007-02-25 4:05 ` Pretest? Richard Stallman 0 siblings, 1 reply; 91+ messages in thread From: Eli Zaretskii @ 2007-02-24 19:07 UTC (permalink / raw) To: Chong Yidong; +Cc: lekktu, emacs-devel > Cc: lekktu@gmail.com, emacs-devel@gnu.org > From: Chong Yidong <cyd@MIT.EDU> > Date: 24 Feb 2007 10:40:49 -0500 > > Maybe we should avoid announcing this pretest, and roll the next > pretest in short order, so that it can include the GPG doc changes, > the patches you are testing, and (hopefully) Alan's C++ fix. How > about a week, say the weekend of March 1? That'd be fine with me, thanks. But let's wait for Richard to comment on that. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-24 19:07 ` Pretest? Eli Zaretskii @ 2007-02-25 4:05 ` Richard Stallman 2007-02-25 19:33 ` Pretest? Chong Yidong 2007-03-01 23:38 ` Pretest? Chong Yidong 0 siblings, 2 replies; 91+ messages in thread From: Richard Stallman @ 2007-02-25 4:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: lekktu, emacs-devel, cyd I think a new pretest March 1 would be good. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-25 4:05 ` Pretest? Richard Stallman @ 2007-02-25 19:33 ` Chong Yidong 2007-03-01 23:38 ` Pretest? Chong Yidong 1 sibling, 0 replies; 91+ messages in thread From: Chong Yidong @ 2007-02-25 19:33 UTC (permalink / raw) To: rms; +Cc: lekktu, Eli Zaretskii, emacs-devel Richard Stallman <rms@gnu.org> writes: > I think a new pretest March 1 would be good. OK, March 1 it is. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-02-25 4:05 ` Pretest? Richard Stallman 2007-02-25 19:33 ` Pretest? Chong Yidong @ 2007-03-01 23:38 ` Chong Yidong 2007-03-02 1:12 ` Pretest? Lennart Borgman (gmail) ` (4 more replies) 1 sibling, 5 replies; 91+ messages in thread From: Chong Yidong @ 2007-03-01 23:38 UTC (permalink / raw) To: emacs-devel Richard Stallman <rms@gnu.org> writes: > I think a new pretest March 1 would be good. I have rolled a 22.0.95 tarball, which can be found at the usual location: ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.95.tar.gz ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.94-22.0.95.xdelta Personally, I think we should plan to release soon (assuming we can resolve or work around the remaining C++ fontification bug). ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-01 23:38 ` Pretest? Chong Yidong @ 2007-03-02 1:12 ` Lennart Borgman (gmail) 2007-03-02 2:01 ` Pretest? Juanma Barranquero ` (3 subsequent siblings) 4 siblings, 0 replies; 91+ messages in thread From: Lennart Borgman (gmail) @ 2007-03-02 1:12 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel Chong Yidong wrote: > Richard Stallman <rms@gnu.org> writes: > >> I think a new pretest March 1 would be good. > > I have rolled a 22.0.95 tarball, which can be found at the usual > location: > > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.95.tar.gz > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.94-22.0.95.xdelta > > Personally, I think we should plan to release soon (assuming we can > resolve or work around the remaining C++ fontification bug). New precompiled binaries (unpatched) available at http://ourcomments.org/cgi-bin/emacsw32-dl-latest.pl ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-01 23:38 ` Pretest? Chong Yidong 2007-03-02 1:12 ` Pretest? Lennart Borgman (gmail) @ 2007-03-02 2:01 ` Juanma Barranquero 2007-03-02 8:20 ` Pretest? David Kastrup 2007-03-03 11:40 ` Pretest? Eli Zaretskii ` (2 subsequent siblings) 4 siblings, 1 reply; 91+ messages in thread From: Juanma Barranquero @ 2007-03-02 2:01 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel On 3/2/07, Chong Yidong <cyd@stupidchicken.com> wrote: > Personally, I think we should plan to release soon (assuming we can > resolve or work around the remaining C++ fontification bug). I was under the impression our waiting was mainly caused by lawyers, not bugs. Now that I think of it... Hmm... Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-02 2:01 ` Pretest? Juanma Barranquero @ 2007-03-02 8:20 ` David Kastrup 2007-03-02 9:23 ` Pretest? Juanma Barranquero 0 siblings, 1 reply; 91+ messages in thread From: David Kastrup @ 2007-03-02 8:20 UTC (permalink / raw) To: Juanma Barranquero; +Cc: Chong Yidong, emacs-devel "Juanma Barranquero" <lekktu@gmail.com> writes: > On 3/2/07, Chong Yidong <cyd@stupidchicken.com> wrote: > >> Personally, I think we should plan to release soon (assuming we can >> resolve or work around the remaining C++ fontification bug). > > I was under the impression our waiting was mainly caused by lawyers, > not bugs. > > Now that I think of it... Hmm... Gregor Samsa was a travelling salesman. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-02 8:20 ` Pretest? David Kastrup @ 2007-03-02 9:23 ` Juanma Barranquero 0 siblings, 0 replies; 91+ messages in thread From: Juanma Barranquero @ 2007-03-02 9:23 UTC (permalink / raw) To: David Kastrup; +Cc: emacs-devel On 3/2/07, David Kastrup <dak@gnu.org> wrote: > Gregor Samsa was a travelling salesman. Now *that*'s a beatiful thought when dealing with some salesmen I've met... Juanma ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-01 23:38 ` Pretest? Chong Yidong 2007-03-02 1:12 ` Pretest? Lennart Borgman (gmail) 2007-03-02 2:01 ` Pretest? Juanma Barranquero @ 2007-03-03 11:40 ` Eli Zaretskii 2007-03-04 0:28 ` Pretest? Giorgos Keramidas 2007-03-06 9:38 ` Pretest? Piet van Oostrum 4 siblings, 0 replies; 91+ messages in thread From: Eli Zaretskii @ 2007-03-03 11:40 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-pretest-bug, emacs-devel > From: Chong Yidong <cyd@stupidchicken.com> > Date: Thu, 01 Mar 2007 18:38:43 -0500 > > I have rolled a 22.0.95 tarball, which can be found at the usual > location: > > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.95.tar.gz > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.94-22.0.95.xdelta I tested this with: . GCC 3.4.2 (mingw-special), Binutils 2.15.91 20040904 and MinGW v3.7 on Windows XP . GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5), Binutils 2.16.91 20060118 on Linux fencepost 2.6.16.29-xen #1 SMP Wed Dec 6 07:32:36 EST 2006 x86_64 GNU/Linux The pretest builds okay on both platforms and appears to run fine. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-01 23:38 ` Pretest? Chong Yidong ` (2 preceding siblings ...) 2007-03-03 11:40 ` Pretest? Eli Zaretskii @ 2007-03-04 0:28 ` Giorgos Keramidas 2007-03-04 20:25 ` Pretest? Chong Yidong 2007-03-06 9:38 ` Pretest? Piet van Oostrum 4 siblings, 1 reply; 91+ messages in thread From: Giorgos Keramidas @ 2007-03-04 0:28 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel On 2007-03-01 18:38, Chong Yidong <cyd@stupidchicken.com> wrote: >Richard Stallman <rms@gnu.org> writes: >> I think a new pretest March 1 would be good. > > I have rolled a 22.0.95 tarball, which can be found at the usual > location: > > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.95.tar.gz > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-22.0.94-22.0.95.xdelta I just finished build-testing on: FreeBSD 7.0-CURRENT #0: Tue Feb 27 01:25:46 EET 2007 This pretest builds fine with both Lucid widgets and GTK+ widgets. The Lucid version runs fine (it's what I've been using since last October, when I switched to Emacs 22.X). While I'm running the GTK+ version, however, I can crash Emacs in emacs_blocked_free() by following the steps outlined below: * Run Emacs inside gdb: ,----------------------------------------------------------------------- | | keramida@kobe:/home/keramida/tmp/emacs-22.0.95/src$ gdb ./emacs-22.0.95.1 | GNU gdb 6.1.1 [FreeBSD] | Copyright 2004 Free Software Foundation, Inc. | GDB is free software, covered by the GNU General Public License, and you are | welcome to change it and/or distribute copies of it under certain conditions. | Type "show copying" to see the conditions. | There is absolutely no warranty for GDB. Type "show warranty" for details. | This GDB was configured as "i386-marcel-freebsd"...No symbol table is loaded. Use the "file" command. | | DISPLAY = :0 | TERM = vt220 | Breakpoint 1 at 0x80e7c0a: file emacs.c, line 431. | Breakpoint 2 at 0x80ff6fd: file sysdep.c, line 1385. | (gdb) r | Starting program: /home/keramida/tmp/emacs-22.0.95/src/emacs-22.0.95.1 -geometry 80x40+0+0 | warning: Unable to get location for thread creation breakpoint: generic error | [New LWP 100067] | [New Thread 0x8424800 (LWP 100067)] | [Switching to Thread 0x8424800 (LWP 100067)] | Breakpoint 3 at 0x80c6fcc: file xterm.c, line 7852. | [New Thread 0x8424a00 (LWP 100205)] | | [...] `----------------------------------------------------------------------- * Run M-x gnus-agent-batch while my network connection is disabled, and let it time-out. It prompts me for going into `off-line mode', to which I reply `yes'. * The next time I input C-z Emacs crashes with a backtrace of: ,----------------------------------------------------------------------- | | Program received signal SIGSEGV, Segmentation fault. | 0x081895e0 in _free_internal (ptr=0x29a82300) at gmalloc.c:1197 | 1197 next->next = prev->next; | (gdb) bt | #0 0x081895e0 in _free_internal (ptr=0x29a82300) at gmalloc.c:1197 | #1 0x08133683 in emacs_blocked_free (ptr=0x29a82300, ptr2=0xbfbfdbf4) at alloc.c:1207 | #2 0x288694c4 in g_slice_get_config_state () from /usr/local/lib/libglib-2.0.so.0 | #3 0x28869713 in g_slice_get_config_state () from /usr/local/lib/libglib-2.0.so.0 | #4 0x28869887 in g_slice_get_config_state () from /usr/local/lib/libglib-2.0.so.0 | #5 0x28869f5c in g_slice_free1 () from /usr/local/lib/libglib-2.0.so.0 | #6 0x2884a41b in g_hash_table_ref () from /usr/local/lib/libglib-2.0.so.0 | #7 0x2884acf4 in g_hash_table_remove_all () from /usr/local/lib/libglib-2.0.so.0 | #8 0x2884ad8c in g_hash_table_destroy () from /usr/local/lib/libglib-2.0.so.0 | #9 0x298e8c7a in pixbuf_create_from_xpm () from /usr/local/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-xpm.so | #10 0x298e92ba in gdk_pixbuf__xpm_image_load_xpm_data () | from /usr/local/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-xpm.so | #11 0x28583024 in gdk_pixbuf_new_from_xpm_data () from /usr/local/lib/libgdk_pixbuf-2.0.so.0 | #12 0x080c8f87 in xg_set_icon_from_xpm_data (f=0x7f, data=0x81a0e60) at xfns.c:830 | #13 0x080c4d97 in x_bitmap_icon (f=0x83b0e00, file=137435185) at xterm.c:7444 | #14 0x080c4ea4 in x_iconify_frame (f=0x83b0e00) at xterm.c:9162 | #15 0x0805c92b in Ficonify_frame (frame=1645188) at frame.c:1711 | #16 0x08148cab in Ffuncall (nargs=1, args=0x819f2c8) at eval.c:3000 | #17 0x08170a59 in Fbyte_code (bytestr=1645188, vector=-1077943888, maxdepth=0) at bytecode.c:679 | #18 0x0814872f in funcall_lambda (fun=136384076, nargs=0, arg_vector=0xbfbfe304) at eval.c:3184 | #19 0x08148b5a in Ffuncall (nargs=1, args=0x8210e4c) at eval.c:3054 | #20 0x0814a0d2 in apply1 (fn=139454561, arg=137435137) at eval.c:2738 | #21 0x081463fc in Fcall_interactively (function=139454561, record_flag=137435137, keys=137363204) at callint.c:406 | #22 0x080ef01d in Fcommand_execute (cmd=139454561, record_flag=137435137, keys=137435137, special=137435137) | at keyboard.c:10014 | #23 0x080f6142 in command_loop_1 () at keyboard.c:1873 | #24 0x081470ae in internal_condition_case (bfun=0x80f5dd0 <command_loop_1>, handlers=137482865, | hfun=0x80ef968 <cmd_error>) at eval.c:1481 | #25 0x080e9f26 in command_loop_2 () at keyboard.c:1329 | #26 0x08146dd5 in internal_catch (tag=127, func=0x80e9f08 <command_loop_2>, arg=137435137) at eval.c:1222 | #27 0x080e9d65 in command_loop () at keyboard.c:1308 | #28 0x080e9e00 in recursive_edit_1 () at keyboard.c:1006 | #29 0x080e9eca in Frecursive_edit () at keyboard.c:1067 | #30 0x080e9352 in main (argc=3, argv=0xbfbfe828) at emacs.c:1761 | | Lisp Backtrace: | "iconify-frame" (0x8311831) | "iconify-or-deiconify-frame" (0x8311801) | "call-interactively" (0x84fe861) | (gdb) | `----------------------------------------------------------------------- This GTK+-enabled Emacs has been compiled in ~/tmp/emacs-22.0.95 with the following configure-time options: ./configure --prefix=/opt/emacs --with-x --with-x-toolkit=gtk \ --with-xpm --with-jpeg --with-tiff --with-gif --with-png I can upload the full config.log and 'emacs-22.0.95.log' file if it helps, but I don't really know how to track this down to its real cause. FWIW, the crash is not repeatable when Emacs is built with the Lucid widget set. - Giorgos ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-04 0:28 ` Pretest? Giorgos Keramidas @ 2007-03-04 20:25 ` Chong Yidong 2007-03-04 20:32 ` Pretest? Giorgos Keramidas ` (2 more replies) 0 siblings, 3 replies; 91+ messages in thread From: Chong Yidong @ 2007-03-04 20:25 UTC (permalink / raw) To: Giorgos Keramidas; +Cc: emacs-devel Giorgos Keramidas <keramida@ceid.upatras.gr> writes: > FreeBSD 7.0-CURRENT #0: Tue Feb 27 01:25:46 EET 2007 > > While I'm running the GTK+ version, however, I can crash Emacs in > emacs_blocked_free() by following the steps outlined below: > > * Run Emacs inside gdb: > * Run M-x gnus-agent-batch while my network connection is > disabled, and let it time-out. It prompts me for going into > `off-line mode', to which I reply `yes'. > * The next time I input C-z Emacs crashes with a backtrace of: I can't seem to reproduce this on GNU/Linux (I don't have a FreeBSD box handy). It's strange that gnus-agent batch has anything to do with it. Have you been able to reproduce the C-z crash in any other circumstance? (It is better to get a recipe not involving gnus, since that might depend on your newsgroup settings.) In any case, the backtrace indicates that the crash occurs deep in GTK/Glib. If you look at what is occurring in the Emacs code, what we're doing is perfectly innocuous: gdk_pixbuf_new_from_xpm_data() is called on a static character array containing an XPM image. So the bug is probably in GTK or Glib, not in Emacs. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-04 20:25 ` Pretest? Chong Yidong @ 2007-03-04 20:32 ` Giorgos Keramidas 2007-03-04 20:38 ` Pretest? David Kastrup 2007-03-05 7:13 ` Pretest? Jan Djärv 2 siblings, 0 replies; 91+ messages in thread From: Giorgos Keramidas @ 2007-03-04 20:32 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel On 2007-03-04 15:25, Chong Yidong <cyd@stupidchicken.com> wrote: >Giorgos Keramidas <keramida@ceid.upatras.gr> writes: >> FreeBSD 7.0-CURRENT #0: Tue Feb 27 01:25:46 EET 2007 >> >> While I'm running the GTK+ version, however, I can crash Emacs in >> emacs_blocked_free() by following the steps outlined below: >> >> * Run Emacs inside gdb: >> * Run M-x gnus-agent-batch while my network connection is >> disabled, and let it time-out. It prompts me for going into >> `off-line mode', to which I reply `yes'. >> * The next time I input C-z Emacs crashes with a backtrace of: > > I can't seem to reproduce this on GNU/Linux (I don't have a FreeBSD > box handy). It's strange that gnus-agent batch has anything to do > with it. Have you been able to reproduce the C-z crash in any other > circumstance? (It is better to get a recipe not involving gnus, since > that might depend on your newsgroup settings.) I haven't been able to reproduce this consistently, and most of the times I fire up Emacs I also start Gnus. I'll try to see if I can reproduce this without running Gnus at all. > In any case, the backtrace indicates that the crash occurs deep in > GTK/Glib. If you look at what is occurring in the Emacs code, what > we're doing is perfectly innocuous: gdk_pixbuf_new_from_xpm_data() is > called on a static character array containing an XPM image. So the > bug is probably in GTK or Glib, not in Emacs. Ok, I'm not sure if this is an Emacs bug. It is definitely *not* reproducible with any other toolkit, so it may be ok for the update of the package/port to 22.0.95 to use a warning in the package installation which mentions that 'make WITH_GTK=yes' *may* cause problems. Thanks for the help :) - Giorgos ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-04 20:25 ` Pretest? Chong Yidong 2007-03-04 20:32 ` Pretest? Giorgos Keramidas @ 2007-03-04 20:38 ` David Kastrup 2007-03-04 20:47 ` Pretest? Giorgos Keramidas 2007-03-05 7:13 ` Pretest? Jan Djärv 2 siblings, 1 reply; 91+ messages in thread From: David Kastrup @ 2007-03-04 20:38 UTC (permalink / raw) To: Chong Yidong; +Cc: Giorgos Keramidas, emacs-devel Chong Yidong <cyd@stupidchicken.com> writes: > Giorgos Keramidas <keramida@ceid.upatras.gr> writes: > >> FreeBSD 7.0-CURRENT #0: Tue Feb 27 01:25:46 EET 2007 >> >> While I'm running the GTK+ version, however, I can crash Emacs in >> emacs_blocked_free() by following the steps outlined below: >> >> * Run Emacs inside gdb: >> * Run M-x gnus-agent-batch while my network connection is >> disabled, and let it time-out. It prompts me for going into >> `off-line mode', to which I reply `yes'. >> * The next time I input C-z Emacs crashes with a backtrace of: > > I can't seem to reproduce this on GNU/Linux (I don't have a FreeBSD > box handy). It's strange that gnus-agent batch has anything to do > with it. Have you been able to reproduce the C-z crash in any other > circumstance? (It is better to get a recipe not involving gnus, since > that might depend on your newsgroup settings.) > > In any case, the backtrace indicates that the crash occurs deep in > GTK/Glib. If you look at what is occurring in the Emacs code, what > we're doing is perfectly innocuous: gdk_pixbuf_new_from_xpm_data() is > called on a static character array containing an XPM image. So the > bug is probably in GTK or Glib, not in Emacs. Could not possibly have anything to do with the following? 2007-03-01 Kenichi Handa <handa@m17n.org> * process.c (send_process_object): Check the process status and signal an error if something is wrong. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-04 20:38 ` Pretest? David Kastrup @ 2007-03-04 20:47 ` Giorgos Keramidas 2007-03-05 7:15 ` Pretest? Jan Djärv 0 siblings, 1 reply; 91+ messages in thread From: Giorgos Keramidas @ 2007-03-04 20:47 UTC (permalink / raw) To: David Kastrup; +Cc: Chong Yidong, emacs-devel On 2007-03-04 21:38, David Kastrup <dak@gnu.org> wrote: >Chong Yidong <cyd@stupidchicken.com> writes: >> Giorgos Keramidas <keramida@ceid.upatras.gr> writes: >> >>> FreeBSD 7.0-CURRENT #0: Tue Feb 27 01:25:46 EET 2007 >>> >>> While I'm running the GTK+ version, however, I can crash Emacs in >>> emacs_blocked_free() by following the steps outlined below: >>> >>> * Run Emacs inside gdb: >>> * Run M-x gnus-agent-batch while my network connection is >>> disabled, and let it time-out. It prompts me for going into >>> `off-line mode', to which I reply `yes'. >>> * The next time I input C-z Emacs crashes with a backtrace of: >> >> I can't seem to reproduce this on GNU/Linux (I don't have a FreeBSD >> box handy). It's strange that gnus-agent batch has anything to do >> with it. Have you been able to reproduce the C-z crash in any other >> circumstance? (It is better to get a recipe not involving gnus, since >> that might depend on your newsgroup settings.) >> >> In any case, the backtrace indicates that the crash occurs deep in >> GTK/Glib. If you look at what is occurring in the Emacs code, what >> we're doing is perfectly innocuous: gdk_pixbuf_new_from_xpm_data() is >> called on a static character array containing an XPM image. So the >> bug is probably in GTK or Glib, not in Emacs. > > Could not possibly have anything to do with the following? > > 2007-03-01 Kenichi Handa <handa@m17n.org> > > * process.c (send_process_object): Check the process status and > signal an error if something is wrong. I sort of doubt that, but I can test. IIRC, Emacs 22.X had problems on FreeBSD with GTK+ a long time ago too. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-04 20:47 ` Pretest? Giorgos Keramidas @ 2007-03-05 7:15 ` Jan Djärv 2007-03-15 10:39 ` Pretest? YAMAMOTO Mitsuharu 0 siblings, 1 reply; 91+ messages in thread From: Jan Djärv @ 2007-03-05 7:15 UTC (permalink / raw) To: Giorgos Keramidas; +Cc: Chong Yidong, emacs-devel Giorgos Keramidas skrev: > On 2007-03-04 21:38, David Kastrup <dak@gnu.org> wrote: >> Chong Yidong <cyd@stupidchicken.com> writes: >>> Giorgos Keramidas <keramida@ceid.upatras.gr> writes: >>> >>>> FreeBSD 7.0-CURRENT #0: Tue Feb 27 01:25:46 EET 2007 >>>> >>>> While I'm running the GTK+ version, however, I can crash Emacs in >>>> emacs_blocked_free() by following the steps outlined below: >>>> >>>> * Run Emacs inside gdb: >>>> * Run M-x gnus-agent-batch while my network connection is >>>> disabled, and let it time-out. It prompts me for going into >>>> `off-line mode', to which I reply `yes'. >>>> * The next time I input C-z Emacs crashes with a backtrace of: >>> I can't seem to reproduce this on GNU/Linux (I don't have a FreeBSD >>> box handy). It's strange that gnus-agent batch has anything to do >>> with it. Have you been able to reproduce the C-z crash in any other >>> circumstance? (It is better to get a recipe not involving gnus, since >>> that might depend on your newsgroup settings.) >>> >>> In any case, the backtrace indicates that the crash occurs deep in >>> GTK/Glib. If you look at what is occurring in the Emacs code, what >>> we're doing is perfectly innocuous: gdk_pixbuf_new_from_xpm_data() is >>> called on a static character array containing an XPM image. So the >>> bug is probably in GTK or Glib, not in Emacs. >> Could not possibly have anything to do with the following? >> >> 2007-03-01 Kenichi Handa <handa@m17n.org> >> >> * process.c (send_process_object): Check the process status and >> signal an error if something is wrong. > > I sort of doubt that, but I can test. > > IIRC, Emacs 22.X had problems on FreeBSD with GTK+ a long time ago too. As I recall, it was the threading issue that was the problem then. Are there multiple threads running in Emacs at the time of the crash? info threads in gdb will show you that. A backtrace for each thread, if there are several, would be nice. Jan D. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-05 7:15 ` Pretest? Jan Djärv @ 2007-03-15 10:39 ` YAMAMOTO Mitsuharu 2007-03-15 11:04 ` Pretest? Jan Djärv 0 siblings, 1 reply; 91+ messages in thread From: YAMAMOTO Mitsuharu @ 2007-03-15 10:39 UTC (permalink / raw) To: Jan Djärv; +Cc: Giorgos Keramidas, Chong Yidong, emacs-devel >>>>> On Mon, 05 Mar 2007 08:15:40 +0100, Jan Djärv <jan.h.d@swipnet.se> said: >> IIRC, Emacs 22.X had problems on FreeBSD with GTK+ a long time ago >> too. > As I recall, it was the threading issue that was the problem then. > Are there multiple threads running in Emacs at the time of the > crash? info threads in gdb will show you that. A backtrace for > each thread, if there are several, would be nice. I suspect src/gmalloc.c, which does not provide thread-safe malloc (correct me if I'm wrong), is used while HAVE_GTK_AND_PTHREAD is defined. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-15 10:39 ` Pretest? YAMAMOTO Mitsuharu @ 2007-03-15 11:04 ` Jan Djärv 2007-03-15 12:08 ` Pretest? YAMAMOTO Mitsuharu 0 siblings, 1 reply; 91+ messages in thread From: Jan Djärv @ 2007-03-15 11:04 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: Giorgos Keramidas, Chong Yidong, emacs-devel YAMAMOTO Mitsuharu skrev: >>>>>> On Mon, 05 Mar 2007 08:15:40 +0100, Jan Djärv <jan.h.d@swipnet.se> said: > >>> IIRC, Emacs 22.X had problems on FreeBSD with GTK+ a long time ago >>> too. > >> As I recall, it was the threading issue that was the problem then. >> Are there multiple threads running in Emacs at the time of the >> crash? info threads in gdb will show you that. A backtrace for >> each thread, if there are several, would be nice. > > I suspect src/gmalloc.c, which does not provide thread-safe malloc > (correct me if I'm wrong), is used while HAVE_GTK_AND_PTHREAD is > defined. If src/gmalloc.c is used, then the hooks in alloc.c are used, so they should be thread safe. Jan D. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-15 11:04 ` Pretest? Jan Djärv @ 2007-03-15 12:08 ` YAMAMOTO Mitsuharu 2007-03-16 7:52 ` Pretest? Jan Djärv 0 siblings, 1 reply; 91+ messages in thread From: YAMAMOTO Mitsuharu @ 2007-03-15 12:08 UTC (permalink / raw) To: jan.h.d; +Cc: keramida, cyd, emacs-devel >>>>> On Thu, 15 Mar 2007 12:04:33 +0100, Jan Djärv <jan.h.d@swipnet.se> said: >> I suspect src/gmalloc.c, which does not provide thread-safe malloc >> (correct me if I'm wrong), is used while HAVE_GTK_AND_PTHREAD is >> defined. > If src/gmalloc.c is used, then the hooks in alloc.c are used, so > they should be thread safe. No, alloc_mutex only protects the variables __malloc_hook etc., but not for the heap itself. Consider the following scenario: 1) The main thread calls malloc. 2) It then calls emacs_blocked_malloc via __malloc_hook. 3) __malloc_hook is set to old_malloc_hook in emacs_blocked_malloc. 4) Now the main thread is in execution of the original malloc. 5) Another thread also calls malloc. 6) The thread also executes the original malloc because __malloc_hook == old_malloc_hook. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-15 12:08 ` Pretest? YAMAMOTO Mitsuharu @ 2007-03-16 7:52 ` Jan Djärv 2007-03-19 8:00 ` Pretest? Jan Djärv 0 siblings, 1 reply; 91+ messages in thread From: Jan Djärv @ 2007-03-16 7:52 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: keramida, cyd, emacs-devel YAMAMOTO Mitsuharu skrev: >>>>>> On Thu, 15 Mar 2007 12:04:33 +0100, Jan Djärv <jan.h.d@swipnet.se> said: > >>> I suspect src/gmalloc.c, which does not provide thread-safe malloc >>> (correct me if I'm wrong), is used while HAVE_GTK_AND_PTHREAD is >>> defined. > >> If src/gmalloc.c is used, then the hooks in alloc.c are used, so >> they should be thread safe. > > No, alloc_mutex only protects the variables __malloc_hook etc., but > not for the heap itself. Consider the following scenario: > > 1) The main thread calls malloc. > 2) It then calls emacs_blocked_malloc via __malloc_hook. > 3) __malloc_hook is set to old_malloc_hook in emacs_blocked_malloc. > 4) Now the main thread is in execution of the original malloc. > 5) Another thread also calls malloc. > 6) The thread also executes the original malloc because > __malloc_hook == old_malloc_hook. You are correct. Can we, should we fix this, i.e. make gmalloc.c thread safe? Jan D. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-16 7:52 ` Pretest? Jan Djärv @ 2007-03-19 8:00 ` Jan Djärv 2007-03-19 9:31 ` Pretest? YAMAMOTO Mitsuharu 0 siblings, 1 reply; 91+ messages in thread From: Jan Djärv @ 2007-03-19 8:00 UTC (permalink / raw) To: Jan Djärv; +Cc: keramida, cyd, YAMAMOTO Mitsuharu, emacs-devel Jan Djärv skrev: > > > YAMAMOTO Mitsuharu skrev: >>>>>>> On Thu, 15 Mar 2007 12:04:33 +0100, Jan Djärv >>>>>>> <jan.h.d@swipnet.se> said: >> >>>> I suspect src/gmalloc.c, which does not provide thread-safe malloc >>>> (correct me if I'm wrong), is used while HAVE_GTK_AND_PTHREAD is >>>> defined. >> >>> If src/gmalloc.c is used, then the hooks in alloc.c are used, so >>> they should be thread safe. >> >> No, alloc_mutex only protects the variables __malloc_hook etc., but >> not for the heap itself. Consider the following scenario: >> >> 1) The main thread calls malloc. >> 2) It then calls emacs_blocked_malloc via __malloc_hook. >> 3) __malloc_hook is set to old_malloc_hook in emacs_blocked_malloc. >> 4) Now the main thread is in execution of the original malloc. >> 5) Another thread also calls malloc. >> 6) The thread also executes the original malloc because >> __malloc_hook == old_malloc_hook. > > You are correct. Can we, should we fix this, i.e. make gmalloc.c thread > safe? > A thing to do after the release might be to synchronize with the thread safe malloc in glibc. Jan D. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-19 8:00 ` Pretest? Jan Djärv @ 2007-03-19 9:31 ` YAMAMOTO Mitsuharu 2007-03-19 21:16 ` Pretest? Giorgos Keramidas ` (2 more replies) 0 siblings, 3 replies; 91+ messages in thread From: YAMAMOTO Mitsuharu @ 2007-03-19 9:31 UTC (permalink / raw) To: Jan Djärv; +Cc: keramida, cyd, emacs-devel >>>>> On Mon, 19 Mar 2007 09:00:10 +0100, Jan Djärv <jan.h.d@swipnet.se> said: > A thing to do after the release might be to synchronize with the > thread safe malloc in glibc. What do we do before the release? Possible options would be: 1) Use the system malloc library (and abandon emacs_blocked_*) if HAVE_GTK_AND_PTHREAD. 2) Modify src/gmalloc.c to make it thread safe. I just tried the latter, but I can't test it myself. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp Index: src/gmalloc.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/gmalloc.c,v retrieving revision 1.20 diff -c -p -r1.20 gmalloc.c *** src/gmalloc.c 21 Jan 2007 04:18:16 -0000 1.20 --- src/gmalloc.c 19 Mar 2007 09:18:53 -0000 *************** *** 1,6 **** --- 1,9 ---- /* This file is no longer automatically generated from libc. */ #define _MALLOC_INTERNAL + #ifdef HAVE_GTK_AND_PTHREAD + #define USE_PTHREAD + #endif /* The malloc headers and source files from the C library follow here. */ *************** Fifth Floor, Boston, MA 02110-1301, USA. *** 73,78 **** --- 76,85 ---- #include <unistd.h> #endif + #ifdef USE_PTHREAD + #include <pthread.h> + #endif + #endif /* _MALLOC_INTERNAL. */ *************** extern __ptr_t _malloc_internal PP ((__m *** 229,234 **** --- 236,244 ---- extern __ptr_t _realloc_internal PP ((__ptr_t __ptr, __malloc_size_t __size)); extern void _free_internal PP ((__ptr_t __ptr)); + #ifdef USE_PTHREAD + extern pthread_mutex_t _malloc_mutex; + #endif #endif /* _MALLOC_INTERNAL. */ /* Given an address in the middle of a malloc'd object, *************** register_heapinfo () *** 536,548 **** _heapinfo[block + blocks].busy.info.size = -blocks; } ! /* Set everything up and remember that we have. */ ! int ! __malloc_initialize () ! { ! if (__malloc_initialized) ! return 0; #ifdef GC_MCHECK mcheck (NULL); #endif --- 546,559 ---- _heapinfo[block + blocks].busy.info.size = -blocks; } ! #ifdef USE_PTHREAD ! static pthread_once_t malloc_init_once_control = PTHREAD_ONCE_INIT; ! pthread_mutex_t _malloc_mutex; ! #endif + static void + malloc_initialize_1 () + { #ifdef GC_MCHECK mcheck (NULL); #endif *************** __malloc_initialize () *** 550,559 **** if (__malloc_initialize_hook) (*__malloc_initialize_hook) (); heapsize = HEAP / BLOCKSIZE; _heapinfo = (malloc_info *) align (heapsize * sizeof (malloc_info)); if (_heapinfo == NULL) ! return 0; memset (_heapinfo, 0, heapsize * sizeof (malloc_info)); _heapinfo[0].free.size = 0; _heapinfo[0].free.next = _heapinfo[0].free.prev = 0; --- 561,581 ---- if (__malloc_initialize_hook) (*__malloc_initialize_hook) (); + #ifdef USE_PTHREAD + { + pthread_mutexattr_t attr; + + pthread_mutexattr_init (&attr); + pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); + pthread_mutex_init (&_malloc_mutex, &attr); + pthread_mutexattr_destroy (&attr); + } + #endif + heapsize = HEAP / BLOCKSIZE; _heapinfo = (malloc_info *) align (heapsize * sizeof (malloc_info)); if (_heapinfo == NULL) ! return; memset (_heapinfo, 0, heapsize * sizeof (malloc_info)); _heapinfo[0].free.size = 0; _heapinfo[0].free.next = _heapinfo[0].free.prev = 0; *************** __malloc_initialize () *** 565,571 **** __malloc_initialized = 1; PROTECT_MALLOC_STATE (1); ! return 1; } static int morecore_recursing; --- 587,609 ---- __malloc_initialized = 1; PROTECT_MALLOC_STATE (1); ! return; ! } ! ! /* Set everything up and remember that we have. */ ! int ! __malloc_initialize () ! { ! #ifdef USE_PTHREAD ! pthread_once (&malloc_init_once_control, malloc_initialize_1); ! #else ! if (__malloc_initialized) ! return 0; ! ! malloc_initialize_1 (); ! #endif ! ! return __malloc_initialized; } static int morecore_recursing; *************** _malloc_internal (size) *** 708,713 **** --- 746,754 ---- return NULL; #endif + #ifdef USE_PTHREAD + pthread_mutex_lock (&_malloc_mutex); + #endif PROTECT_MALLOC_STATE (0); if (size < sizeof (struct list)) *************** _malloc_internal (size) *** 765,771 **** if (result == NULL) { PROTECT_MALLOC_STATE (1); ! return NULL; } /* Link all fragments but the first into the free list. */ --- 806,812 ---- if (result == NULL) { PROTECT_MALLOC_STATE (1); ! goto out; } /* Link all fragments but the first into the free list. */ *************** _malloc_internal (size) *** 831,837 **** } result = morecore (wantblocks * BLOCKSIZE); if (result == NULL) ! return NULL; block = BLOCK (result); /* Put the new block at the end of the free list. */ _heapinfo[block].free.size = wantblocks; --- 872,878 ---- } result = morecore (wantblocks * BLOCKSIZE); if (result == NULL) ! goto out; block = BLOCK (result); /* Put the new block at the end of the free list. */ _heapinfo[block].free.size = wantblocks; *************** _malloc_internal (size) *** 886,891 **** --- 927,936 ---- } PROTECT_MALLOC_STATE (1); + out: + #ifdef USE_PTHREAD + pthread_mutex_unlock (&_malloc_mutex); + #endif return result; } *************** _free_internal (ptr) *** 996,1001 **** --- 1041,1049 ---- if (ptr == NULL) return; + #ifdef USE_PTHREAD + pthread_mutex_lock (&_malloc_mutex); + #endif PROTECT_MALLOC_STATE (0); for (l = _aligned_blocks; l != NULL; l = l->next) *************** _free_internal (ptr) *** 1221,1226 **** --- 1269,1277 ---- } PROTECT_MALLOC_STATE (1); + #ifdef USE_PTHREAD + pthread_mutex_unlock (&_malloc_mutex); + #endif } /* Return memory to the heap. */ *************** _realloc_internal (ptr, size) *** 1384,1389 **** --- 1435,1443 ---- block = BLOCK (ptr); + #ifdef USE_PTHREAD + pthread_mutex_lock (&_malloc_mutex); + #endif PROTECT_MALLOC_STATE (0); type = _heapinfo[block].busy.type; *************** _realloc_internal (ptr, size) *** 1398,1404 **** { memcpy (result, ptr, size); _free_internal (ptr); ! return result; } } --- 1452,1458 ---- { memcpy (result, ptr, size); _free_internal (ptr); ! goto out; } } *************** _realloc_internal (ptr, size) *** 1451,1457 **** (void) _malloc_internal (blocks * BLOCKSIZE); _free_internal (previous); } ! return NULL; } if (ptr != result) memmove (result, ptr, blocks * BLOCKSIZE); --- 1505,1511 ---- (void) _malloc_internal (blocks * BLOCKSIZE); _free_internal (previous); } ! goto out; } if (ptr != result) memmove (result, ptr, blocks * BLOCKSIZE); *************** _realloc_internal (ptr, size) *** 1471,1477 **** and copy the lesser of the new size and the old. */ result = _malloc_internal (size); if (result == NULL) ! return NULL; memcpy (result, ptr, min (size, (__malloc_size_t) 1 << type)); _free_internal (ptr); } --- 1525,1531 ---- and copy the lesser of the new size and the old. */ result = _malloc_internal (size); if (result == NULL) ! goto out; memcpy (result, ptr, min (size, (__malloc_size_t) 1 << type)); _free_internal (ptr); } *************** _realloc_internal (ptr, size) *** 1479,1484 **** --- 1533,1542 ---- } PROTECT_MALLOC_STATE (1); + out: + #ifdef USE_PTHREAD + pthread_mutex_unlock (&_malloc_mutex); + #endif return result; } ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-19 9:31 ` Pretest? YAMAMOTO Mitsuharu @ 2007-03-19 21:16 ` Giorgos Keramidas 2007-03-20 7:33 ` Pretest? Jan Djärv 2007-03-27 8:07 ` Pretest? Jan Djärv 2 siblings, 0 replies; 91+ messages in thread From: Giorgos Keramidas @ 2007-03-19 21:16 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: cyd, Jan Dj?rv, emacs-devel On 2007-03-19 18:31, YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> wrote: > >>>>> On Mon, 19 Mar 2007 09:00:10 +0100, Jan Dj?rv <jan.h.d@swipnet.se> said: > > > A thing to do after the release might be to synchronize with the > > thread safe malloc in glibc. > > What do we do before the release? Possible options would be: > > 1) Use the system malloc library (and abandon emacs_blocked_*) if > HAVE_GTK_AND_PTHREAD. > 2) Modify src/gmalloc.c to make it thread safe. > > I just tried the latter, but I can't test it myself. Thanks for the patch :-) Since I was the one reporting instability with Emacs compiled with GTK+ support, I can roll an Emacs build with GTK+ enabled, and see if this makes things more stable here. I just updated my local copy of the CVS repository with all changes up to: changeset: 80041:df347cacb5a9 tag: tip user: gm date: Mon Mar 19 20:59:53 2007 +0000 summary: Change form of license text to match rest of Emacs. and I'm building a new snapshot now... > Index: src/gmalloc.c > =================================================================== > RCS file: /cvsroot/emacs/emacs/src/gmalloc.c,v > retrieving revision 1.20 > diff -c -p -r1.20 gmalloc.c > *** src/gmalloc.c 21 Jan 2007 04:18:16 -0000 1.20 > --- src/gmalloc.c 19 Mar 2007 09:18:53 -0000 > *************** > *** 1,6 **** > --- 1,9 ---- > /* This file is no longer automatically generated from libc. */ > > #define _MALLOC_INTERNAL > + #ifdef HAVE_GTK_AND_PTHREAD > + #define USE_PTHREAD > + #endif > > /* The malloc headers and source files from the C library follow here. */ > > *************** Fifth Floor, Boston, MA 02110-1301, USA. > *** 73,78 **** > --- 76,85 ---- > #include <unistd.h> > #endif > > + #ifdef USE_PTHREAD > + #include <pthread.h> > + #endif > + > #endif /* _MALLOC_INTERNAL. */ > > > *************** extern __ptr_t _malloc_internal PP ((__m > *** 229,234 **** > --- 236,244 ---- > extern __ptr_t _realloc_internal PP ((__ptr_t __ptr, __malloc_size_t __size)); > extern void _free_internal PP ((__ptr_t __ptr)); > > + #ifdef USE_PTHREAD > + extern pthread_mutex_t _malloc_mutex; > + #endif > #endif /* _MALLOC_INTERNAL. */ > > /* Given an address in the middle of a malloc'd object, > *************** register_heapinfo () > *** 536,548 **** > _heapinfo[block + blocks].busy.info.size = -blocks; > } > > ! /* Set everything up and remember that we have. */ > ! int > ! __malloc_initialize () > ! { > ! if (__malloc_initialized) > ! return 0; > > #ifdef GC_MCHECK > mcheck (NULL); > #endif > --- 546,559 ---- > _heapinfo[block + blocks].busy.info.size = -blocks; > } > > ! #ifdef USE_PTHREAD > ! static pthread_once_t malloc_init_once_control = PTHREAD_ONCE_INIT; > ! pthread_mutex_t _malloc_mutex; > ! #endif > > + static void > + malloc_initialize_1 () > + { > #ifdef GC_MCHECK > mcheck (NULL); > #endif > *************** __malloc_initialize () > *** 550,559 **** > if (__malloc_initialize_hook) > (*__malloc_initialize_hook) (); > > heapsize = HEAP / BLOCKSIZE; > _heapinfo = (malloc_info *) align (heapsize * sizeof (malloc_info)); > if (_heapinfo == NULL) > ! return 0; > memset (_heapinfo, 0, heapsize * sizeof (malloc_info)); > _heapinfo[0].free.size = 0; > _heapinfo[0].free.next = _heapinfo[0].free.prev = 0; > --- 561,581 ---- > if (__malloc_initialize_hook) > (*__malloc_initialize_hook) (); > > + #ifdef USE_PTHREAD > + { > + pthread_mutexattr_t attr; > + > + pthread_mutexattr_init (&attr); > + pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); > + pthread_mutex_init (&_malloc_mutex, &attr); > + pthread_mutexattr_destroy (&attr); > + } > + #endif > + > heapsize = HEAP / BLOCKSIZE; > _heapinfo = (malloc_info *) align (heapsize * sizeof (malloc_info)); > if (_heapinfo == NULL) > ! return; > memset (_heapinfo, 0, heapsize * sizeof (malloc_info)); > _heapinfo[0].free.size = 0; > _heapinfo[0].free.next = _heapinfo[0].free.prev = 0; > *************** __malloc_initialize () > *** 565,571 **** > > __malloc_initialized = 1; > PROTECT_MALLOC_STATE (1); > ! return 1; > } > > static int morecore_recursing; > --- 587,609 ---- > > __malloc_initialized = 1; > PROTECT_MALLOC_STATE (1); > ! return; > ! } > ! > ! /* Set everything up and remember that we have. */ > ! int > ! __malloc_initialize () > ! { > ! #ifdef USE_PTHREAD > ! pthread_once (&malloc_init_once_control, malloc_initialize_1); > ! #else > ! if (__malloc_initialized) > ! return 0; > ! > ! malloc_initialize_1 (); > ! #endif > ! > ! return __malloc_initialized; > } > > static int morecore_recursing; > *************** _malloc_internal (size) > *** 708,713 **** > --- 746,754 ---- > return NULL; > #endif > > + #ifdef USE_PTHREAD > + pthread_mutex_lock (&_malloc_mutex); > + #endif > PROTECT_MALLOC_STATE (0); > > if (size < sizeof (struct list)) > *************** _malloc_internal (size) > *** 765,771 **** > if (result == NULL) > { > PROTECT_MALLOC_STATE (1); > ! return NULL; > } > > /* Link all fragments but the first into the free list. */ > --- 806,812 ---- > if (result == NULL) > { > PROTECT_MALLOC_STATE (1); > ! goto out; > } > > /* Link all fragments but the first into the free list. */ > *************** _malloc_internal (size) > *** 831,837 **** > } > result = morecore (wantblocks * BLOCKSIZE); > if (result == NULL) > ! return NULL; > block = BLOCK (result); > /* Put the new block at the end of the free list. */ > _heapinfo[block].free.size = wantblocks; > --- 872,878 ---- > } > result = morecore (wantblocks * BLOCKSIZE); > if (result == NULL) > ! goto out; > block = BLOCK (result); > /* Put the new block at the end of the free list. */ > _heapinfo[block].free.size = wantblocks; > *************** _malloc_internal (size) > *** 886,891 **** > --- 927,936 ---- > } > > PROTECT_MALLOC_STATE (1); > + out: > + #ifdef USE_PTHREAD > + pthread_mutex_unlock (&_malloc_mutex); > + #endif > return result; > } > > *************** _free_internal (ptr) > *** 996,1001 **** > --- 1041,1049 ---- > if (ptr == NULL) > return; > > + #ifdef USE_PTHREAD > + pthread_mutex_lock (&_malloc_mutex); > + #endif > PROTECT_MALLOC_STATE (0); > > for (l = _aligned_blocks; l != NULL; l = l->next) > *************** _free_internal (ptr) > *** 1221,1226 **** > --- 1269,1277 ---- > } > > PROTECT_MALLOC_STATE (1); > + #ifdef USE_PTHREAD > + pthread_mutex_unlock (&_malloc_mutex); > + #endif > } > > /* Return memory to the heap. */ > *************** _realloc_internal (ptr, size) > *** 1384,1389 **** > --- 1435,1443 ---- > > block = BLOCK (ptr); > > + #ifdef USE_PTHREAD > + pthread_mutex_lock (&_malloc_mutex); > + #endif > PROTECT_MALLOC_STATE (0); > > type = _heapinfo[block].busy.type; > *************** _realloc_internal (ptr, size) > *** 1398,1404 **** > { > memcpy (result, ptr, size); > _free_internal (ptr); > ! return result; > } > } > > --- 1452,1458 ---- > { > memcpy (result, ptr, size); > _free_internal (ptr); > ! goto out; > } > } > > *************** _realloc_internal (ptr, size) > *** 1451,1457 **** > (void) _malloc_internal (blocks * BLOCKSIZE); > _free_internal (previous); > } > ! return NULL; > } > if (ptr != result) > memmove (result, ptr, blocks * BLOCKSIZE); > --- 1505,1511 ---- > (void) _malloc_internal (blocks * BLOCKSIZE); > _free_internal (previous); > } > ! goto out; > } > if (ptr != result) > memmove (result, ptr, blocks * BLOCKSIZE); > *************** _realloc_internal (ptr, size) > *** 1471,1477 **** > and copy the lesser of the new size and the old. */ > result = _malloc_internal (size); > if (result == NULL) > ! return NULL; > memcpy (result, ptr, min (size, (__malloc_size_t) 1 << type)); > _free_internal (ptr); > } > --- 1525,1531 ---- > and copy the lesser of the new size and the old. */ > result = _malloc_internal (size); > if (result == NULL) > ! goto out; > memcpy (result, ptr, min (size, (__malloc_size_t) 1 << type)); > _free_internal (ptr); > } > *************** _realloc_internal (ptr, size) > *** 1479,1484 **** > --- 1533,1542 ---- > } > > PROTECT_MALLOC_STATE (1); > + out: > + #ifdef USE_PTHREAD > + pthread_mutex_unlock (&_malloc_mutex); > + #endif > return result; > } > > > > _______________________________________________ > Emacs-devel mailing list > Emacs-devel@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-devel ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-19 9:31 ` Pretest? YAMAMOTO Mitsuharu 2007-03-19 21:16 ` Pretest? Giorgos Keramidas @ 2007-03-20 7:33 ` Jan Djärv 2007-03-27 8:07 ` Pretest? Jan Djärv 2 siblings, 0 replies; 91+ messages in thread From: Jan Djärv @ 2007-03-20 7:33 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: keramida, cyd, emacs-devel YAMAMOTO Mitsuharu skrev: >>>>>> On Mon, 19 Mar 2007 09:00:10 +0100, Jan Djärv <jan.h.d@swipnet.se> said: > >> A thing to do after the release might be to synchronize with the >> thread safe malloc in glibc. > > What do we do before the release? Possible options would be: > > 1) Use the system malloc library (and abandon emacs_blocked_*) if > HAVE_GTK_AND_PTHREAD. > 2) Modify src/gmalloc.c to make it thread safe. > > I just tried the latter, but I can't test it myself. I'll test it, but I can just test that it works, I haven't seen any problem myself. However, as a matter of style, I prefer to use #ifdef USE_PTHREAD #define LOCK() pthread_mutex_lock (&_malloc_mutex) #define UNLOCK() pthread_mutex_unlock (&_malloc_mutex) #else #define LOCK() #define UNLOCK() #endif and then use LOCK/UNLOCK without any #ifdef:s in the functions. It is so much easier later if you need to read the code or insert some debugging info in to the lock/unlock phase. Jan D. > > YAMAMOTO Mitsuharu > mituharu@math.s.chiba-u.ac.jp > > Index: src/gmalloc.c > =================================================================== > RCS file: /cvsroot/emacs/emacs/src/gmalloc.c,v > retrieving revision 1.20 > diff -c -p -r1.20 gmalloc.c > *** src/gmalloc.c 21 Jan 2007 04:18:16 -0000 1.20 > --- src/gmalloc.c 19 Mar 2007 09:18:53 -0000 > *************** > *** 1,6 **** > --- 1,9 ---- > /* This file is no longer automatically generated from libc. */ > > #define _MALLOC_INTERNAL > + #ifdef HAVE_GTK_AND_PTHREAD > + #define USE_PTHREAD > + #endif > > /* The malloc headers and source files from the C library follow here. */ > > *************** Fifth Floor, Boston, MA 02110-1301, USA. > *** 73,78 **** > --- 76,85 ---- > #include <unistd.h> > #endif > > + #ifdef USE_PTHREAD > + #include <pthread.h> > + #endif > + > #endif /* _MALLOC_INTERNAL. */ > > > *************** extern __ptr_t _malloc_internal PP ((__m > *** 229,234 **** > --- 236,244 ---- > extern __ptr_t _realloc_internal PP ((__ptr_t __ptr, __malloc_size_t __size)); > extern void _free_internal PP ((__ptr_t __ptr)); > > + #ifdef USE_PTHREAD > + extern pthread_mutex_t _malloc_mutex; > + #endif > #endif /* _MALLOC_INTERNAL. */ > > /* Given an address in the middle of a malloc'd object, > *************** register_heapinfo () > *** 536,548 **** > _heapinfo[block + blocks].busy.info.size = -blocks; > } > > ! /* Set everything up and remember that we have. */ > ! int > ! __malloc_initialize () > ! { > ! if (__malloc_initialized) > ! return 0; > > #ifdef GC_MCHECK > mcheck (NULL); > #endif > --- 546,559 ---- > _heapinfo[block + blocks].busy.info.size = -blocks; > } > > ! #ifdef USE_PTHREAD > ! static pthread_once_t malloc_init_once_control = PTHREAD_ONCE_INIT; > ! pthread_mutex_t _malloc_mutex; > ! #endif > > + static void > + malloc_initialize_1 () > + { > #ifdef GC_MCHECK > mcheck (NULL); > #endif > *************** __malloc_initialize () > *** 550,559 **** > if (__malloc_initialize_hook) > (*__malloc_initialize_hook) (); > > heapsize = HEAP / BLOCKSIZE; > _heapinfo = (malloc_info *) align (heapsize * sizeof (malloc_info)); > if (_heapinfo == NULL) > ! return 0; > memset (_heapinfo, 0, heapsize * sizeof (malloc_info)); > _heapinfo[0].free.size = 0; > _heapinfo[0].free.next = _heapinfo[0].free.prev = 0; > --- 561,581 ---- > if (__malloc_initialize_hook) > (*__malloc_initialize_hook) (); > > + #ifdef USE_PTHREAD > + { > + pthread_mutexattr_t attr; > + > + pthread_mutexattr_init (&attr); > + pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); > + pthread_mutex_init (&_malloc_mutex, &attr); > + pthread_mutexattr_destroy (&attr); > + } > + #endif > + > heapsize = HEAP / BLOCKSIZE; > _heapinfo = (malloc_info *) align (heapsize * sizeof (malloc_info)); > if (_heapinfo == NULL) > ! return; > memset (_heapinfo, 0, heapsize * sizeof (malloc_info)); > _heapinfo[0].free.size = 0; > _heapinfo[0].free.next = _heapinfo[0].free.prev = 0; > *************** __malloc_initialize () > *** 565,571 **** > > __malloc_initialized = 1; > PROTECT_MALLOC_STATE (1); > ! return 1; > } > > static int morecore_recursing; > --- 587,609 ---- > > __malloc_initialized = 1; > PROTECT_MALLOC_STATE (1); > ! return; > ! } > ! > ! /* Set everything up and remember that we have. */ > ! int > ! __malloc_initialize () > ! { > ! #ifdef USE_PTHREAD > ! pthread_once (&malloc_init_once_control, malloc_initialize_1); > ! #else > ! if (__malloc_initialized) > ! return 0; > ! > ! malloc_initialize_1 (); > ! #endif > ! > ! return __malloc_initialized; > } > > static int morecore_recursing; > *************** _malloc_internal (size) > *** 708,713 **** > --- 746,754 ---- > return NULL; > #endif > > + #ifdef USE_PTHREAD > + pthread_mutex_lock (&_malloc_mutex); > + #endif > PROTECT_MALLOC_STATE (0); > > if (size < sizeof (struct list)) > *************** _malloc_internal (size) > *** 765,771 **** > if (result == NULL) > { > PROTECT_MALLOC_STATE (1); > ! return NULL; > } > > /* Link all fragments but the first into the free list. */ > --- 806,812 ---- > if (result == NULL) > { > PROTECT_MALLOC_STATE (1); > ! goto out; > } > > /* Link all fragments but the first into the free list. */ > *************** _malloc_internal (size) > *** 831,837 **** > } > result = morecore (wantblocks * BLOCKSIZE); > if (result == NULL) > ! return NULL; > block = BLOCK (result); > /* Put the new block at the end of the free list. */ > _heapinfo[block].free.size = wantblocks; > --- 872,878 ---- > } > result = morecore (wantblocks * BLOCKSIZE); > if (result == NULL) > ! goto out; > block = BLOCK (result); > /* Put the new block at the end of the free list. */ > _heapinfo[block].free.size = wantblocks; > *************** _malloc_internal (size) > *** 886,891 **** > --- 927,936 ---- > } > > PROTECT_MALLOC_STATE (1); > + out: > + #ifdef USE_PTHREAD > + pthread_mutex_unlock (&_malloc_mutex); > + #endif > return result; > } > > *************** _free_internal (ptr) > *** 996,1001 **** > --- 1041,1049 ---- > if (ptr == NULL) > return; > > + #ifdef USE_PTHREAD > + pthread_mutex_lock (&_malloc_mutex); > + #endif > PROTECT_MALLOC_STATE (0); > > for (l = _aligned_blocks; l != NULL; l = l->next) > *************** _free_internal (ptr) > *** 1221,1226 **** > --- 1269,1277 ---- > } > > PROTECT_MALLOC_STATE (1); > + #ifdef USE_PTHREAD > + pthread_mutex_unlock (&_malloc_mutex); > + #endif > } > > /* Return memory to the heap. */ > *************** _realloc_internal (ptr, size) > *** 1384,1389 **** > --- 1435,1443 ---- > > block = BLOCK (ptr); > > + #ifdef USE_PTHREAD > + pthread_mutex_lock (&_malloc_mutex); > + #endif > PROTECT_MALLOC_STATE (0); > > type = _heapinfo[block].busy.type; > *************** _realloc_internal (ptr, size) > *** 1398,1404 **** > { > memcpy (result, ptr, size); > _free_internal (ptr); > ! return result; > } > } > > --- 1452,1458 ---- > { > memcpy (result, ptr, size); > _free_internal (ptr); > ! goto out; > } > } > > *************** _realloc_internal (ptr, size) > *** 1451,1457 **** > (void) _malloc_internal (blocks * BLOCKSIZE); > _free_internal (previous); > } > ! return NULL; > } > if (ptr != result) > memmove (result, ptr, blocks * BLOCKSIZE); > --- 1505,1511 ---- > (void) _malloc_internal (blocks * BLOCKSIZE); > _free_internal (previous); > } > ! goto out; > } > if (ptr != result) > memmove (result, ptr, blocks * BLOCKSIZE); > *************** _realloc_internal (ptr, size) > *** 1471,1477 **** > and copy the lesser of the new size and the old. */ > result = _malloc_internal (size); > if (result == NULL) > ! return NULL; > memcpy (result, ptr, min (size, (__malloc_size_t) 1 << type)); > _free_internal (ptr); > } > --- 1525,1531 ---- > and copy the lesser of the new size and the old. */ > result = _malloc_internal (size); > if (result == NULL) > ! goto out; > memcpy (result, ptr, min (size, (__malloc_size_t) 1 << type)); > _free_internal (ptr); > } > *************** _realloc_internal (ptr, size) > *** 1479,1484 **** > --- 1533,1542 ---- > } > > PROTECT_MALLOC_STATE (1); > + out: > + #ifdef USE_PTHREAD > + pthread_mutex_unlock (&_malloc_mutex); > + #endif > return result; > } > > > > _______________________________________________ > Emacs-devel mailing list > Emacs-devel@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-devel > ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-19 9:31 ` Pretest? YAMAMOTO Mitsuharu 2007-03-19 21:16 ` Pretest? Giorgos Keramidas 2007-03-20 7:33 ` Pretest? Jan Djärv @ 2007-03-27 8:07 ` Jan Djärv 2007-03-28 8:24 ` Pretest? YAMAMOTO Mitsuharu 2 siblings, 1 reply; 91+ messages in thread From: Jan Djärv @ 2007-03-27 8:07 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: keramida, cyd, emacs-devel YAMAMOTO Mitsuharu skrev: >>>>>> On Mon, 19 Mar 2007 09:00:10 +0100, Jan Djärv <jan.h.d@swipnet.se> said: > >> A thing to do after the release might be to synchronize with the >> thread safe malloc in glibc. > > What do we do before the release? Possible options would be: > > 1) Use the system malloc library (and abandon emacs_blocked_*) if > HAVE_GTK_AND_PTHREAD. > 2) Modify src/gmalloc.c to make it thread safe. > > I just tried the latter, but I can't test it myself. I've been running this patch for a week now, and had no ill effects. Jan D. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-27 8:07 ` Pretest? Jan Djärv @ 2007-03-28 8:24 ` YAMAMOTO Mitsuharu 0 siblings, 0 replies; 91+ messages in thread From: YAMAMOTO Mitsuharu @ 2007-03-28 8:24 UTC (permalink / raw) To: Jan Djärv; +Cc: keramida, cyd, emacs-devel >>>>> On Tue, 27 Mar 2007 10:07:27 +0200, Jan Djärv <jan.h.d@swipnet.se> said: >> What do we do before the release? Possible options would be: >> >> 1) Use the system malloc library (and abandon emacs_blocked_*) if >> HAVE_GTK_AND_PTHREAD. >> 2) Modify src/gmalloc.c to make it thread safe. >> >> I just tried the latter, but I can't test it myself. > I've been running this patch for a week now, and had no ill effects. Thanks for testing. I installed the patch with the changes you suggested. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-04 20:25 ` Pretest? Chong Yidong 2007-03-04 20:32 ` Pretest? Giorgos Keramidas 2007-03-04 20:38 ` Pretest? David Kastrup @ 2007-03-05 7:13 ` Jan Djärv 2 siblings, 0 replies; 91+ messages in thread From: Jan Djärv @ 2007-03-05 7:13 UTC (permalink / raw) To: Chong Yidong; +Cc: Giorgos Keramidas, emacs-devel Chong Yidong skrev: > Giorgos Keramidas <keramida@ceid.upatras.gr> writes: > >> FreeBSD 7.0-CURRENT #0: Tue Feb 27 01:25:46 EET 2007 >> >> While I'm running the GTK+ version, however, I can crash Emacs in >> emacs_blocked_free() by following the steps outlined below: >> >> * Run Emacs inside gdb: >> * Run M-x gnus-agent-batch while my network connection is >> disabled, and let it time-out. It prompts me for going into >> `off-line mode', to which I reply `yes'. >> * The next time I input C-z Emacs crashes with a backtrace of: > > I can't seem to reproduce this on GNU/Linux (I don't have a FreeBSD > box handy). It's strange that gnus-agent batch has anything to do > with it. Have you been able to reproduce the C-z crash in any other > circumstance? (It is better to get a recipe not involving gnus, since > that might depend on your newsgroup settings.) > > In any case, the backtrace indicates that the crash occurs deep in > GTK/Glib. If you look at what is occurring in the Emacs code, what > we're doing is perfectly innocuous: gdk_pixbuf_new_from_xpm_data() is > called on a static character array containing an XPM image. So the > bug is probably in GTK or Glib, not in Emacs. It looks like the heap is corrupted, it may be something Emacs did previously, or perhaps something Gtk+ does. Very hard to tell though, a pity valgrind doesn't work with Emacs. Jan D. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-01 23:38 ` Pretest? Chong Yidong ` (3 preceding siblings ...) 2007-03-04 0:28 ` Pretest? Giorgos Keramidas @ 2007-03-06 9:38 ` Piet van Oostrum 2007-03-07 1:03 ` Pretest? Richard Stallman 4 siblings, 1 reply; 91+ messages in thread From: Piet van Oostrum @ 2007-03-06 9:38 UTC (permalink / raw) To: emacs-devel I am running the 22.0.95 pretest on Mac OS X 10.4 on an Intel MacBook. Installation went without problems. I still expect to get one of those recursive malloc lockups. I had one with the 22.0.93 pretest, but gdb wouldn't give a decent stack trace so I can't tell which system call caused it. And it happened only once in 2-3 weeks, so the next one may take some weeks to occur (but could also happen in the next hour). -- Piet van Oostrum <piet@cs.uu.nl> URL: http://www.cs.uu.nl/~piet [PGP 8DAE142BE17999C4] Private email: piet@vanoostrum.org ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-06 9:38 ` Pretest? Piet van Oostrum @ 2007-03-07 1:03 ` Richard Stallman 2007-03-14 7:21 ` Pretest? Piet van Oostrum 0 siblings, 1 reply; 91+ messages in thread From: Richard Stallman @ 2007-03-07 1:03 UTC (permalink / raw) To: Piet van Oostrum; +Cc: emacs-devel I am running the 22.0.95 pretest on Mac OS X 10.4 on an Intel MacBook. Installation went without problems. I still expect to get one of those recursive malloc lockups. I had one with the 22.0.93 pretest, but gdb wouldn't give a decent stack trace so I can't tell which system call caused it. Do you get a useful backtrace this time? ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-07 1:03 ` Pretest? Richard Stallman @ 2007-03-14 7:21 ` Piet van Oostrum 2007-03-15 0:39 ` Pretest? YAMAMOTO Mitsuharu 2007-03-15 1:38 ` Pretest? Richard Stallman 0 siblings, 2 replies; 91+ messages in thread From: Piet van Oostrum @ 2007-03-14 7:21 UTC (permalink / raw) To: emacs-devel >>>>> Richard Stallman <rms@gnu.org> (RS) wrote: >RS> I am running the 22.0.95 pretest on Mac OS X 10.4 on an Intel MacBook. >RS> Installation went without problems. I still expect to get one of those >RS> recursive malloc lockups. I had one with the 22.0.93 pretest, but gdb >RS> wouldn't give a decent stack trace so I can't tell which system call caused >RS> it. >RS> Do you get a useful backtrace this time? Sorry, I didn't mean I had a new lockup at that time. But as the problem has not yet been identified it is to be expected that another one will appear in a finite time. However, yesterday I had another kind of lockup. I was trying to get new email (I use VM for reading mail) and my emacs completely hung. It wouldn't even react to C-g. Here is a backtrace: This is Carbon Emacs 22.0.95 (pretest tarball) on Mac OS X 10.4 (Tiger) installed as application bundle. #0 0x9000fb57 in read () #1 0x000919d4 in emacs_read (fildes=18, buf=0xbffebc1c "??\f", nbyte=16384) at sysdep.c:3342 #2 0x001218a2 in Fcall_process (nargs=31, args=0xbfffc51c) at callproc.c:784 #3 0x001229bc in Fcall_process_region (nargs=33, args=0xbfffc51c) at callproc.c:1177 #4 0x000e5966 in Ffuncall (nargs=34, args=0xbfffc510) at eval.c:2978 #5 0x000e6f88 in Fapply (nargs=8, args=0xbfffc684) at eval.c:2485 #6 0x000e5966 in Ffuncall (nargs=9, args=0xbfffc680) at eval.c:2978 #7 0x00115f9a in Fbyte_code (bytestr=64064707, vector=51831380, maxdepth=19) at bytecode.c:679 #8 0x000e530b in funcall_lambda (fun=51831668, nargs=1, arg_vector=0xbfffc844) at eval.c:3184 #9 0x000e57cb in Ffuncall (nargs=2, args=0xbfffc840) at eval.c:3054 #10 0x00115f9a in Fbyte_code (bytestr=64239843, vector=51831732, maxdepth=2) at bytecode.c:679 #11 0x000e530b in funcall_lambda (fun=51831892, nargs=1, arg_vector=0xbfffc9c4) at eval.c:3184 #12 0x000e57cb in Ffuncall (nargs=2, args=0xbfffc9c0) at eval.c:3054 #13 0x00115f9a in Fbyte_code (bytestr=65100387, vector=51864692, maxdepth=3) at bytecode.c:679 #14 0x000e530b in funcall_lambda (fun=51864932, nargs=2, arg_vector=0xbfffcad0) at eval.c:3184 #15 0x000e5563 in apply_lambda (fun=51864932, args=16719909, eval_flag=1) at eval.c:3108 #16 0x000e4ccd in Feval (form=16719917) at eval.c:2388 #17 0x000e5232 in Fprogn (args=16720213) at eval.c:447 #18 0x000e770c in Flet (args=16720221) at eval.c:1064 #19 0x000e4f38 in Feval (form=16720229) at eval.c:2275 #20 0x000e7429 in internal_lisp_condition_case (var=43171641, bodyform=16720229, handlers=16720421) at eval.c:1426 #21 0x000e74ad in Fcondition_case (args=16720437) at eval.c:1367 #22 0x000e4f38 in Feval (form=16720445) at eval.c:2275 #23 0x000e5232 in Fprogn (args=16720461) at eval.c:447 #24 0x000e4f38 in Feval (form=16720469) at eval.c:2275 #25 0x000e5214 in Fprogn (args=16720485) at eval.c:447 #26 0x000e770c in Flet (args=16720493) at eval.c:1064 #27 0x000e4f38 in Feval (form=16720501) at eval.c:2275 #28 0x000e5232 in Fprogn (args=16720517) at eval.c:447 #29 0x000e549f in funcall_lambda (fun=16720528, nargs=1, arg_vector=0xbfffd174) at eval.c:3177 #30 0x000e57cb in Ffuncall (nargs=2, args=0xbfffd170) at eval.c:3054 #31 0x00115f9a in Fbyte_code (bytestr=62488915, vector=39195924, maxdepth=3) at bytecode.c:679 #32 0x000e4ed6 in Feval (form=16377813) at eval.c:2338 #33 0x000e7429 in internal_lisp_condition_case (var=41944073, bodyform=16377813, handlers=16379949) at eval.c:1426 #34 0x00114ed0 in Fbyte_code (bytestr=62488659, vector=39196148, maxdepth=7) at bytecode.c:869 #35 0x000e530b in funcall_lambda (fun=39196500, nargs=1, arg_vector=0xbfffd524) at eval.c:3184 #36 0x000e57cb in Ffuncall (nargs=2, args=0xbfffd520) at eval.c:3054 #37 0x00115f9a in Fbyte_code (bytestr=62168963, vector=39200612, maxdepth=8) at bytecode.c:679 #38 0x000e530b in funcall_lambda (fun=39200820, nargs=1, arg_vector=0xbfffd6b4) at eval.c:3184 #39 0x000e57cb in Ffuncall (nargs=2, args=0xbfffd6b0) at eval.c:3054 #40 0x00115f9a in Fbyte_code (bytestr=62168931, vector=39200420, maxdepth=2) at bytecode.c:679 #41 0x000e530b in funcall_lambda (fun=39200548, nargs=1, arg_vector=0xbfffd834) at eval.c:3184 #42 0x000e57cb in Ffuncall (nargs=2, args=0xbfffd830) at eval.c:3054 #43 0x00115f9a in Fbyte_code (bytestr=62488915, vector=39195924, maxdepth=3) at bytecode.c:679 #44 0x000e4ed6 in Feval (form=16377813) at eval.c:2338 #45 0x000e7429 in internal_lisp_condition_case (var=41944073, bodyform=16377813, handlers=16379949) at eval.c:1426 #46 0x00114ed0 in Fbyte_code (bytestr=62488659, vector=39196148, maxdepth=7) at bytecode.c:869 #47 0x000e530b in funcall_lambda (fun=39196500, nargs=1, arg_vector=0xbfffdbe4) at eval.c:3184 #48 0x000e57cb in Ffuncall (nargs=2, args=0xbfffdbe0) at eval.c:3054 #49 0x00115f9a in Fbyte_code (bytestr=64996067, vector=51897956, maxdepth=4) at bytecode.c:679 #50 0x000e530b in funcall_lambda (fun=51898100, nargs=1, arg_vector=0xbfffdd64) at eval.c:3184 #51 0x000e57cb in Ffuncall (nargs=2, args=0xbfffdd60) at eval.c:3054 #52 0x00115f9a in Fbyte_code (bytestr=62488915, vector=39195924, maxdepth=3) at bytecode.c:679 #53 0x000e4ed6 in Feval (form=16377813) at eval.c:2338 #54 0x000e7429 in internal_lisp_condition_case (var=41944073, bodyform=16377813, handlers=16379949) at eval.c:1426 #55 0x00114ed0 in Fbyte_code (bytestr=62488659, vector=39196148, maxdepth=7) at bytecode.c:869 #56 0x000e530b in funcall_lambda (fun=39196500, nargs=1, arg_vector=0xbfffe114) at eval.c:3184 #57 0x000e57cb in Ffuncall (nargs=2, args=0xbfffe110) at eval.c:3054 #58 0x00115f9a in Fbyte_code (bytestr=62488387, vector=39195316, maxdepth=6) at bytecode.c:679 #59 0x000e530b in funcall_lambda (fun=39195700, nargs=0, arg_vector=0xbfffe230) at eval.c:3184 #60 0x000e5563 in apply_lambda (fun=39195700, args=41944073, eval_flag=1) at eval.c:3108 #61 0x000e4ccd in Feval (form=16426621) at eval.c:2388 #62 0x000e509c in Fsetq (args=16426605) at eval.c:549 #63 0x000e4f38 in Feval (form=16426597) at eval.c:2275 #64 0x000e5214 in Fprogn (args=16426589) at eval.c:447 #65 0x000e770c in Flet (args=16426581) at eval.c:1064 #66 0x000e4f38 in Feval (form=16426573) at eval.c:2275 #67 0x000e5214 in Fprogn (args=16426557) at eval.c:447 #68 0x000e4f38 in Feval (form=16426533) at eval.c:2275 #69 0x000e5214 in Fprogn (args=16426485) at eval.c:447 #70 0x000e4f38 in Feval (form=16426477) at eval.c:2275 #71 0x000e5214 in Fprogn (args=16426461) at eval.c:447 #72 0x000e770c in Flet (args=16426357) at eval.c:1064 #73 0x000e4f38 in Feval (form=16426349) at eval.c:2275 #74 0x000e5214 in Fprogn (args=16426325) at eval.c:447 #75 0x000e549f in funcall_lambda (fun=16426304, nargs=0, arg_vector=0xbfffe850) at eval.c:3177 #76 0x000e5563 in apply_lambda (fun=16426309, args=41944073, eval_flag=1) at eval.c:3108 #77 0x000e4ccd in Feval (form=16326021) at eval.c:2388 #78 0x000e7429 in internal_lisp_condition_case (var=42150009, bodyform=16326021, handlers=16326093) at eval.c:1426 #79 0x00114ed0 in Fbyte_code (bytestr=62555299, vector=39173012, maxdepth=6) at bytecode.c:869 #80 0x000e530b in funcall_lambda (fun=39173316, nargs=0, arg_vector=0xbfffeb94) at eval.c:3184 #81 0x000e57cb in Ffuncall (nargs=1, args=0xbfffeb90) at eval.c:3054 #82 0x00115f9a in Fbyte_code (bytestr=62555603, vector=39172420, maxdepth=5) at bytecode.c:679 #83 0x000e530b in funcall_lambda (fun=39172804, nargs=0, arg_vector=0xbfffecb0) at eval.c:3184 #84 0x000e5563 in apply_lambda (fun=39172804, args=41944073, eval_flag=1) at eval.c:3108 #85 0x000e4ccd in Feval (form=16417749) at eval.c:2388 #86 0x000e509c in Fsetq (args=16417733) at eval.c:549 #87 0x000e4f38 in Feval (form=16417725) at eval.c:2275 #88 0x000e5214 in Fprogn (args=16416717) at eval.c:447 #89 0x000e770c in Flet (args=16416709) at eval.c:1064 #90 0x000e4f38 in Feval (form=16416701) at eval.c:2275 #91 0x000e5232 in Fprogn (args=16416677) at eval.c:447 #92 0x000e549f in funcall_lambda (fun=16416632, nargs=0, arg_vector=0xbffff094) at eval.c:3177 #93 0x000e57cb in Ffuncall (nargs=1, args=0xbffff090) at eval.c:3054 #94 0x00115f9a in Fbyte_code (bytestr=65081523, vector=51933540, maxdepth=6) at bytecode.c:679 #95 0x000e530b in funcall_lambda (fun=51979492, nargs=1, arg_vector=0xbffff274) at eval.c:3184 #96 0x000e57cb in Ffuncall (nargs=2, args=0xbffff270) at eval.c:3054 #97 0x000e2a53 in Fcall_interactively (function=62358425, record_flag=41944073, keys=34606876) at callint.c:860 #98 0x0007e309 in Fcommand_execute (cmd=62358425, record_flag=41944073, keys=41944073, special=41944073) at keyboard.c:10014 #99 0x00086083 in command_loop_1 () at keyboard.c:1873 #100 0x000e3c2a in internal_condition_case (bfun=0x85ccc <command_loop_1>, handlers=41990313, hfun=0x7ef88 <cmd_error>) at eval.c:1481 #101 0x0007883d in command_loop_2 () at keyboard.c:1329 #102 0x000e3b1b in internal_catch (tag=41986593, func=0x787f9 <command_loop_2>, arg=41944073) at eval.c:1222 #103 0x00078617 in command_loop () at keyboard.c:1308 #104 0x000786cb in recursive_edit_1 () at keyboard.c:1006 #105 0x000787ba in Frecursive_edit () at keyboard.c:1067 #106 0x0007799f in main (argc=2, argv=0xbffff8e0) at emacs.c:1761 -- Piet van Oostrum <piet@cs.uu.nl> URL: http://www.cs.uu.nl/~piet [PGP 8DAE142BE17999C4] Private email: piet@vanoostrum.org ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 7:21 ` Pretest? Piet van Oostrum @ 2007-03-15 0:39 ` YAMAMOTO Mitsuharu 2007-03-15 5:31 ` Pretest? Richard Stallman 2007-03-15 1:38 ` Pretest? Richard Stallman 1 sibling, 1 reply; 91+ messages in thread From: YAMAMOTO Mitsuharu @ 2007-03-15 0:39 UTC (permalink / raw) To: Piet van Oostrum; +Cc: emacs-devel >>>>> On Wed, 14 Mar 2007 08:21:20 +0100, Piet van Oostrum <piet@cs.uu.nl> said: >>>>> Richard Stallman <rms@gnu.org> (RS) wrote: RS> Do you get a useful backtrace this time? > Sorry, I didn't mean I had a new lockup at that time. But as the > problem has not yet been identified it is to be expected that > another one will appear in a finite time. In principle, that can happen. As I said previously (*1), there are still some library functions that may call malloc-related functions internally but their calls are not pretected by BLOCK_INPUT: getc, ungetc, fwrite, fclose, getaddrinfo, freeaddrinfo (*1) http://lists.gnu.org/archive/html/emacs-devel/2007-01/msg00125.html > However, yesterday I had another kind of lockup. I was trying to get > new email (I use VM for reading mail) and my emacs completely > hung. It wouldn't even react to C-g. You cannot quit with C-g if inhibit-quit is non-nil (*2). Can you check the values of Vinhibit_quit and Qnil if you still have the debugging session? (*2) http://lists.gnu.org/archive/html/emacs-pretest-bug/2006-06/msg00320.html YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-15 0:39 ` Pretest? YAMAMOTO Mitsuharu @ 2007-03-15 5:31 ` Richard Stallman 2007-03-15 9:33 ` Pretest? YAMAMOTO Mitsuharu 0 siblings, 1 reply; 91+ messages in thread From: Richard Stallman @ 2007-03-15 5:31 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: piet, emacs-devel getc, ungetc, fwrite, fclose, getaddrinfo, freeaddrinfo They are not used in very many places. Would you like to add BLOCK_INPUT for them? ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-15 5:31 ` Pretest? Richard Stallman @ 2007-03-15 9:33 ` YAMAMOTO Mitsuharu 2007-03-16 5:20 ` Pretest? Richard Stallman 0 siblings, 1 reply; 91+ messages in thread From: YAMAMOTO Mitsuharu @ 2007-03-15 9:33 UTC (permalink / raw) To: rms; +Cc: piet, emacs-devel >>>>> On Thu, 15 Mar 2007 01:31:00 -0400, Richard Stallman <rms@gnu.org> said: > getc, ungetc, fwrite, fclose, > getaddrinfo, freeaddrinfo > They are not used in very many places. Would you like to add > BLOCK_INPUT for them? Yes, but a couple of things are not clear to me: 1. I think BLOCK_INPUT is not necessary when `noninteractive' is set. Is that correct? 2. getaddrinfo/freeaddrinfo are called with immediate_quit == 1. We have to choose from either protecting them with BLOCK_INPUT or allowing quit during their executions, especially on the systems where SYSTEM_MALLOC is defined and thus emacs_blocked_malloc etc. cannot be used. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-15 9:33 ` Pretest? YAMAMOTO Mitsuharu @ 2007-03-16 5:20 ` Richard Stallman 2007-03-19 9:53 ` Pretest? YAMAMOTO Mitsuharu 0 siblings, 1 reply; 91+ messages in thread From: Richard Stallman @ 2007-03-16 5:20 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: piet, emacs-devel 1. I think BLOCK_INPUT is not necessary when `noninteractive' is set. Is that correct? I think so, because Emacs does not use signals for keyboard input in batch mode. However, I am not sure whether handling of other signals (such as SIGCHLD) calls for BLOCK_INPUT nowadays. If it does, then BLOCK_INPUT should be needed also in batch mode, because subprocess can be used. So you may as well do BLOCK_INPUT for getc, etc. 2. getaddrinfo/freeaddrinfo are called with immediate_quit == 1. We have to choose from either protecting them with BLOCK_INPUT or allowing quit during their executions, especially on the systems where SYSTEM_MALLOC is defined and thus emacs_blocked_malloc etc. cannot be used. I am not familiar with getaddrinfo. Why do users want to be able to interrupt it? Is that because it communicates with a DNS server? The only way I can think of to make this work right is to run it in another thread, or use child labor. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-16 5:20 ` Pretest? Richard Stallman @ 2007-03-19 9:53 ` YAMAMOTO Mitsuharu 2007-03-19 10:05 ` Pretest? Kim F. Storm 2007-03-19 21:57 ` Pretest? Richard Stallman 0 siblings, 2 replies; 91+ messages in thread From: YAMAMOTO Mitsuharu @ 2007-03-19 9:53 UTC (permalink / raw) To: rms; +Cc: piet, emacs-devel >>>>> On Fri, 16 Mar 2007 01:20:27 -0400, Richard Stallman <rms@gnu.org> said: > However, I am not sure whether handling of other signals (such as > SIGCHLD) calls for BLOCK_INPUT nowadays. If it does, then > BLOCK_INPUT should be needed also in batch mode, because subprocess > can be used. BLOCK_INPUT just increments the variable interrupt_input_blocked, and it is currently only examined by the SIGALRM/SIGIO handler. > I am not familiar with getaddrinfo. Why do users want to be able to > interrupt it? Is that because it communicates with a DNS server? I'm not certain about that, but I guess the assignments to immediate_quit were copied from those around gethostbyname when the getaddrinfo support was added. > The only way I can think of to make this work right is to run it in > another thread, or use child labor. Yes, but I think neither of them is a thing to do now. I feel a bit inclined to put BLOCK_INPUT around getaddrinfo/freeaddrinfo to be on the safe side. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-19 9:53 ` Pretest? YAMAMOTO Mitsuharu @ 2007-03-19 10:05 ` Kim F. Storm 2007-03-19 21:57 ` Pretest? Richard Stallman 1 sibling, 0 replies; 91+ messages in thread From: Kim F. Storm @ 2007-03-19 10:05 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: piet, rms, emacs-devel YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes: >> I am not familiar with getaddrinfo. Why do users want to be able to >> interrupt it? Is that because it communicates with a DNS server? > > I'm not certain about that, but I guess the assignments to > immediate_quit were copied from those around gethostbyname when the > getaddrinfo support was added. At least gethostbyname can potentially block for 3 minutes (waiting for DNS responses) - so I assumed getaddrinfo could do the same. -- Kim F. Storm <storm@cua.dk> http://www.cua.dk ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-19 9:53 ` Pretest? YAMAMOTO Mitsuharu 2007-03-19 10:05 ` Pretest? Kim F. Storm @ 2007-03-19 21:57 ` Richard Stallman 2007-03-20 9:18 ` Pretest? YAMAMOTO Mitsuharu 1 sibling, 1 reply; 91+ messages in thread From: Richard Stallman @ 2007-03-19 21:57 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: piet, emacs-devel Yes, but I think neither of them is a thing to do now. I feel a bit inclined to put BLOCK_INPUT around getaddrinfo/freeaddrinfo to be on the safe side. I would rather not. You see, the chance that a quit during this call will cause memory clobberage is very small. It might happen once a year. But it will surely happen every day that users will get stuck in this call, because they can't reach the DNS server. We do not want to make them wait 3 minutes for it to time out. ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-19 21:57 ` Pretest? Richard Stallman @ 2007-03-20 9:18 ` YAMAMOTO Mitsuharu 0 siblings, 0 replies; 91+ messages in thread From: YAMAMOTO Mitsuharu @ 2007-03-20 9:18 UTC (permalink / raw) To: rms; +Cc: piet, emacs-devel >>>>> On Mon, 19 Mar 2007 17:57:19 -0400, Richard Stallman <rms@gnu.org> said: > I would rather not. You see, the chance that a quit during this > call will cause memory clobberage is very small. It might happen > once a year. > But it will surely happen every day that users will get stuck in > this call, because they can't reach the DNS server. We do not want > to make them wait 3 minutes for it to time out. OK, I added BLOCK_INPUTs except for getaddrinfo. I think this issue will be revisited when we switch to SYNC_INPUT. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 91+ messages in thread
* Re: Pretest? 2007-03-14 7:21 ` Pretest? Piet van Oostrum 2007-03-15 0:39 ` Pretest? YAMAMOTO Mitsuharu @ 2007-03-15 1:38 ` Richard Stallman 1 sibling, 0 replies; 91+ messages in thread From: Richard Stallman @ 2007-03-15 1:38 UTC (permalink / raw) To: Piet van Oostrum; +Cc: emacs-devel However, yesterday I had another kind of lockup. I was trying to get new email (I use VM for reading mail) and my emacs completely hung. It wouldn't even react to C-g. Here is a backtrace: This is Carbon Emacs 22.0.95 (pretest tarball) on Mac OS X 10.4 (Tiger) installed as application bundle. Was it hung, or was it looping? If it was looping, or if you're not sure, please try the instructions in etc/DEBUG regarding what to do when Emacs is looping. ^ permalink raw reply [flat|nested] 91+ messages in thread
end of thread, other threads:[~2007-03-28 8:24 UTC | newest] Thread overview: 91+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-02-26 2:39 Pretest? Nick Roberts 2007-02-26 7:19 ` Pretest? David Kastrup 2007-02-26 9:07 ` Pretest? Nick Roberts 2007-02-26 8:47 ` Pretest? Richard Stallman -- strict thread matches above, loose matches on Subject: below -- 2007-02-23 18:15 cygwin succesfull straight build Eli Zaretskii 2007-03-07 1:26 ` Pretest? Angelo Graziosi 2007-03-08 19:40 ` Pretest? Chong Yidong 2007-03-09 13:59 ` Pretest? Giorgos Keramidas 2007-03-09 14:44 ` Pretest? Chong Yidong 2007-03-09 17:07 ` Pretest? Christian Faulhammer 2007-03-09 17:35 ` Pretest? Juanma Barranquero 2007-03-09 18:33 ` Pretest? Chong Yidong 2007-03-09 17:49 ` Pretest? Eli Zaretskii 2007-03-09 18:07 ` Pretest? Giorgos Keramidas 2007-03-09 21:26 ` Pretest? Richard Stallman 2007-03-12 10:39 ` Pretest? Juanma Barranquero 2007-03-12 10:42 ` Pretest? David Kastrup 2007-03-12 11:46 ` Pretest? Juanma Barranquero 2007-03-12 14:53 ` Pretest? Stefan Monnier 2007-03-12 15:46 ` Pretest? Juanma Barranquero 2007-03-12 15:53 ` Pretest? David Kastrup 2007-03-12 20:55 ` Pretest? Chong Yidong 2007-03-12 21:32 ` Pretest? Juanma Barranquero 2007-03-13 1:03 ` Pretest? Chong Yidong 2007-03-13 9:37 ` Pretest? Juanma Barranquero 2007-03-13 2:43 ` Pretest? Richard Stallman 2007-03-13 9:43 ` Pretest? Juanma Barranquero 2007-03-13 9:52 ` Pretest? Andreas Schwab 2007-03-13 10:09 ` Pretest? David Kastrup 2007-03-13 10:23 ` Pretest? Juanma Barranquero 2007-03-19 5:15 ` Pretest? Richard Stallman 2007-03-14 3:24 ` Pretest? Richard Stallman 2007-03-14 7:10 ` Pretest? David Kastrup 2007-03-14 13:39 ` Pretest? Stefan Monnier 2007-03-14 14:04 ` Pretest? David Kastrup 2007-03-14 14:19 ` Pretest? Stefan Monnier 2007-03-14 9:18 ` Pretest? Juanma Barranquero 2007-03-14 9:32 ` Pretest? David Kastrup 2007-03-14 9:44 ` Pretest? Juanma Barranquero 2007-03-14 10:07 ` Pretest? David Kastrup 2007-03-14 10:17 ` Pretest? Juanma Barranquero 2007-03-14 13:56 ` Pretest? Chong Yidong 2007-03-14 14:24 ` Pretest? Stefan Monnier 2007-03-15 1:38 ` Pretest? Richard Stallman 2007-03-15 10:04 ` Pretest? Juanma Barranquero 2007-03-16 5:20 ` Pretest? Richard Stallman 2007-03-15 15:44 ` Pretest? Chong Yidong 2007-03-16 5:21 ` Pretest? Richard Stallman 2007-03-16 7:36 ` Pretest? David Kastrup 2007-02-23 9:30 Pretest? Juanma Barranquero 2007-02-23 18:06 ` Pretest? Eli Zaretskii 2007-02-23 18:48 ` Pretest? Chong Yidong 2007-02-23 19:36 ` Pretest? Eli Zaretskii 2007-02-24 15:40 ` Pretest? Chong Yidong 2007-02-24 19:07 ` Pretest? Eli Zaretskii 2007-02-25 4:05 ` Pretest? Richard Stallman 2007-02-25 19:33 ` Pretest? Chong Yidong 2007-03-01 23:38 ` Pretest? Chong Yidong 2007-03-02 1:12 ` Pretest? Lennart Borgman (gmail) 2007-03-02 2:01 ` Pretest? Juanma Barranquero 2007-03-02 8:20 ` Pretest? David Kastrup 2007-03-02 9:23 ` Pretest? Juanma Barranquero 2007-03-03 11:40 ` Pretest? Eli Zaretskii 2007-03-04 0:28 ` Pretest? Giorgos Keramidas 2007-03-04 20:25 ` Pretest? Chong Yidong 2007-03-04 20:32 ` Pretest? Giorgos Keramidas 2007-03-04 20:38 ` Pretest? David Kastrup 2007-03-04 20:47 ` Pretest? Giorgos Keramidas 2007-03-05 7:15 ` Pretest? Jan Djärv 2007-03-15 10:39 ` Pretest? YAMAMOTO Mitsuharu 2007-03-15 11:04 ` Pretest? Jan Djärv 2007-03-15 12:08 ` Pretest? YAMAMOTO Mitsuharu 2007-03-16 7:52 ` Pretest? Jan Djärv 2007-03-19 8:00 ` Pretest? Jan Djärv 2007-03-19 9:31 ` Pretest? YAMAMOTO Mitsuharu 2007-03-19 21:16 ` Pretest? Giorgos Keramidas 2007-03-20 7:33 ` Pretest? Jan Djärv 2007-03-27 8:07 ` Pretest? Jan Djärv 2007-03-28 8:24 ` Pretest? YAMAMOTO Mitsuharu 2007-03-05 7:13 ` Pretest? Jan Djärv 2007-03-06 9:38 ` Pretest? Piet van Oostrum 2007-03-07 1:03 ` Pretest? Richard Stallman 2007-03-14 7:21 ` Pretest? Piet van Oostrum 2007-03-15 0:39 ` Pretest? YAMAMOTO Mitsuharu 2007-03-15 5:31 ` Pretest? Richard Stallman 2007-03-15 9:33 ` Pretest? YAMAMOTO Mitsuharu 2007-03-16 5:20 ` Pretest? Richard Stallman 2007-03-19 9:53 ` Pretest? YAMAMOTO Mitsuharu 2007-03-19 10:05 ` Pretest? Kim F. Storm 2007-03-19 21:57 ` Pretest? Richard Stallman 2007-03-20 9:18 ` Pretest? YAMAMOTO Mitsuharu 2007-03-15 1:38 ` Pretest? Richard Stallman
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).