* Pretest begins end-June @ 2011-05-30 16:07 Chong Yidong 2011-05-30 18:29 ` Eli Zaretskii ` (3 more replies) 0 siblings, 4 replies; 52+ messages in thread From: Chong Yidong @ 2011-05-30 16:07 UTC (permalink / raw) To: emacs-devel Stefan and I have decided on the end of June for the beginning of the Emacs 24.1 pretest. We're hoping for an early 2012 release, but, as always, that will depend on the code. The pretest process for 24.1 will be similar to that of 23.1. A few days before the pretest (I'll give a more precise date later), the trunk will go into feature freeze, disallowing new features and other major changes (e.g. new gnulib modules). Packages can still be added to elpa.gnu.org, independent of developments on the trunk. We'll use the trunk for most of the pretest, switching to a release branch only shortly before the release. Please plan accordingly. Thanks. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-30 16:07 Pretest begins end-June Chong Yidong @ 2011-05-30 18:29 ` Eli Zaretskii 2011-05-30 19:20 ` Stefan Monnier 2011-06-01 9:15 ` martin rudalics ` (2 subsequent siblings) 3 siblings, 1 reply; 52+ messages in thread From: Eli Zaretskii @ 2011-05-30 18:29 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel > From: Chong Yidong <cyd@stupidchicken.com> > Date: Mon, 30 May 2011 12:07:03 -0400 > > Stefan and I have decided on the end of June for the beginning of the > Emacs 24.1 pretest. We're hoping for an early 2012 release, but, as > always, that will depend on the code. That schedule is way too early for the bidi stuff. There are still 2 major jobs I need to do (reordering display strings and support for truncated lines) and one minor one (a couple of bug reports regarding cursor motion around invisible text and before-/after-strings). There's no chance in the world that they will be ready in a month. I also understand that Handa-san is working on modifying uni-bidi.el and uni-mirror.el so that they could be used by bidi.c, instead of the current separate tables. I would like to have that done before we enter feature freeze. If you must start the pretest so early, then either 24.1 will need to be released with the bidi flag off, or we will have significant potentially destabilizing changes during the pretest (which contradicts the feature freeze and will generally prolong the pretest). I'm sorry for my slow progress, but that's the best I can do working alone on this. Please tell me what is your decision on that. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-30 18:29 ` Eli Zaretskii @ 2011-05-30 19:20 ` Stefan Monnier 2011-05-30 21:12 ` Eli Zaretskii ` (2 more replies) 0 siblings, 3 replies; 52+ messages in thread From: Stefan Monnier @ 2011-05-30 19:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Chong Yidong, emacs-devel >> Stefan and I have decided on the end of June for the beginning of the >> Emacs 24.1 pretest. We're hoping for an early 2012 release, but, as >> always, that will depend on the code. > That schedule is way too early for the bidi stuff. There are still 2 > major jobs I need to do (reordering display strings and support for > truncated lines) and one minor one (a couple of bug reports regarding > cursor motion around invisible text and before-/after-strings). > There's no chance in the world that they will be ready in a month. I know it's hard to guess the future, but do you have some approximate idea of when we could reasonably expect to get these fixed? Other question: do these affect the behavior of Emacs when bidi-reorder-display is non-nil but there's no R2L in sight? > I also understand that Handa-san is working on modifying uni-bidi.el > and uni-mirror.el so that they could be used by bidi.c, instead of the > current separate tables. I would like to have that done before we > enter feature freeze. That would be good, indeed. > If you must start the pretest so early, then either 24.1 will need to > be released with the bidi flag off, I definitely want bidi-reorder-display to be t by default for Emacs-24. > or we will have significant potentially destabilizing changes during > the pretest (which contradicts the feature freeze and will generally > prolong the pretest). Maybe we could let bidi-reorder-display be t, while leaving some R2L reordering (such as display strings) unimplemented? > I'm sorry for my slow progress, but that's the best I can do working > alone on this. No reason to be sorry. We're all glad you're doing it at all. Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-30 19:20 ` Stefan Monnier @ 2011-05-30 21:12 ` Eli Zaretskii 2011-05-30 22:31 ` Stefan Monnier ` (2 more replies) 2011-05-31 5:23 ` Kenichi Handa 2011-05-31 7:44 ` David Kastrup 2 siblings, 3 replies; 52+ messages in thread From: Eli Zaretskii @ 2011-05-30 21:12 UTC (permalink / raw) To: Stefan Monnier; +Cc: cyd, emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: Chong Yidong <cyd@stupidchicken.com>, emacs-devel@gnu.org > Date: Mon, 30 May 2011 16:20:26 -0300 > > >> Stefan and I have decided on the end of June for the beginning of the > >> Emacs 24.1 pretest. We're hoping for an early 2012 release, but, as > >> always, that will depend on the code. > > That schedule is way too early for the bidi stuff. There are still 2 > > major jobs I need to do (reordering display strings and support for > > truncated lines) and one minor one (a couple of bug reports regarding > > cursor motion around invisible text and before-/after-strings). > > There's no chance in the world that they will be ready in a month. > > I know it's hard to guess the future, but do you have some approximate > idea of when we could reasonably expect to get these fixed? The first part of display string support -- reordering portions of text covered by display properties -- is already done and tested on my local branch, I was planning on merging that this week. The other part -- reordering the strings themselves -- is mostly local to bidi.c, but also involves some changes in xdisp.c, particularly in cursor motion and push_it/pop_it. It's a large job, and will probably take a month (i.e. 4 to 5 weekends) at least, maybe a little more. The uncertainty here is significant: this area of the display engine is notoriously under-documented and full of surprises, so it's possible I'll need to change the design half way through because I find out something I'm not aware of now. It happened before. Truncated lines will take something like 2 weekends to get to some reasonably usable state, but that's without the radical changes requested by Richard here: http://lists.gnu.org/archive/html/emacs-devel/2010-02/msg00167.html At the time, you (Stefan) thought that the current "inverted scrolling" was ``OK for now''. OTOH, if we want to implement the "rigid hscroll" that everybody agrees is TRT, we need to discuss the details here first, because we never did back then. Whatever the details, I expect this to be a complete rewrite of the whole hscroll thing, which reaches deep into the core parts of redisplay. Bug-fixing could be left for after the pretest starts, because I expect the pretest to be long, and so enough time to fix the bugs. So in sum, it sounds like I'll need 6 to 7 weeks from now, barring any unforeseen obstacles, personal disasters, etc. Alternatively, we could start the pretest end of June as you plan, but let me commit these changes as they become ready. I expect that turning bidi-display-reordering on for everyone even with today's code base will expose quite a few bugs that I don't know about, so there's some sense in doing that even though some features are not yet there. In the past, a pretest version was supposed to be quite stable, but maybe nowadays with so many people using the development code, it is no longer such a significant consideration, if people can tolerate transient breakage even during pretest. > Other question: do these affect the behavior of Emacs when > bidi-reorder-display is non-nil but there's no R2L in sight? Of course, they do: when bidi-display-reordering is non-nil, the display engine always goes through bidi.c, it doesn't know that the result will be a simple linear iteration. The same goes for cursor positioning in set_cursor_from_row: the old Emacs 23 vintage code is simply gone from there, so any bugs there will be acutely visible. From the user perspective, the behavior in a plain L2R buffer should be like in Emacs 23, but that's assuming there are no bugs... > Maybe we could let bidi-reorder-display be t, while leaving some R2L > reordering (such as display strings) unimplemented? I won't recommend that except as the last resort, if it turns out that the above estimates are way too optimistic, and/or the pretest is otherwise finished quicker than I think it will be. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-30 21:12 ` Eli Zaretskii @ 2011-05-30 22:31 ` Stefan Monnier 2011-05-31 6:11 ` Eli Zaretskii 2011-05-31 7:50 ` David Kastrup 2011-06-04 7:47 ` Eli Zaretskii 2 siblings, 1 reply; 52+ messages in thread From: Stefan Monnier @ 2011-05-30 22:31 UTC (permalink / raw) To: Eli Zaretskii; +Cc: cyd, emacs-devel > So in sum, it sounds like I'll need 6 to 7 weeks from now, barring any > unforeseen obstacles, personal disasters, etc. I guess we could push the feature freeze to end of July. But any new feature introduced after late June will need to get permission. How does that sound? The feature freeze is not a code freeze, so it's OK if you need some minor redesign to some part of the bidi/xdisp code as long as it is necessary to fix a bug rather than add a new feature. The distinction between bug and new feature in this context should mostly be "is it a regression w.r.t Emacs-23". Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-30 22:31 ` Stefan Monnier @ 2011-05-31 6:11 ` Eli Zaretskii 2011-05-31 12:54 ` Stefan Monnier 0 siblings, 1 reply; 52+ messages in thread From: Eli Zaretskii @ 2011-05-31 6:11 UTC (permalink / raw) To: Stefan Monnier; +Cc: cyd, emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: cyd@stupidchicken.com, emacs-devel@gnu.org > Date: Mon, 30 May 2011 19:31:51 -0300 > > > So in sum, it sounds like I'll need 6 to 7 weeks from now, barring any > > unforeseen obstacles, personal disasters, etc. > > I guess we could push the feature freeze to end of July. But any new > feature introduced after late June will need to get permission. > How does that sound? End of July will certainly give me a deadline I can hope to meet. I assume that by "new feature" you mean anything beyond the 2 I mentioned (bidirectional display strings and hscroll in buffers with bidi text), is that right? ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-31 6:11 ` Eli Zaretskii @ 2011-05-31 12:54 ` Stefan Monnier 2011-05-31 18:05 ` Chong Yidong 0 siblings, 1 reply; 52+ messages in thread From: Stefan Monnier @ 2011-05-31 12:54 UTC (permalink / raw) To: Eli Zaretskii; +Cc: cyd, emacs-devel >> > So in sum, it sounds like I'll need 6 to 7 weeks from now, barring any >> > unforeseen obstacles, personal disasters, etc. >> I guess we could push the feature freeze to end of July. But any new >> feature introduced after late June will need to get permission. >> How does that sound? > End of July will certainly give me a deadline I can hope to meet. Good. > I assume that by "new feature" you mean anything beyond the 2 I > mentioned (bidirectional display strings and hscroll in buffers with > bidi text), is that right? I was mostly thinking about non-bidi features, but yes, that also applies to not-already-agreed new features of bidi. Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-31 12:54 ` Stefan Monnier @ 2011-05-31 18:05 ` Chong Yidong 0 siblings, 0 replies; 52+ messages in thread From: Chong Yidong @ 2011-05-31 18:05 UTC (permalink / raw) To: Stefan Monnier; +Cc: Eli Zaretskii, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >>> I guess we could push the feature freeze to end of July. But any new >>> feature introduced after late June will need to get permission. >>> How does that sound? >> >> I assume that by "new feature" you mean anything beyond the 2 I >> mentioned (bidirectional display strings and hscroll in buffers with >> bidi text), is that right? > > I was mostly thinking about non-bidi features, but yes, that also > applies to not-already-agreed new features of bidi. So we'll use July to get started on stabilizing the non-bidi parts of the code, and the 24.1 documentation. That should be fine. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-30 21:12 ` Eli Zaretskii 2011-05-30 22:31 ` Stefan Monnier @ 2011-05-31 7:50 ` David Kastrup 2011-05-31 9:03 ` Eli Zaretskii 2011-06-04 7:47 ` Eli Zaretskii 2 siblings, 1 reply; 52+ messages in thread From: David Kastrup @ 2011-05-31 7:50 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > The first part of display string support -- reordering portions of > text covered by display properties -- is already done and tested on my > local branch, I was planning on merging that this week. > > The other part -- reordering the strings themselves -- is mostly local > to bidi.c, but also involves some changes in xdisp.c, particularly in > cursor motion and push_it/pop_it. It's a large job, and will probably > take a month (i.e. 4 to 5 weekends) at least, maybe a little more. > The uncertainty here is significant: this area of the display engine > is notoriously under-documented and full of surprises, so it's > possible I'll need to change the design half way through because I > find out something I'm not aware of now. It happened before. To give some perspective to this: one of the early adopters of display properties in Emacs 21 pretest had been preview-latex (an AUCTeX plugin). And I sent about two bug reports per week to Gerd Möllmann for months until all weird cases had been sorted out. IIRC, by far the worst contender for confusing the display engine was when the text hidden by the display string contained newlines, presumably because display matrix accounting and optimization got befuddled by it. Newlines. And now we are talking about R2L. -- David Kastrup ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-31 7:50 ` David Kastrup @ 2011-05-31 9:03 ` Eli Zaretskii 2011-05-31 9:11 ` David Kastrup 0 siblings, 1 reply; 52+ messages in thread From: Eli Zaretskii @ 2011-05-31 9:03 UTC (permalink / raw) To: David Kastrup; +Cc: emacs-devel > From: David Kastrup <dak@gnu.org> > Date: Tue, 31 May 2011 09:50:31 +0200 > > IIRC, by far the worst contender for confusing the display engine > was when the text hidden by the display string contained newlines, I'm not surprised. Newlines in the buffer serve as anchors for the display engine when it moves non-linearly, e.g. goes back by N lines. Handling the case where a newline does not indicate a beginning of a new screen line is painful and tricky. > Newlines. And now we are talking about R2L. Well, at least with R2L users can turn off the reordering if it happens to screw them up too badly. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-31 9:03 ` Eli Zaretskii @ 2011-05-31 9:11 ` David Kastrup 2011-05-31 9:59 ` Eli Zaretskii 0 siblings, 1 reply; 52+ messages in thread From: David Kastrup @ 2011-05-31 9:11 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: David Kastrup <dak@gnu.org> >> Date: Tue, 31 May 2011 09:50:31 +0200 >> >> IIRC, by far the worst contender for confusing the display engine >> was when the text hidden by the display string contained newlines, > > I'm not surprised. Newlines in the buffer serve as anchors for the > display engine when it moves non-linearly, e.g. goes back by N lines. > Handling the case where a newline does not indicate a beginning of a > new screen line is painful and tricky. > >> Newlines. And now we are talking about R2L. > > Well, at least with R2L users can turn off the reordering if it > happens to screw them up too badly. Unless the screwup asserts itself in the form of an infloop. Anyway, as opposed to normal R2L rendering, it is rather unlikely that display strings and overlays will happen without some explicit user request being involved. -- David Kastrup ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-31 9:11 ` David Kastrup @ 2011-05-31 9:59 ` Eli Zaretskii 0 siblings, 0 replies; 52+ messages in thread From: Eli Zaretskii @ 2011-05-31 9:59 UTC (permalink / raw) To: David Kastrup; +Cc: emacs-devel > From: David Kastrup <dak@gnu.org> > Date: Tue, 31 May 2011 11:11:03 +0200 > > > Well, at least with R2L users can turn off the reordering if it > > happens to screw them up too badly. > > Unless the screwup asserts itself in the form of an infloop. I meant turn off for the next session ;-) > Anyway, as opposed to normal R2L rendering, it is rather unlikely > that display strings and overlays will happen without some explicit > user request being involved. For some value of "explicit", unfortunately. As you know only too well, even TAB-completion in the minibuffer uses an overlay with an after-string when it displays the "[Complete, but not unique]" message. And visiting an image file uses a display property. Etc., etc. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-30 21:12 ` Eli Zaretskii 2011-05-30 22:31 ` Stefan Monnier 2011-05-31 7:50 ` David Kastrup @ 2011-06-04 7:47 ` Eli Zaretskii 2011-06-04 12:55 ` Stefan Monnier 2 siblings, 1 reply; 52+ messages in thread From: Eli Zaretskii @ 2011-06-04 7:47 UTC (permalink / raw) To: monnier, cyd; +Cc: emacs-devel > Date: Tue, 31 May 2011 00:12:30 +0300 > From: Eli Zaretskii <eliz@gnu.org> > Cc: cyd@stupidchicken.com, emacs-devel@gnu.org > > The first part of display string support -- reordering portions of > text covered by display properties -- is already done and tested on my > local branch, I was planning on merging that this week. Done (revision 104482 on the trunk). ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-04 7:47 ` Eli Zaretskii @ 2011-06-04 12:55 ` Stefan Monnier 0 siblings, 0 replies; 52+ messages in thread From: Stefan Monnier @ 2011-06-04 12:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: cyd, emacs-devel >> The first part of display string support -- reordering portions of >> text covered by display properties -- is already done and tested on my >> local branch, I was planning on merging that this week. > Done (revision 104482 on the trunk). 1 down, Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-30 19:20 ` Stefan Monnier 2011-05-30 21:12 ` Eli Zaretskii @ 2011-05-31 5:23 ` Kenichi Handa 2011-05-31 7:44 ` David Kastrup 2 siblings, 0 replies; 52+ messages in thread From: Kenichi Handa @ 2011-05-31 5:23 UTC (permalink / raw) To: Stefan Monnier; +Cc: eliz, cyd, emacs-devel In article <jwvtyccxanq.fsf-monnier+emacs@gnu.org>, Stefan Monnier <monnier@iro.umontreal.ca> writes: > I know it's hard to guess the future, but do you have some approximate > idea of when we could reasonably expect to get these fixed? For this work to finish: > I also understand that Handa-san is working on modifying uni-bidi.el > and uni-mirror.el so that they could be used by bidi.c, instead of the > current separate tables. I would like to have that done before we > enter feature freeze. I think the end of July is a good guess. By the way, what I'm going to do is to make all (or most of) uni-*.el data more easily available to C code (and modify uni-mirror.el to have mirror charatcter codes). --- Kenichi Handa handa@m17n.org ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-30 19:20 ` Stefan Monnier 2011-05-30 21:12 ` Eli Zaretskii 2011-05-31 5:23 ` Kenichi Handa @ 2011-05-31 7:44 ` David Kastrup 2 siblings, 0 replies; 52+ messages in thread From: David Kastrup @ 2011-05-31 7:44 UTC (permalink / raw) To: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >>> Stefan and I have decided on the end of June for the beginning of the >>> Emacs 24.1 pretest. We're hoping for an early 2012 release, but, as >>> always, that will depend on the code. >> That schedule is way too early for the bidi stuff. There are still 2 >> major jobs I need to do (reordering display strings and support for >> truncated lines) and one minor one (a couple of bug reports regarding >> cursor motion around invisible text and before-/after-strings). >> There's no chance in the world that they will be ready in a month. > > I know it's hard to guess the future, but do you have some approximate > idea of when we could reasonably expect to get these fixed? > > Other question: do these affect the behavior of Emacs when > bidi-reorder-display is non-nil but there's no R2L in sight? Emacs is a desktop environment. R2L will come "in sight" unintendedly via Mail, via opening files in the wrong encoding, via Usenet, via interpreting binary garbage and so on and so on. -- David Kastrup ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-30 16:07 Pretest begins end-June Chong Yidong 2011-05-30 18:29 ` Eli Zaretskii @ 2011-06-01 9:15 ` martin rudalics 2011-06-01 12:46 ` Stefan Monnier 2011-06-11 18:53 ` window-safely-shrinkable-p [was Re: Pretest begins end-June] Glenn Morris 2011-06-08 3:31 ` 23.4 " Glenn Morris 2011-06-13 16:29 ` Pretest begins end-June Dan Nicolaescu 3 siblings, 2 replies; 52+ messages in thread From: martin rudalics @ 2011-06-01 9:15 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel > Please plan accordingly. I intend to gradually deploy my window code changes in the next days. I'll start with the window tree functions, continue with moving the resize routines to Elisp, and finally apply the `display-buffer' changes. The final step will break a number of functions using buffer display routines, notably in org, gud, calculator and calendar code, which I cannot fix alone because I often don't understand the authors' intentions. It very likely will also break external packages which I don't know like Drew's Icicles. So I'll need some help there. If there are any objections please tell me. The code can be visited at and built from the window-pub branch. New items are described in the NEWS file, the windows section in the Elisp reference manual has been completely rewritten to reflect all changes. martin ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 9:15 ` martin rudalics @ 2011-06-01 12:46 ` Stefan Monnier 2011-06-01 14:07 ` martin rudalics 2011-06-11 18:53 ` window-safely-shrinkable-p [was Re: Pretest begins end-June] Glenn Morris 1 sibling, 1 reply; 52+ messages in thread From: Stefan Monnier @ 2011-06-01 12:46 UTC (permalink / raw) To: martin rudalics; +Cc: Chong Yidong, emacs-devel > I intend to gradually deploy my window code changes in the next days. > I'll start with the window tree functions, continue with moving the > resize routines to Elisp, and finally apply the `display-buffer' > changes. That was unexpected, but I think it's a good idea. > The final step will break a number of functions using buffer > display routines, notably in org, gud, calculator and calendar code, > which I cannot fix alone because I often don't understand the authors' > intentions. It very likely will also break external packages which I > don't know like Drew's Icicles. So I'll need some help there. Can you explain the kind of breakage and the reason why the change has to introduce these incompatibilities? Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 12:46 ` Stefan Monnier @ 2011-06-01 14:07 ` martin rudalics 2011-06-01 14:41 ` Stefan Monnier 2011-06-01 15:21 ` Drew Adams 0 siblings, 2 replies; 52+ messages in thread From: martin rudalics @ 2011-06-01 14:07 UTC (permalink / raw) To: Stefan Monnier; +Cc: Chong Yidong, emacs-devel >> The final step will break a number of functions using buffer >> display routines, notably in org, gud, calculator and calendar code, >> which I cannot fix alone because I often don't understand the authors' >> intentions. It very likely will also break external packages which I >> don't know like Drew's Icicles. So I'll need some help there. > > Can you explain the kind of breakage and the reason why the change has > to introduce these incompatibilities? The breakage occurs because `display-buffer' now expects that _all_ directives wrt where and how to display the buffer must be passed via a list in the second argument (which was formerly called `other-window' and is now called `specifiers') and the user customization of the behavior of `display-buffer' occurs independently in a new option called `display-buffer-alist'. The reason for this change was one of your earlier postings > Rather than let-binding some Lisp-manipulated "config" var, I was > thinking of passing special parameters to display-buffer ... and Juri Linkov's subsequent proposal > Why not use the existing argument `other-window' > of `pop-to-buffer' and `display-buffer'? Hence, if an application now wants to pop up a buffer in another frame it must do something like (pop-to-buffer buffer-or-name 'other-frame) instead of (let ((pop-up-frames t)) (pop-to-buffer buffer)) The breakage will usually cause a call like the later to simply follow the user customizations for how to display "buffer". I changed most of the trivial calls already but some are rather special. martin ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 14:07 ` martin rudalics @ 2011-06-01 14:41 ` Stefan Monnier 2011-06-01 15:25 ` Drew Adams 2011-06-01 15:58 ` martin rudalics 2011-06-01 15:21 ` Drew Adams 1 sibling, 2 replies; 52+ messages in thread From: Stefan Monnier @ 2011-06-01 14:41 UTC (permalink / raw) To: martin rudalics; +Cc: Chong Yidong, emacs-devel > The breakage occurs because `display-buffer' now expects that _all_ > directives wrt where and how to display the buffer must be passed via a > list in the second argument (which was formerly called `other-window' > and is now called `specifiers') and the user customization of the > behavior of `display-buffer' occurs independently in a new option called > `display-buffer-alist'. This is a good change, yes, thank you. > (let ((pop-up-frames t)) > (pop-to-buffer buffer)) The part I don't understand is why we can't preserve backward compatibility for such code. Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* RE: Pretest begins end-June 2011-06-01 14:41 ` Stefan Monnier @ 2011-06-01 15:25 ` Drew Adams 2011-06-01 15:58 ` martin rudalics 2011-06-01 15:58 ` martin rudalics 1 sibling, 1 reply; 52+ messages in thread From: Drew Adams @ 2011-06-01 15:25 UTC (permalink / raw) To: 'Stefan Monnier', 'martin rudalics' Cc: 'Chong Yidong', emacs-devel > > (let ((pop-up-frames t)) (pop-to-buffer buffer)) > > The part I don't understand is why we can't preserve backward > compatibility for such code. It is not just, or even most importantly, about backward compatibility. Being able to determine/regulate the behavior with a dynamic binding is an important feature. This change would apparently remove/limit that possibility. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 15:25 ` Drew Adams @ 2011-06-01 15:58 ` martin rudalics 2011-06-01 17:10 ` Drew Adams 0 siblings, 1 reply; 52+ messages in thread From: martin rudalics @ 2011-06-01 15:58 UTC (permalink / raw) To: Drew Adams; +Cc: 'Chong Yidong', 'Stefan Monnier', emacs-devel >>> (let ((pop-up-frames t)) (pop-to-buffer buffer)) >> The part I don't understand is why we can't preserve backward >> compatibility for such code. > > It is not just, or even most importantly, about backward compatibility. Being > able to determine/regulate the behavior with a dynamic binding is an important > feature. This change would apparently remove/limit that possibility. Unfortunately not. But it's an attempt to discourage that possibility by providing a suitable alternative - passing an explicit argument. IMHO an application may request (or better "suggest") specific behavior and set private variables. But it should not change or rebind any user option. martin ^ permalink raw reply [flat|nested] 52+ messages in thread
* RE: Pretest begins end-June 2011-06-01 15:58 ` martin rudalics @ 2011-06-01 17:10 ` Drew Adams 2011-06-01 18:13 ` Stefan Monnier 2011-06-01 19:08 ` martin rudalics 0 siblings, 2 replies; 52+ messages in thread From: Drew Adams @ 2011-06-01 17:10 UTC (permalink / raw) To: 'martin rudalics' Cc: 'Chong Yidong', 'Stefan Monnier', emacs-devel > > Being able to determine/regulate the behavior with a dynamic > > binding is an important feature. This change would apparently > > remove/limit that possibility. > > Unfortunately not. But it's an attempt to discourage that possibility > by providing a suitable alternative - passing an explicit argument. You said that binding the var would no longer work. That is a removal/limit of that possibility. And you do not provide a suitable alternative. You are missing/ignoring the general case, where the code that does the display is not necessarily available to modify textually. Your "suitable alternative" is workable only in the minority of cases where the call to `pop-to-buffer' is directly available and can be edited. You propose source-code editing as a replacement for the programmatic control of dynamic binding. > IMHO an application may request (or better "suggest") > specific behavior and set private variables. Your example substitute code does not "request" or "suggest" how to display, IIUC. It imposes how to display, the same as the code it would replace. Or if not, then it is not at all a suitable alternative and we are not even talking apples and oranges but rather apples and orangutans. > But it should not change or rebind any user option. Obviously I disagree. You're apparently OK with an application deciding whether to pop up a frame, but not OK with doing that by binding a dynamic variable, because in this case the var is a user option. That's hypocritical and silly. If an application controls the display, then it has taken control for that away from the user, regardless of how it does so. Bypassing `pop-up-frames' to do that is no more respectful of the user's general preference as expressed by that var than is binding the var. What is important are the resulting behavior and the user's preferences. Sometimes an application can be right to decide how something is displayed, in spite of a user's general preference. Developers need to DTRT, thinking about the user and her preferences to decide what TRT is in any given context. Respecting users does not necessarily mean blindly applying their general preferences in all contexts. If your code violates a user's general preference as defined by her `pop-up-frames' value, it is irrelevant how that violation was implemented. And this is more general than a question about user options. It is about dynamic variables in general. Removing the ability to bind a dynamic var in order to control behavior in code that is not directly modifiable is limiting and, frankly, unlispy. (No flames about lexical-only Lisps, please.) ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 17:10 ` Drew Adams @ 2011-06-01 18:13 ` Stefan Monnier 2011-06-01 19:08 ` martin rudalics 1 sibling, 0 replies; 52+ messages in thread From: Stefan Monnier @ 2011-06-01 18:13 UTC (permalink / raw) To: Drew Adams; +Cc: 'martin rudalics', 'Chong Yidong', emacs-devel > That's hypocritical and silly. That is not very constructive, now is it. I suggest instead you first check to see what Martin's code does (it provides a lot more and finer control to the end-user). And if you still find cases that don't work well enough, then please report those concrete situations. Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 17:10 ` Drew Adams 2011-06-01 18:13 ` Stefan Monnier @ 2011-06-01 19:08 ` martin rudalics 1 sibling, 0 replies; 52+ messages in thread From: martin rudalics @ 2011-06-01 19:08 UTC (permalink / raw) To: Drew Adams; +Cc: 'Chong Yidong', 'Stefan Monnier', emacs-devel > You said that binding the var would no longer work. > That is a removal/limit of that possibility. The application can bind the variable `display-buffer-alist' instead. > And you do not provide a suitable alternative. You are missing/ignoring the > general case, where the code that does the display is not necessarily available > to modify textually. I don't understand you here. > Your "suitable alternative" is workable only in the minority of cases where the > call to `pop-to-buffer' is directly available and can be edited. You propose > source-code editing as a replacement for the programmatic control of dynamic > binding. Actually I followed Stefan's advice which I repeat here once more: Rather than let-binding some Lisp-manipulated "config" var, I was thinking of passing special parameters to display-buffer (I'd rather avoid dynamic scoping whenever possible). So you can see that my first approach was to use conventional binding. >> IMHO an application may request (or better "suggest") >> specific behavior and set private variables. > > Your example substitute code does not "request" or "suggest" how to display, > IIUC. It imposes how to display, the same as the code it would replace. But not by manipulating a user option. Moreover, users can _always_ override the application, if they want to. > Or if not, then it is not at all a suitable alternative and we are not even > talking apples and oranges but rather apples and orangutans. > >> But it should not change or rebind any user option. > > Obviously I disagree. You're apparently OK with an application deciding whether > to pop up a frame, but not OK with doing that by binding a dynamic variable, > because in this case the var is a user option. Yes (if we replace the term "deciding" by the term "suggesting"). > That's hypocritical and silly. If an application controls the display, then it > has taken control for that away from the user, regardless of how it does so. No. A let-binding affects every `display-buffer' call nested in it. An argument affects only the associated call. > Bypassing `pop-up-frames' to do that is no more respectful of the user's general > preference as expressed by that var than is binding the var. What is important > are the resulting behavior and the user's preferences. > > Sometimes an application can be right to decide how something is displayed, in > spite of a user's general preference. Developers need to DTRT, thinking about > the user and her preferences to decide what TRT is in any given context. > Respecting users does not necessarily mean blindly applying their general > preferences in all contexts. Let's agree that developers and users may be both wrong, sometimes. > If your code violates a user's general preference as defined by her > `pop-up-frames' value, it is irrelevant how that violation was implemented. > > And this is more general than a question about user options. It is about > dynamic variables in general. Removing the ability to bind a dynamic var in > order to control behavior in code that is not directly modifiable is limiting > and, frankly, unlispy. (No flames about lexical-only Lisps, please.) We wouldn't agree anyway. martin ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 14:41 ` Stefan Monnier 2011-06-01 15:25 ` Drew Adams @ 2011-06-01 15:58 ` martin rudalics 2011-06-01 16:45 ` Stefan Monnier 1 sibling, 1 reply; 52+ messages in thread From: martin rudalics @ 2011-06-01 15:58 UTC (permalink / raw) To: Stefan Monnier; +Cc: Chong Yidong, emacs-devel >> (let ((pop-up-frames t)) >> (pop-to-buffer buffer)) > > The part I don't understand is why we can't preserve backward > compatibility for such code. Because it's not quite easy to decide in general which value should prevail. When `display-buffer' encounters a setting like this it would have to know whether it comes from a user who has set this in .emacs for Emacs < 24 or from an application that has not yet adopted the new behavior. In the former case, I would have to merge the request to pop up a new frame with the actual customization of `display-buffer-alist'. Now `pop-up-frames' is probably not very problematic in this context, but the options for popping up and reusing windows have been expanded considerably and most of these would get lost. Note: They would get lost because `display-buffer' would _have to assume_ that a specific behavior was requested by the application although that application did _not_ rebind the corresponding variable in the first place. It might be possible to use some heuristics like "`pop-up-windows' is by default t, so if `display-buffer' sees that this is t it will disregard it and consult the value of `display-buffer-alist' instead". But doing such guesses doesn't strike me as very robust :-( martin ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 15:58 ` martin rudalics @ 2011-06-01 16:45 ` Stefan Monnier 2011-06-01 19:07 ` martin rudalics 0 siblings, 1 reply; 52+ messages in thread From: Stefan Monnier @ 2011-06-01 16:45 UTC (permalink / raw) To: martin rudalics; +Cc: Chong Yidong, emacs-devel >>> (let ((pop-up-frames t)) >>> (pop-to-buffer buffer)) >> >> The part I don't understand is why we can't preserve backward >> compatibility for such code. > Because it's not quite easy to decide in general which value should > prevail. When `display-buffer' encounters a setting like this it would > have to know whether it comes from a user who has set this in .emacs for > Emacs < 24 or from an application that has not yet adopted the new > behavior. Let me put the question differently: *how* can we support code that rebinds pop-up-frames? I think preserving backward compatibility for this case is important, because it is used in many packages, not all of which are included in Emacs. > In the former case, I would have to merge the request to pop up a new > frame with the actual customization of `display-buffer-alist'. Now > `pop-up-frames' is probably not very problematic in this context, but > the options for popping up and reusing windows have been expanded > considerably and most of these would get lost. Note: They would get > lost because `display-buffer' would _have to assume_ that a specific > behavior was requested by the application although that application did > _not_ rebind the corresponding variable in the first place. IIUC, the problems are: 1- detect that pop-up-frames was set. 2- decide whether pop-up-frames was set by user or let-bound by the caller. 3- for each of those two cases, take this request into account. 4- same for pop-up-windows. Case 1 is easy (set the default value to `unset' and you're done). Case 2 is more difficult. Of course, we could add a new primitive that walks the specpdl stack to decide if a var is let-bound or not, but that doesn't sound very appealing. Case 3 doesn't sound too hard; IIUC it involves losing some functionality but that functionality is absent from Emacs-23 anyway. Do we really need to solve case 2? Probably not. > It might be possible to use some heuristics like "`pop-up-windows' is by > default t, so if `display-buffer' sees that this is t it will disregard > it and consult the value of `display-buffer-alist' instead". But doing > such guesses doesn't strike me as very robust :-( If we declare pop-up-frames and pop-up-windows as obsolete, I think it's OK to have an heuristic simulation of its semantics as long as it handles the known cases well enough. Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 16:45 ` Stefan Monnier @ 2011-06-01 19:07 ` martin rudalics 2011-06-01 19:43 ` Stefan Monnier 0 siblings, 1 reply; 52+ messages in thread From: martin rudalics @ 2011-06-01 19:07 UTC (permalink / raw) To: Stefan Monnier; +Cc: Chong Yidong, emacs-devel > Let me put the question differently: > *how* can we support code that rebinds pop-up-frames? It's a bit like having the cake and eating it too. > I think preserving backward compatibility for this case is important, > because it is used in many packages, not all of which are included in > Emacs. Agreed. > IIUC, the problems are: > 1- detect that pop-up-frames was set. > 2- decide whether pop-up-frames was set by user or let-bound by the caller. > 3- for each of those two cases, take this request into account. > 4- same for pop-up-windows. > > Case 1 is easy (set the default value to `unset' and you're done). I'm not 100% sure whether this could lead to difficulties (IIUC I would have to hardcode the Emacs 23 default values of `split-height-threshold' and `pop-up-windows' in `display-buffer') but let's agree. > Case 2 is more difficult. Of course, we could add a new primitive that > walks the specpdl stack to decide if a var is let-bound or not, but that > doesn't sound very appealing. Not really. > Case 3 doesn't sound too hard; IIUC it involves losing some > functionality but that functionality is absent from Emacs-23 anyway. > Do we really need to solve case 2? Probably not. Suppose a user has set `split-height-threshold' to some value for use in Emacs 23 and in Emacs 24 wants to use a new functionality of `display-buffer-alist' say apply `fit-window-to-buffer' for adjusting the window height. What shall `display-buffer' do? Respect the value of `split-height-threshold'? Adjust the height of the window? Do both? > If we declare pop-up-frames and pop-up-windows as obsolete, I think it's > OK to have an heuristic simulation of its semantics as long as it > handles the known cases well enough. I think I won't have great problems providing an acceptable heuristic for `pop-up-frames'. But I'm afraid that packages outside Emacs have some very unknown cases in store for me. martin ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 19:07 ` martin rudalics @ 2011-06-01 19:43 ` Stefan Monnier 2011-06-02 8:28 ` martin rudalics 0 siblings, 1 reply; 52+ messages in thread From: Stefan Monnier @ 2011-06-01 19:43 UTC (permalink / raw) To: martin rudalics; +Cc: Chong Yidong, emacs-devel >> Let me put the question differently: >> *how* can we support code that rebinds pop-up-frames? > It's a bit like having the cake and eating it too. Yup. >> Case 1 is easy (set the default value to `unset' and you're done). > I'm not 100% sure whether this could lead to difficulties (IIUC I would Neither am I, but we know that doing nothing will also lead to difficulties. >> Case 3 doesn't sound too hard; IIUC it involves losing some >> functionality but that functionality is absent from Emacs-23 anyway. >> Do we really need to solve case 2? Probably not. > Suppose a user has set `split-height-threshold' to some value for use in > Emacs 23 and in Emacs 24 wants to use a new functionality of > `display-buffer-alist' say apply `fit-window-to-buffer' for adjusting > the window height. What shall `display-buffer' do? Respect the value > of `split-height-threshold'? Adjust the height of the window? Do both? fir-window-to-buffer is unlikely to be something that you want to apply to *all* cases, so if set it should take precedence over split-height-threshold which is meant as a default behavior. > I think I won't have great problems providing an acceptable heuristic > for `pop-up-frames'. But I'm afraid that packages outside Emacs have > some very unknown cases in store for me. As I said: not doing anything is guaranteed to bring us problems, so even if the heuristic doesn't solve all cases, it should not be too hard to come up with one that solves more problems than it introduces. Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 19:43 ` Stefan Monnier @ 2011-06-02 8:28 ` martin rudalics 0 siblings, 0 replies; 52+ messages in thread From: martin rudalics @ 2011-06-02 8:28 UTC (permalink / raw) To: Stefan Monnier; +Cc: Chong Yidong, emacs-devel > fir-window-to-buffer is unlikely to be something that you want to apply > to *all* cases, so if set it should take precedence over > split-height-threshold which is meant as a default behavior. OK. I'll use this as one possible guideline. > As I said: not doing anything is guaranteed to bring us problems, so > even if the heuristic doesn't solve all cases, it should not be too hard > to come up with one that solves more problems than it introduces. I'll see what I can do in this regard. Since, in the worst case, the user can always override the application, I shall try to make this more application-friendly than intended. Maybe I also add a compatibility option the user can set - something like "if this is non-nil, the value of an obsolete buffer display variable is respected if it's different from the default." - and make it by default non-nil for the time being. martin ^ permalink raw reply [flat|nested] 52+ messages in thread
* RE: Pretest begins end-June 2011-06-01 14:07 ` martin rudalics 2011-06-01 14:41 ` Stefan Monnier @ 2011-06-01 15:21 ` Drew Adams 2011-06-02 8:27 ` martin rudalics 1 sibling, 1 reply; 52+ messages in thread From: Drew Adams @ 2011-06-01 15:21 UTC (permalink / raw) To: 'martin rudalics', 'Stefan Monnier' Cc: 'Chong Yidong', emacs-devel > Hence, if an application now wants to pop up a buffer in > another frame it must do something like > (pop-to-buffer buffer-or-name 'other-frame) > instead of (let ((pop-up-frames t)) (pop-to-buffer buffer)) Which means that an app that calls another function that does (pop-to-buffer buffer) cannot control the behavior. What you describe is no big deal for code that calls `pop-to-buffer' directly. But it makes it difficult if not impossible to control the behavior when code calls other code that in turn calls `pop-to-buffer'. Without access to changing the latter code, one's goose is pretty much cooked. `pop-up-frames' is designed to be used as a dynamic ("special") var. Dynamic binding can be very useful, as I'm sure you know. The change you describe works against that usefulness. > I changed most of the trivial calls already but some are > rather special. Are you talking about just changing calls to `pop-to-buffer' in the Emacs sources? Many, probably most, `pop-to-buffer' calls are out there in the wider Emacs world, not just in the Emacs-Dev sources. More importantly, what you describe apparently limits the use and usefulness of `pop-up-frames' (essentially eliminating it) - it's not just about existing code. Please provide some way to dynamically bind _some_ var to control the behavior. IOW, please restore the flexibility (control) you are apparently taking away. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-01 15:21 ` Drew Adams @ 2011-06-02 8:27 ` martin rudalics 0 siblings, 0 replies; 52+ messages in thread From: martin rudalics @ 2011-06-02 8:27 UTC (permalink / raw) To: Drew Adams; +Cc: 'Chong Yidong', 'Stefan Monnier', emacs-devel > Which means that an app that calls another function that does (pop-to-buffer > buffer) cannot control the behavior. Intentionally so. Nested within that call there may be other `display-buffer' calls of which the caller is not aware. These calls should not be affected by any bindings. I do not have the slightest sentiment for my `pop-up-frames' nil `debug-on-error' t setting have (let ((pop-up-frames t)) (error "???")) pop up a new frame. > `pop-up-frames' is designed to be used as a dynamic ("special") var. Dynamic > binding can be very useful, as I'm sure you know. The change you describe works > against that usefulness. I suppose that `pop-up-frames' was designed as an option for the user to control the behavior of buffer display functions. The history of this and all related options is that of building a tower as follows: - Initially the user was provided the option `pop-up-frames' to control the creation of new frames. - Applications stole the customizations by let-binding this variable to whatever they considered appropriate. - The user was given back the option via `special-display-popup-frame'. - Applications stole the customizations again by binding `special-display-buffer-names' and `special-display-regexps' to nil. So where would you go from here? >> I changed most of the trivial calls already but some are >> rather special. > > Are you talking about just changing calls to `pop-to-buffer' in the Emacs > sources? Many, probably most, `pop-to-buffer' calls are out there in the wider > Emacs world, not just in the Emacs-Dev sources. That's why I raised this issue in my first mail. > More importantly, what you describe apparently limits the use and usefulness of > `pop-up-frames' (essentially eliminating it) - it's not just about existing > code. > > Please provide some way to dynamically bind _some_ var to control the behavior. > IOW, please restore the flexibility (control) you are apparently taking away. That flexibility has been given back to the user. martin ^ permalink raw reply [flat|nested] 52+ messages in thread
* window-safely-shrinkable-p [was Re: Pretest begins end-June] 2011-06-01 9:15 ` martin rudalics 2011-06-01 12:46 ` Stefan Monnier @ 2011-06-11 18:53 ` Glenn Morris 2011-06-11 20:44 ` martin rudalics 1 sibling, 1 reply; 52+ messages in thread From: Glenn Morris @ 2011-06-11 18:53 UTC (permalink / raw) To: martin rudalics; +Cc: Chong Yidong, emacs-devel martin rudalics wrote: > The final step will break a number of functions using buffer display > routines, notably in org, gud, calculator and calendar code, which I > cannot fix alone because I often don't understand the authors' intentions. Re calendar: me neither (probably), but you can ask. :) The first thing I notice is that the function window-safely-shrinkable-p, used by calendar.el, seems to have vanished (with no ChangeLog entry) in r104562. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: window-safely-shrinkable-p [was Re: Pretest begins end-June] 2011-06-11 18:53 ` window-safely-shrinkable-p [was Re: Pretest begins end-June] Glenn Morris @ 2011-06-11 20:44 ` martin rudalics 2011-06-11 22:18 ` window-safely-shrinkable-p Glenn Morris 2011-06-12 3:29 ` window-safely-shrinkable-p [was Re: Pretest begins end-June] Stefan Monnier 0 siblings, 2 replies; 52+ messages in thread From: martin rudalics @ 2011-06-11 20:44 UTC (permalink / raw) To: Glenn Morris; +Cc: Chong Yidong, emacs-devel > The first thing I notice is that the function > window-safely-shrinkable-p, used by calendar.el, seems to have vanished > (with no ChangeLog entry) in r104562. Arrrgh ... Can you please try replacing (when in-calendar-window ;; The second test used to be window-full-width-p. ;; Not sure what it was/is for, except perhaps some way of saying ;; "try not to mess with existing configurations". ;; If did the wrong thing on wide frames, where we have done a ;; horizontal split in calendar-basic-setup. (if (or (one-window-p t) (not (window-safely-shrinkable-p))) ;; Don't mess with the window size, but ensure that the first ;; line is fully visible. (set-window-vscroll nil 0) ;; Adjust the window to exactly fit the displayed calendar. (fit-window-to-buffer nil nil calendar-minimum-window-height)) by (when in-calendar-window (if (window-iso-combined-p) ;; Adjust the window to exactly fit the displayed calendar. (fit-window-to-buffer nil nil calendar-minimum-window-height) ;; For a full height window or a window that is horizontally ;; combined don't fit height to that of its buffer. (set-window-vscroll nil 0)) and tell me whether it works? Thanks, martin ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: window-safely-shrinkable-p 2011-06-11 20:44 ` martin rudalics @ 2011-06-11 22:18 ` Glenn Morris 2011-06-12 8:45 ` window-safely-shrinkable-p martin rudalics 2011-06-12 3:29 ` window-safely-shrinkable-p [was Re: Pretest begins end-June] Stefan Monnier 1 sibling, 1 reply; 52+ messages in thread From: Glenn Morris @ 2011-06-11 22:18 UTC (permalink / raw) To: martin rudalics; +Cc: Chong Yidong, emacs-devel martin rudalics wrote: > (when in-calendar-window > (if (window-iso-combined-p) > ;; Adjust the window to exactly fit the displayed calendar. > (fit-window-to-buffer nil nil calendar-minimum-window-height) > ;; For a full height window or a window that is horizontally > ;; combined don't fit height to that of its buffer. > (set-window-vscroll nil 0)) > > and tell me whether it works? I can only do very limited testing right now, but it seems ok, thanks. Feel free to install this and and any other related changes to calendar window handling. I'm looking forward to the improvements/simplifications that your work should bring, window handling has been messy in the past. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: window-safely-shrinkable-p 2011-06-11 22:18 ` window-safely-shrinkable-p Glenn Morris @ 2011-06-12 8:45 ` martin rudalics 0 siblings, 0 replies; 52+ messages in thread From: martin rudalics @ 2011-06-12 8:45 UTC (permalink / raw) To: Glenn Morris; +Cc: Chong Yidong, emacs-devel > I can only do very limited testing right now, but it seems ok, thanks. > Feel free to install this Installed (mainly because IMHO `window-safely-shrinkable-p' was not really safe in the first place). Please check whether it DTRT. > and and any other related changes to calendar > window handling. I'm looking forward to the improvements/simplifications > that your work should bring, window handling has been messy in the past. I hope that my future `display-buffer' changes will remain compatible with calendar. I'll then have some trivial changes for calendar ready to install but will contact you before applying them. We'll have to discuss the more tricky cases after that. martin ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: window-safely-shrinkable-p [was Re: Pretest begins end-June] 2011-06-11 20:44 ` martin rudalics 2011-06-11 22:18 ` window-safely-shrinkable-p Glenn Morris @ 2011-06-12 3:29 ` Stefan Monnier 2011-06-12 8:45 ` martin rudalics 1 sibling, 1 reply; 52+ messages in thread From: Stefan Monnier @ 2011-06-12 3:29 UTC (permalink / raw) To: martin rudalics; +Cc: Chong Yidong, emacs-devel > Can you please try replacing Please provide a backward compatibility implementation of any function that's found missing: if Emacs's packages use it, it's likely that outside packages use it as well. Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: window-safely-shrinkable-p [was Re: Pretest begins end-June] 2011-06-12 3:29 ` window-safely-shrinkable-p [was Re: Pretest begins end-June] Stefan Monnier @ 2011-06-12 8:45 ` martin rudalics 2011-06-14 3:01 ` Stefan Monnier 0 siblings, 1 reply; 52+ messages in thread From: martin rudalics @ 2011-06-12 8:45 UTC (permalink / raw) To: Stefan Monnier; +Cc: Chong Yidong, emacs-devel > Please provide a backward compatibility implementation of any function > that's found missing: The change in question was not intentional (which is also explained by the fact that there was no corresponding ChangeLog entry). I have restored the original function but declared it as obsolete because I think it doesn't do the right thing in more complex configurations. > if Emacs's packages use it, it's likely that > outside packages use it as well. I hope this doesn't hold for window--.. functions. martin ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: window-safely-shrinkable-p [was Re: Pretest begins end-June] 2011-06-12 8:45 ` martin rudalics @ 2011-06-14 3:01 ` Stefan Monnier 0 siblings, 0 replies; 52+ messages in thread From: Stefan Monnier @ 2011-06-14 3:01 UTC (permalink / raw) To: martin rudalics; +Cc: Chong Yidong, emacs-devel > The change in question was not intentional (which is also explained by > the fact that there was no corresponding ChangeLog entry). I have > restored the original function but declared it as obsolete because I > think it doesn't do the right thing in more complex configurations. Thanks. >> if Emacs's packages use it, it's likely that >> outside packages use it as well. > I hope this doesn't hold for window--.. functions. So do I, Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* 23.4 [was Re: Pretest begins end-June] 2011-05-30 16:07 Pretest begins end-June Chong Yidong 2011-05-30 18:29 ` Eli Zaretskii 2011-06-01 9:15 ` martin rudalics @ 2011-06-08 3:31 ` Glenn Morris 2011-06-08 15:35 ` Stefan Monnier 2011-06-13 16:29 ` Pretest begins end-June Dan Nicolaescu 3 siblings, 1 reply; 52+ messages in thread From: Glenn Morris @ 2011-06-08 3:31 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel Chong Yidong wrote: > Stefan and I have decided on the end of June for the beginning of the > Emacs 24.1 pretest. We're hoping for an early 2012 release, but, as > always, that will depend on the code. In light of this, I wonder if you could comment on whether you expect there to be a 23.4? Since the above plan is a relatively short time-scale, and since there are no show-stopping problems with 23.3 (so far), I'm hoping we can get away without a 23.4. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: 23.4 [was Re: Pretest begins end-June] 2011-06-08 3:31 ` 23.4 " Glenn Morris @ 2011-06-08 15:35 ` Stefan Monnier 2011-06-08 19:21 ` Daniel Colascione 0 siblings, 1 reply; 52+ messages in thread From: Stefan Monnier @ 2011-06-08 15:35 UTC (permalink / raw) To: Glenn Morris; +Cc: Chong Yidong, emacs-devel >> Stefan and I have decided on the end of June for the beginning of the >> Emacs 24.1 pretest. We're hoping for an early 2012 release, but, as >> always, that will depend on the code. > In light of this, I wonder if you could comment on whether you expect > there to be a 23.4? > Since the above plan is a relatively short time-scale, and since there > are no show-stopping problems with 23.3 (so far), I'm hoping we can get > away without a 23.4. That's also my hope. Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: 23.4 [was Re: Pretest begins end-June] 2011-06-08 15:35 ` Stefan Monnier @ 2011-06-08 19:21 ` Daniel Colascione 2011-06-09 4:15 ` Stefan Monnier 0 siblings, 1 reply; 52+ messages in thread From: Daniel Colascione @ 2011-06-08 19:21 UTC (permalink / raw) To: Stefan Monnier; +Cc: Chong Yidong, emacs-devel [-- Attachment #1: Type: text/plain, Size: 721 bytes --] On 6/8/2011 8:35 AM, Stefan Monnier wrote: >>> Stefan and I have decided on the end of June for the beginning of the >>> Emacs 24.1 pretest. We're hoping for an early 2012 release, but, as >>> always, that will depend on the code. >> In light of this, I wonder if you could comment on whether you expect >> there to be a 23.4? >> Since the above plan is a relatively short time-scale, and since there >> are no show-stopping problems with 23.3 (so far), I'm hoping we can get >> away without a 23.4. > > That's also my hope. Is it okay to make changes to the emacs-23 branch just in case? If we *do* release a 23.4, marking lexical-binding as a safe local variable would make some annoyances go away. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 258 bytes --] ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: 23.4 [was Re: Pretest begins end-June] 2011-06-08 19:21 ` Daniel Colascione @ 2011-06-09 4:15 ` Stefan Monnier 0 siblings, 0 replies; 52+ messages in thread From: Stefan Monnier @ 2011-06-09 4:15 UTC (permalink / raw) To: Daniel Colascione; +Cc: Chong Yidong, emacs-devel >>>> Stefan and I have decided on the end of June for the beginning of the >>>> Emacs 24.1 pretest. We're hoping for an early 2012 release, but, as >>>> always, that will depend on the code. >>> In light of this, I wonder if you could comment on whether you expect >>> there to be a 23.4? >>> Since the above plan is a relatively short time-scale, and since there >>> are no show-stopping problems with 23.3 (so far), I'm hoping we can get >>> away without a 23.4. >> That's also my hope. > Is it okay to make changes to the emacs-23 branch just in case? Of course. Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-05-30 16:07 Pretest begins end-June Chong Yidong ` (2 preceding siblings ...) 2011-06-08 3:31 ` 23.4 " Glenn Morris @ 2011-06-13 16:29 ` Dan Nicolaescu 2011-06-13 17:19 ` Eli Zaretskii ` (2 more replies) 3 siblings, 3 replies; 52+ messages in thread From: Dan Nicolaescu @ 2011-06-13 16:29 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel Chong Yidong <cyd@stupidchicken.com> writes: > Stefan and I have decided on the end of June for the beginning of the > Emacs 24.1 pretest. We're hoping for an early 2012 release, but, as > always, that will depend on the code. Is there a plan for things that need to be finished? For example given that lexical scoping is one of the new things in this release it would be nice if more things could use it. The "term", "language" and "international" subdirectories could be converted with very little effort. Also how about making sure that more programming modes are derived from prog-mode? This patch can take care of a few of them: === modified file 'lisp/progmodes/ld-script.el' --- lisp/progmodes/ld-script.el 2011-05-12 16:46:53 +0000 +++ lisp/progmodes/ld-script.el 2011-06-13 06:10:51 +0000 @@ -168,7 +168,7 @@ "Default font-lock-keywords for `ld-script-mode'.") ;;;###autoload -(define-derived-mode ld-script-mode nil "LD-Script" +(define-derived-mode ld-script-mode prog-mode "LD-Script" "A major mode to edit GNU ld script files" (set (make-local-variable 'comment-start) "/* ") (set (make-local-variable 'comment-end) " */") === modified file 'lisp/progmodes/mixal-mode.el' --- lisp/progmodes/mixal-mode.el 2011-05-23 17:57:17 +0000 +++ lisp/progmodes/mixal-mode.el 2011-06-13 06:10:44 +0000 @@ -1103,7 +1103,7 @@ Assumes that file has been compiled with (error "mixvm.el needs to be loaded to run `mixvm'"))) ;;;###autoload -(define-derived-mode mixal-mode fundamental-mode "mixal" +(define-derived-mode mixal-mode prog-mode "mixal" "Major mode for the mixal asm language." (set (make-local-variable 'comment-start) "*") (set (make-local-variable 'comment-start-skip) "^\\*[ \t]*") === modified file 'lisp/progmodes/ps-mode.el' --- lisp/progmodes/ps-mode.el 2011-04-22 18:44:26 +0000 +++ lisp/progmodes/ps-mode.el 2011-06-13 06:11:12 +0000 @@ -485,7 +485,7 @@ If nil, use `temporary-file-directory'." ;; PostScript mode. ;;;###autoload -(define-derived-mode ps-mode fundamental-mode "PostScript" +(define-derived-mode ps-mode prog-mode "PostScript" "Major mode for editing PostScript with GNU Emacs. Entry to this mode calls `ps-mode-hook'. === modified file 'lisp/progmodes/python.el' --- lisp/progmodes/python.el 2011-05-24 03:38:35 +0000 +++ lisp/progmodes/python.el 2011-06-13 06:32:06 +0000 @@ -2420,7 +2420,7 @@ without confirmation." (defvar python-mode-running) ;Dynamically scoped var. ;;;###autoload -(define-derived-mode python-mode fundamental-mode "Python" +(define-derived-mode python-mode prog-mode "Python" "Major mode for editing Python files. Turns on Font Lock mode unconditionally since it is currently required for correct parsing of the source. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-13 16:29 ` Pretest begins end-June Dan Nicolaescu @ 2011-06-13 17:19 ` Eli Zaretskii 2011-06-13 21:37 ` Chong Yidong 2011-06-14 2:58 ` Stefan Monnier 2 siblings, 0 replies; 52+ messages in thread From: Eli Zaretskii @ 2011-06-13 17:19 UTC (permalink / raw) To: Dan Nicolaescu; +Cc: cyd, emacs-devel > From: Dan Nicolaescu <dann@gnu.org> > Date: Mon, 13 Jun 2011 12:29:39 -0400 > Cc: emacs-devel@gnu.org > > Also how about making sure that more programming modes are derived from > prog-mode? This patch can take care of a few of them: Thank you. I think this should be installed ASAP, if for no other reason, then because bidi-display-reordering will be eventually turned on by default. prog-mode makes sure every mode derived from it will have the paragraph direction forced to be left-to-right, to avoid messing the display if someone writes a comment or string in some R2L script in a strategic place. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-13 16:29 ` Pretest begins end-June Dan Nicolaescu 2011-06-13 17:19 ` Eli Zaretskii @ 2011-06-13 21:37 ` Chong Yidong 2011-06-14 2:58 ` Stefan Monnier 2 siblings, 0 replies; 52+ messages in thread From: Chong Yidong @ 2011-06-13 21:37 UTC (permalink / raw) To: Dan Nicolaescu; +Cc: emacs-devel Dan Nicolaescu <dann@gnu.org> writes: > For example given that lexical scoping is one of the new things in this > release it would be nice if more things could use it. The "term", > "language" and "international" subdirectories could be converted with > very little effort. Apart from those files that were heavily using lexical-let---which are already converted---it doesn't seem worth making the conversion a release goal for 24.1. On the other hand, if any Emacs developer wants to do the work of converting files to lexical binding during the remaining time to pretest, it will probably do no harm. Stefan, WDYT? > Also how about making sure that more programming modes are derived from > prog-mode? This patch can take care of a few of them: Yes, please commit. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Pretest begins end-June 2011-06-13 16:29 ` Pretest begins end-June Dan Nicolaescu 2011-06-13 17:19 ` Eli Zaretskii 2011-06-13 21:37 ` Chong Yidong @ 2011-06-14 2:58 ` Stefan Monnier 2011-06-15 14:58 ` deriving from prog-mode (was: Re: Pretest begins end-June) Dan Nicolaescu 2 siblings, 1 reply; 52+ messages in thread From: Stefan Monnier @ 2011-06-14 2:58 UTC (permalink / raw) To: Dan Nicolaescu; +Cc: Chong Yidong, emacs-devel > Is there a plan for things that need to be finished? Nothing very specific, no. > For example given that lexical scoping is one of the new things in this > release it would be nice if more things could use it. The "term", > "language" and "international" subdirectories could be converted with > very little effort. This is not a priority, no. The main purpose of Emacs-24's lexical binding support is to make it possible to use efficient lexical binding. Maybe for Emacs-25, we will want to encourage conversion more explicitly, but not for now. Note for example that debugging lexically scoped code is not as well supported. > Also how about making sure that more programming modes are derived from > prog-mode? That would be nice, yes. Feel free to install such changes. Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* deriving from prog-mode (was: Re: Pretest begins end-June) 2011-06-14 2:58 ` Stefan Monnier @ 2011-06-15 14:58 ` Dan Nicolaescu 2011-06-18 16:26 ` deriving from prog-mode Chong Yidong 0 siblings, 1 reply; 52+ messages in thread From: Dan Nicolaescu @ 2011-06-15 14:58 UTC (permalink / raw) To: Stefan Monnier; +Cc: Chong Yidong, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> Also how about making sure that more programming modes are derived from >> prog-mode? > > That would be nice, yes. Feel free to install such changes. Cited patch checked in. It looks like the only remaining stragglers in lisp/progmodes are cperl-mode.el (which, AFAIR, is not maintained here) and delphi.el (which passes an extra `skip-initial-parsing' to `delphi-mode'. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: deriving from prog-mode 2011-06-15 14:58 ` deriving from prog-mode (was: Re: Pretest begins end-June) Dan Nicolaescu @ 2011-06-18 16:26 ` Chong Yidong 2011-06-19 5:59 ` Dan Nicolaescu 0 siblings, 1 reply; 52+ messages in thread From: Chong Yidong @ 2011-06-18 16:26 UTC (permalink / raw) To: Dan Nicolaescu; +Cc: Stefan Monnier, emacs-devel Dan Nicolaescu <dann@gnu.org> writes: > Stefan Monnier <monnier@iro.umontreal.ca> writes: > >>> Also how about making sure that more programming modes are derived from >>> prog-mode? >> >> That would be nice, yes. Feel free to install such changes. > > Cited patch checked in. > > It looks like the only remaining stragglers in lisp/progmodes are > cperl-mode.el (which, AFAIR, is not maintained here) and delphi.el > (which passes an extra `skip-initial-parsing' to `delphi-mode'. I've fixed delphi-mode. Not sure about the best thing for cperl-mode; due to its maintenance baggage, maybe we should just add bidi-paragraph-direction to the function body instead of using define-derived-mode. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: deriving from prog-mode 2011-06-18 16:26 ` deriving from prog-mode Chong Yidong @ 2011-06-19 5:59 ` Dan Nicolaescu 2011-06-20 1:48 ` Stefan Monnier 0 siblings, 1 reply; 52+ messages in thread From: Dan Nicolaescu @ 2011-06-19 5:59 UTC (permalink / raw) To: Chong Yidong; +Cc: Stefan Monnier, emacs-devel Chong Yidong <cyd@stupidchicken.com> writes: > Dan Nicolaescu <dann@gnu.org> writes: > >> Stefan Monnier <monnier@iro.umontreal.ca> writes: >> >>>> Also how about making sure that more programming modes are derived from >>>> prog-mode? >>> >>> That would be nice, yes. Feel free to install such changes. >> >> Cited patch checked in. >> >> It looks like the only remaining stragglers in lisp/progmodes are >> cperl-mode.el (which, AFAIR, is not maintained here) and delphi.el >> (which passes an extra `skip-initial-parsing' to `delphi-mode'. > > I've fixed delphi-mode. Not sure about the best thing for cperl-mode; > due to its maintenance baggage, maybe we should just add > bidi-paragraph-direction to the function body instead of using > define-derived-mode. If you go that way, please also make it run `prog-mode-hook`. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: deriving from prog-mode 2011-06-19 5:59 ` Dan Nicolaescu @ 2011-06-20 1:48 ` Stefan Monnier 2011-06-26 20:45 ` Chong Yidong 0 siblings, 1 reply; 52+ messages in thread From: Stefan Monnier @ 2011-06-20 1:48 UTC (permalink / raw) To: Dan Nicolaescu; +Cc: Chong Yidong, emacs-devel > If you go that way, please also make it run `prog-mode-hook`. I'd rather only do that via the use of define-derived-mode. As for whether we should use define-derived-mode for cperl-mode.el, I have no opinion on it (I generally prefer refrain from changing cperl-mode.el, but maybe it's not that bad in this case). Stefan ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: deriving from prog-mode 2011-06-20 1:48 ` Stefan Monnier @ 2011-06-26 20:45 ` Chong Yidong 0 siblings, 0 replies; 52+ messages in thread From: Chong Yidong @ 2011-06-26 20:45 UTC (permalink / raw) To: Stefan Monnier; +Cc: Dan Nicolaescu, emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> If you go that way, please also make it run `prog-mode-hook`. > > I'd rather only do that via the use of define-derived-mode. > As for whether we should use define-derived-mode for cperl-mode.el, > I have no opinion on it (I generally prefer refrain from changing > cperl-mode.el, but maybe it's not that bad in this case). I went ahead and changed it to use define-derived-mode. ^ permalink raw reply [flat|nested] 52+ messages in thread
end of thread, other threads:[~2011-06-26 20:45 UTC | newest] Thread overview: 52+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-05-30 16:07 Pretest begins end-June Chong Yidong 2011-05-30 18:29 ` Eli Zaretskii 2011-05-30 19:20 ` Stefan Monnier 2011-05-30 21:12 ` Eli Zaretskii 2011-05-30 22:31 ` Stefan Monnier 2011-05-31 6:11 ` Eli Zaretskii 2011-05-31 12:54 ` Stefan Monnier 2011-05-31 18:05 ` Chong Yidong 2011-05-31 7:50 ` David Kastrup 2011-05-31 9:03 ` Eli Zaretskii 2011-05-31 9:11 ` David Kastrup 2011-05-31 9:59 ` Eli Zaretskii 2011-06-04 7:47 ` Eli Zaretskii 2011-06-04 12:55 ` Stefan Monnier 2011-05-31 5:23 ` Kenichi Handa 2011-05-31 7:44 ` David Kastrup 2011-06-01 9:15 ` martin rudalics 2011-06-01 12:46 ` Stefan Monnier 2011-06-01 14:07 ` martin rudalics 2011-06-01 14:41 ` Stefan Monnier 2011-06-01 15:25 ` Drew Adams 2011-06-01 15:58 ` martin rudalics 2011-06-01 17:10 ` Drew Adams 2011-06-01 18:13 ` Stefan Monnier 2011-06-01 19:08 ` martin rudalics 2011-06-01 15:58 ` martin rudalics 2011-06-01 16:45 ` Stefan Monnier 2011-06-01 19:07 ` martin rudalics 2011-06-01 19:43 ` Stefan Monnier 2011-06-02 8:28 ` martin rudalics 2011-06-01 15:21 ` Drew Adams 2011-06-02 8:27 ` martin rudalics 2011-06-11 18:53 ` window-safely-shrinkable-p [was Re: Pretest begins end-June] Glenn Morris 2011-06-11 20:44 ` martin rudalics 2011-06-11 22:18 ` window-safely-shrinkable-p Glenn Morris 2011-06-12 8:45 ` window-safely-shrinkable-p martin rudalics 2011-06-12 3:29 ` window-safely-shrinkable-p [was Re: Pretest begins end-June] Stefan Monnier 2011-06-12 8:45 ` martin rudalics 2011-06-14 3:01 ` Stefan Monnier 2011-06-08 3:31 ` 23.4 " Glenn Morris 2011-06-08 15:35 ` Stefan Monnier 2011-06-08 19:21 ` Daniel Colascione 2011-06-09 4:15 ` Stefan Monnier 2011-06-13 16:29 ` Pretest begins end-June Dan Nicolaescu 2011-06-13 17:19 ` Eli Zaretskii 2011-06-13 21:37 ` Chong Yidong 2011-06-14 2:58 ` Stefan Monnier 2011-06-15 14:58 ` deriving from prog-mode (was: Re: Pretest begins end-June) Dan Nicolaescu 2011-06-18 16:26 ` deriving from prog-mode Chong Yidong 2011-06-19 5:59 ` Dan Nicolaescu 2011-06-20 1:48 ` Stefan Monnier 2011-06-26 20:45 ` Chong Yidong
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.