* Changes 2009-07-15/16 in branch? @ 2009-07-23 11:22 Adrian Robert 2009-07-23 12:46 ` YAMAMOTO Mitsuharu ` (2 more replies) 0 siblings, 3 replies; 80+ messages in thread From: Adrian Robert @ 2009-07-23 11:22 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: Emacs-Devel devel Hello Yamamoto-san, Did you mean to check the changes below into the branch? I *think* these are pretty safe, but it seems a bit close to release for such feature changes, even in the name of standardization. My vote would be to do these on trunk only for now. Also: ns_get_color(): Shouldn't the description comment for ns_get_color() be updated further? It looks like something was just chopped off, leaving the rest making little sense. What is the bug or problem this change fixes? ns_color_to_lisp(): The function could be simplified now that you have eliminated a special case. nsfont_draw(): Would setting the foreground instead of the background color to the bitmap constitute a corrected implementation? ns-set-background-alpha: The implementation you just removed was superior to that for (set-frame-parameter nil 'alpha ##): it does not alter the alpha of the titlebar, scrollbars, modeline, or text. This makes it usable, instead of a curiosity. It also provides access via an interactive function. The correct fix would be to improve the (set- frame-parameter) version, not remove this while no alternative exists for users. 2009-07-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> * nsfns.m (Fns_set_alpha): Remove function. (syms_of_nsfns): Don't defsubr it. * nsterm.m (ns_get_color): Remove incompatible color formats. (ns_color_to_lisp): Generate #rrggbb color format string. 2009-07-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> * nsfont.m (nsfont_draw): Remove code for stippling, which actually does tiling. * nsterm.m (ns_maybe_dumpglyphs_background): Likewise. 2009-07-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> * term/ns-win.el (ns-set-alpha): Don't declare. (ns-set-background-alpha): Remove function. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-23 11:22 Changes 2009-07-15/16 in branch? Adrian Robert @ 2009-07-23 12:46 ` YAMAMOTO Mitsuharu 2009-07-23 15:30 ` Stefan Monnier 2009-07-24 14:34 ` Adrian Robert 2009-07-27 0:35 ` YAMAMOTO Mitsuharu 2009-07-29 3:23 ` Sean O'Rourke 2 siblings, 2 replies; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-23 12:46 UTC (permalink / raw) To: Adrian Robert; +Cc: Emacs-Devel devel >>>>> On Thu, 23 Jul 2009 07:22:55 -0400, Adrian Robert <adrian.b.robert@gmail.com> said: > Hello Yamamoto-san, Did you mean to check the changes below into the > branch? I *think* these are pretty safe, but it seems a bit close > to release for such feature changes, even in the name of > standardization. My vote would be to do these on trunk only for > now. Chong Yidong already made a query to me via a private mail. Below is my reply: It's essential to make these changes in the release branch so users may not use the incompatible formats by accident and introduce compatibility problems when they are removed in some future version. Upcoming version is the first one for the NS port. Effectiveness is much lowered if such changes are deferred to the later versions. I've warned about such incompatibility issues that I think indispensable for the first official release version, but the author has not tried to address them (not just for this one!). Even if by any chance there's overlooked code as you say, it's only in the NS-specific part and relatively minor compared with total unstableness of the port itself. Removing incompatible features at this timing is much more important unless the port is marked experimental/hackers-only. Anyway, let's wait at least a few days before making any changes in this respect. > Also: > ns_get_color(): Shouldn't the description comment for ns_get_color() > be updated further? It looks like something was just chopped off, > leaving the rest making little sense. What is the bug or problem > this change fixes? > ns_color_to_lisp(): The function could be simplified now that you > have eliminated a special case. I know the changes are not optimal. But I wanted to keep them quite straightforward so as to avoid regression. > nsfont_draw(): Would setting the foreground instead of the > background color to the bitmap constitute a corrected > implementation? I don't know if I understand your intention correctly from the above sentence. But if you believe you understand stippling correctly this time, maybe you can make the change into the trunk. > ns-set-background-alpha: The implementation you just removed was > superior to that for (set-frame-parameter nil 'alpha ##): it does > not alter the alpha of the titlebar, scrollbars, modeline, or text. > This makes it usable, instead of a curiosity. It also provides > access via an interactive function. The correct fix would be to > improve the (set- frame-parameter) version, not remove this while no > alternative exists for users. I knew their difference. I removed it because it belongs to "NS-only implementation for features that are not inherently specific to NS." (http://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00594.html) I think it's really bad for the "first-class" port to have such features because they may be superseded in a platform-independent way by some future versions and that introduces unnecessary incompatibilities. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-23 12:46 ` YAMAMOTO Mitsuharu @ 2009-07-23 15:30 ` Stefan Monnier 2009-07-24 0:23 ` YAMAMOTO Mitsuharu 2009-07-24 14:34 ` Adrian Robert 1 sibling, 1 reply; 80+ messages in thread From: Stefan Monnier @ 2009-07-23 15:30 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: Adrian Robert, Emacs-Devel devel >> Hello Yamamoto-san, Did you mean to check the changes below into the >> branch? I *think* these are pretty safe, but it seems a bit close to >> release for such feature changes, even in the name of >> standardization. My vote would be to do these on trunk only for now. I'd agree. Stefan ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-23 15:30 ` Stefan Monnier @ 2009-07-24 0:23 ` YAMAMOTO Mitsuharu 2009-07-24 1:09 ` Stefan Monnier 0 siblings, 1 reply; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-24 0:23 UTC (permalink / raw) To: Stefan Monnier; +Cc: Adrian Robert, Emacs-Devel devel >>>>> On Thu, 23 Jul 2009 11:30:21 -0400, Stefan Monnier <monnier@iro.umontreal.ca> said: >>> Hello Yamamoto-san, Did you mean to check the changes below into >>> the branch? I *think* these are pretty safe, but it seems a bit >>> close to release for such feature changes, even in the name of >>> standardization. My vote would be to do these on trunk only for >>> now. > I'd agree. All these changes are straightforward removal of the codes for features that are not found in other platforms, and nevertheless not inherently NS-specific. I didn't add any code to provide new features at all. See also: http://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00630.html YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 0:23 ` YAMAMOTO Mitsuharu @ 2009-07-24 1:09 ` Stefan Monnier 2009-07-24 1:27 ` YAMAMOTO Mitsuharu 2009-07-29 0:22 ` YAMAMOTO Mitsuharu 0 siblings, 2 replies; 80+ messages in thread From: Stefan Monnier @ 2009-07-24 1:09 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: Adrian Robert, Emacs-Devel devel >>>> Hello Yamamoto-san, Did you mean to check the changes below into >>>> the branch? I *think* these are pretty safe, but it seems a bit >>>> close to release for such feature changes, even in the name of >>>> standardization. My vote would be to do these on trunk only for >>>> now. >> I'd agree. > All these changes are straightforward removal of the codes for > features that are not found in other platforms, and nevertheless not > inherently NS-specific. I didn't add any code to provide new features > at all. I know, but I think such changes so late in the pretest aren't a good idea. Only critical bugs deserve to be fixed now. Stefan ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 1:09 ` Stefan Monnier @ 2009-07-24 1:27 ` YAMAMOTO Mitsuharu 2009-07-24 1:37 ` Stefan Monnier 2009-07-29 0:22 ` YAMAMOTO Mitsuharu 1 sibling, 1 reply; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-24 1:27 UTC (permalink / raw) To: Stefan Monnier; +Cc: Adrian Robert, Emacs-Devel devel >>>>> On Thu, 23 Jul 2009 21:09:20 -0400, Stefan Monnier <monnier@iro.umontreal.ca> said: >>>>> Hello Yamamoto-san, Did you mean to check the changes below into >>>>> the branch? I *think* these are pretty safe, but it seems a bit >>>>> close to release for such feature changes, even in the name of >>>>> standardization. My vote would be to do these on trunk only for >>>>> now. >>> I'd agree. >> All these changes are straightforward removal of the codes for >> features that are not found in other platforms, and nevertheless >> not inherently NS-specific. I didn't add any code to provide new >> features at all. > I know, but I think such changes so late in the pretest aren't a > good idea. Only critical bugs deserve to be fixed now. I know. But there are several peculiarities for the NS port. * The upcoming version is the first official one for the NS port. "First" means there's no previous one to care about compatibility. If we defer these changes to the next version (say 23.2), then compatibility problems occur between 23.1 and 23.2. * I've warned these incompatibilities several times hoping that the author himself fixes them. I don't understand why he wants to break compatibility by keeping them. And I don't think there's justification to keep the features I removed. Of course, there are plenty of them to remove. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 1:27 ` YAMAMOTO Mitsuharu @ 2009-07-24 1:37 ` Stefan Monnier 2009-07-24 2:20 ` YAMAMOTO Mitsuharu 0 siblings, 1 reply; 80+ messages in thread From: Stefan Monnier @ 2009-07-24 1:37 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: Adrian Robert, Emacs-Devel devel > I know. But there are several peculiarities for the NS port. > * The upcoming version is the first official one for the NS port. > "First" means there's no previous one to care about compatibility. > If we defer these changes to the next version (say 23.2), then > compatibility problems occur between 23.1 and 23.2. > * I've warned these incompatibilities several times hoping that the > author himself fixes them. I don't understand why he wants to > break compatibility by keeping them. > And I don't think there's justification to keep the features I > removed. Of course, there are plenty of them to remove. I agree with all your points, but now is too late for 23.1. Stefan ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 1:37 ` Stefan Monnier @ 2009-07-24 2:20 ` YAMAMOTO Mitsuharu 2009-07-24 3:17 ` Stefan Monnier 0 siblings, 1 reply; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-24 2:20 UTC (permalink / raw) To: Stefan Monnier; +Cc: Adrian Robert, Emacs-Devel devel >>>>> On Thu, 23 Jul 2009 21:37:36 -0400, Stefan Monnier <monnier@iro.umontreal.ca> said: >> I know. But there are several peculiarities for the NS port. >> * The upcoming version is the first official one for the NS port. >> "First" means there's no previous one to care about compatibility. >> If we defer these changes to the next version (say 23.2), then >> compatibility problems occur between 23.1 and 23.2. >> * I've warned these incompatibilities several times hoping that the >> author himself fixes them. I don't understand why he wants to >> break compatibility by keeping them. >> And I don't think there's justification to keep the features I >> removed. Of course, there are plenty of them to remove. > I agree with all your points, but now is too late for 23.1. So, what's your idea to prevent 23.1 users from unintended use of the features that are incompatible with the other platforms and to be removed in 23.2? YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 2:20 ` YAMAMOTO Mitsuharu @ 2009-07-24 3:17 ` Stefan Monnier 2009-07-24 3:35 ` YAMAMOTO Mitsuharu 0 siblings, 1 reply; 80+ messages in thread From: Stefan Monnier @ 2009-07-24 3:17 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: Adrian Robert, Emacs-Devel devel > So, what's your idea to prevent 23.1 users from unintended use of the > features that are incompatible with the other platforms and to be > removed in 23.2? I don't think it's a problem that necessarily needs to be solved. Stefan ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 3:17 ` Stefan Monnier @ 2009-07-24 3:35 ` YAMAMOTO Mitsuharu 2009-07-24 3:44 ` Jason Rumney 2009-07-24 19:25 ` Stefan Monnier 0 siblings, 2 replies; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-24 3:35 UTC (permalink / raw) To: Stefan Monnier; +Cc: Adrian Robert, Emacs-Devel devel >>>>> On Thu, 23 Jul 2009 23:17:25 -0400, Stefan Monnier <monnier@iro.umontreal.ca> said: >> So, what's your idea to prevent 23.1 users from unintended use of >> the features that are incompatible with the other platforms and to >> be removed in 23.2? > I don't think it's a problem that necessarily needs to be solved. I don't agree in this respect. Reverting the changes in the branch will result in breaking compatibility TWICE: * On 23.1, between the NS port and the other platforms. * On the NS port, between 23.1 and 23.2. We should provide some care compensating for these breakages. Note that I'm trying to find a constructive solution as we agree in many other respects. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 3:35 ` YAMAMOTO Mitsuharu @ 2009-07-24 3:44 ` Jason Rumney 2009-07-24 4:12 ` YAMAMOTO Mitsuharu 2009-07-24 19:25 ` Stefan Monnier 1 sibling, 1 reply; 80+ messages in thread From: Jason Rumney @ 2009-07-24 3:44 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: Adrian Robert, Stefan Monnier, Emacs-Devel devel YAMAMOTO Mitsuharu wrote: > I don't agree in this respect. Reverting the changes in the branch > will result in breaking compatibility TWICE: > > * On 23.1, between the NS port and the other platforms. > * On the NS port, between 23.1 and 23.2. > > We should provide some care compensating for these breakages. > > Note that I'm trying to find a constructive solution as we agree in > many other respects. > One solution is for 23.2 to provide an ns-compat.el library containing wrapper functions mapping the incompatible features to their platform-independent replacements and emitting warnings to inform the user that they should change to use the platform-independent equivalents. Then in 23.3 or 24.1 we could remove this library from Emacs and require users to get it from elsewhere if they still want to use the incompatible features. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 3:44 ` Jason Rumney @ 2009-07-24 4:12 ` YAMAMOTO Mitsuharu 2009-07-25 2:13 ` YAMAMOTO Mitsuharu 0 siblings, 1 reply; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-24 4:12 UTC (permalink / raw) To: Jason Rumney; +Cc: Adrian Robert, Stefan Monnier, Emacs-Devel devel >>>>> On Fri, 24 Jul 2009 11:44:10 +0800, Jason Rumney <jasonr@gnu.org> said: > YAMAMOTO Mitsuharu wrote: >> I don't agree in this respect. Reverting the changes in the branch >> will result in breaking compatibility TWICE: >> >> * On 23.1, between the NS port and the other platforms. >> * On the NS port, between 23.1 and 23.2. >> >> We should provide some care compensating for these breakages. >> >> Note that I'm trying to find a constructive solution as we agree in >> many other respects. >> > One solution is for 23.2 to provide an ns-compat.el library containing > wrapper functions mapping the incompatible features > to their platform-independent replacements and emitting warnings to > inform the user that they should change to use the platform-independent > equivalents. Then in 23.3 or 24.1 we could remove this library from > Emacs and require users to get it from elsewhere if they still want to > use the incompatible features. Perhaps this can be applied to some of the features I removed. Let's take a more closer look. There might be a possibility of different solutions for different changes. What I removed was: 1. Code for stippling. This is wrongly implemented as tiling, which has been controversial whether or not to be included in the other platforms, IIUC. 2. Code for interpreting incompatible color formats: RGBrrggbb, ARGBaarrggbb, HSVhhssvv, AHSVaahhssvv, and CMYKccmmyykk. Besides the format itself, support for the alpha-component in color is not found in the other platforms but not inherently NS-specific. 3. Lisp primitive ns-set-alpha (nsfns.m), which sets the alpha component of the given color to the specified value. As in the argument for the alpha-component above, this is not inherently NS-specific. 4. Lisp function ns-set-background-alpha (ns-win.el), which sets alpha-component of frame background color. It is different from the frame parameter `alpha' as Adrian explained. Again, this is not inherently NS-specific. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 4:12 ` YAMAMOTO Mitsuharu @ 2009-07-25 2:13 ` YAMAMOTO Mitsuharu 2009-07-26 2:22 ` Richard Stallman 0 siblings, 1 reply; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-25 2:13 UTC (permalink / raw) To: rms; +Cc: Adrian Robert, Emacs-Devel devel, Stefan Monnier, Jason Rumney Richard, is it OK with you to keep the following features only for a proprietary platform (Cocoa) in the Emacs 23.1 release? Note that the GNUstep port is now completely unusable. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp >>>>> On Fri, 24 Jul 2009 13:12:45 +0900, YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> said: > What I removed was: > 1. Code for stippling. This is wrongly implemented as tiling, which > has been controversial whether or not to be included in the other > platforms, IIUC. > 2. Code for interpreting incompatible color formats: RGBrrggbb, > ARGBaarrggbb, HSVhhssvv, AHSVaahhssvv, and CMYKccmmyykk. Besides > the format itself, support for the alpha-component in color is > not found in the other platforms but not inherently NS-specific. > 3. Lisp primitive ns-set-alpha (nsfns.m), which sets the alpha > component of the given color to the specified value. As in the > argument for the alpha-component above, this is not inherently > NS-specific. > 4. Lisp function ns-set-background-alpha (ns-win.el), which sets > alpha-component of frame background color. It is different from > the frame parameter `alpha' as Adrian explained. Again, this is > not inherently NS-specific. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-25 2:13 ` YAMAMOTO Mitsuharu @ 2009-07-26 2:22 ` Richard Stallman 2009-07-26 2:35 ` YAMAMOTO Mitsuharu 0 siblings, 1 reply; 80+ messages in thread From: Richard Stallman @ 2009-07-26 2:22 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: adrian.b.robert, emacs-devel, monnier, jasonr Richard, is it OK with you to keep the following features only for a proprietary platform (Cocoa) in the Emacs 23.1 release? > 1. Code for stippling. This is wrongly implemented as tiling, which > has been controversial whether or not to be included in the other > platforms, IIUC. An incorrect implementation of stippling is somewhat of a bug, but it might be better than no implementation of stippling. Anyway, I don't see a reason to object that this is only on MacOS. > 2. Code for interpreting incompatible color formats: RGBrrggbb, > ARGBaarrggbb, HSVhhssvv, AHSVaahhssvv, and CMYKccmmyykk. Besides > the format itself, support for the alpha-component in color is > not found in the other platforms but not inherently NS-specific. These are minor things, nothing to object to. > 3. Lisp primitive ns-set-alpha (nsfns.m), which sets the alpha > component of the given color to the specified value. As in the > argument for the alpha-component above, this is not inherently > NS-specific. > 4. Lisp function ns-set-background-alpha (ns-win.el), which sets > alpha-component of frame background color. It is different from > the frame parameter `alpha' as Adrian explained. Again, this is > not inherently NS-specific. These too are rather minor, nothing to object to. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-26 2:22 ` Richard Stallman @ 2009-07-26 2:35 ` YAMAMOTO Mitsuharu 2009-07-26 3:31 ` Miles Bader 2009-07-27 2:44 ` Richard Stallman 0 siblings, 2 replies; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-26 2:35 UTC (permalink / raw) To: rms; +Cc: adrian.b.robert, emacs-devel, monnier, jasonr >>>>> On Sat, 25 Jul 2009 22:22:24 -0400, Richard Stallman <rms@gnu.org> said: > Richard, is it OK with you to keep the following features only > for a proprietary platform (Cocoa) in the Emacs 23.1 release? >> 1. Code for stippling. This is wrongly implemented as tiling, >> which has been controversial whether or not to be included in the >> other platforms, IIUC. > An incorrect implementation of stippling is somewhat of a bug, but > it might be better than no implementation of stippling. Anyway, I > don't see a reason to object that this is only on MacOS. >> 2. Code for interpreting incompatible color formats: RGBrrggbb, >> ARGBaarrggbb, HSVhhssvv, AHSVaahhssvv, and CMYKccmmyykk. Besides >> the format itself, support for the alpha-component in color is not >> found in the other platforms but not inherently NS-specific. > These are minor things, nothing to object to. They sound like a really important policy change: allowing a proprietary platform to be the first one to have features that are not specific to the platform. Are you sure? YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-26 2:35 ` YAMAMOTO Mitsuharu @ 2009-07-26 3:31 ` Miles Bader 2009-07-26 3:45 ` YAMAMOTO Mitsuharu 2009-07-27 2:44 ` Richard Stallman 1 sibling, 1 reply; 80+ messages in thread From: Miles Bader @ 2009-07-26 3:31 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: adrian.b.robert, jasonr, rms, monnier, emacs-devel YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes: >> An incorrect implementation of stippling is somewhat of a bug, but >> it might be better than no implementation of stippling. Anyway, I >> don't see a reason to object that this is only on MacOS. Note that stippling has never really worked correctly even on X. [I fixed some of the bugs on my tiling branch, as the issues are similar to those of image backgrounds.] -Miles -- Hers, pron. His. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-26 3:31 ` Miles Bader @ 2009-07-26 3:45 ` YAMAMOTO Mitsuharu 0 siblings, 0 replies; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-26 3:45 UTC (permalink / raw) To: Miles Bader; +Cc: adrian.b.robert, jasonr, rms, monnier, emacs-devel >>>>> On Sun, 26 Jul 2009 12:31:03 +0900, Miles Bader <miles@gnu.org> said: >>> An incorrect implementation of stippling is somewhat of a bug, but >>> it might be better than no implementation of stippling. Anyway, I >>> don't see a reason to object that this is only on MacOS. > Note that stippling has never really worked correctly even on X. > [I fixed some of the bugs on my tiling branch, as the issues are > similar to those of image backgrounds.] Yes, that's one of the reasons I didn't try to implement stippling on the Carbon port: I expected that inclusion of the tiling patch would make the whole situation much nicer and also make it possible to port both stippling and tiling in a cleaner way. FWIW, the W32 port doesn't have implementation of stippling either. Keeping a wrong implementation of stippling in the NS port doesn't make any sense. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-26 2:35 ` YAMAMOTO Mitsuharu 2009-07-26 3:31 ` Miles Bader @ 2009-07-27 2:44 ` Richard Stallman 2009-07-27 3:20 ` YAMAMOTO Mitsuharu 1 sibling, 1 reply; 80+ messages in thread From: Richard Stallman @ 2009-07-27 2:44 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: adrian.b.robert, emacs-devel, monnier, jasonr They sound like a really important policy change: allowing a proprietary platform to be the first one to have features that are not specific to the platform. Are you sure? I don't think that description applies to these things. I would call them adaptations of existing features to fit the platform. Specifying colors with a slightly different format is not particularly useful except for compatibility with MacOS. If we ever find that discourages someone from moving away from the Macintosh, we could make Emacs accept those formats on other platforms -- it won'tbe hard -- but I doubt that will happen. As for tiling instead of stippling, perhaps I have misunderstood. Do you think some users will see that as a feature? ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-27 2:44 ` Richard Stallman @ 2009-07-27 3:20 ` YAMAMOTO Mitsuharu 2009-07-27 17:41 ` Richard Stallman 0 siblings, 1 reply; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-27 3:20 UTC (permalink / raw) To: rms; +Cc: adrian.b.robert, emacs-devel, monnier, jasonr >>>>> On Sun, 26 Jul 2009 22:44:38 -0400, Richard Stallman <rms@gnu.org> said: > They sound like a really important policy change: allowing a > proprietary platform to be the first one to have features that > are not specific to the platform. Are you sure? > I don't think that description applies to these things. I would > call them adaptations of existing features to fit the platform. I don't think so. > Specifying colors with a slightly different format is not > particularly useful except for compatibility with MacOS. If we ever > find that discourages someone from moving away from the Macintosh, > we could make Emacs accept those formats on other platforms -- it > won'tbe hard -- but I doubt that will happen. These NS-port-specific formats are not what's defined by Apple, IIUC. They are arbitrarily defined by the author. Different format is actually a problem of compatibility, but not so important for the GNU policy. What I'm concerning about with respect to the GNU policy is the "alpha-component" (or maybe "alpha-channel" is more familiar) support, which was added only for Cocoa. Alpha-component/alpha-channel controls translucency of colors by specifying how opaque it is. This feature is not specific to NS or Cocoa: X11 can do this with cairo and/or some extensions, but it is not yet implemented for Emacs on free platforms at all. > As for tiling instead of stippling, perhaps I have misunderstood. > Do you think some users will see that as a feature? What Miles pointed out as "never really worked correctly" does not mean X11 does tiling instead of stippling. X11 actually does stippling, but you will soon see some inconsistent result if you apply pictorial stippling to large area and do some editing: (set-face-stipple 'default "eschernot") On the other hand, tiling support for X11 has been controversial about its inclusion, and it has not been added to the main line whereas there has been an implementation by Miles Bader for a long time. I don't understand why the NS port can add the tiling support under the name of "stippling". (Of course, I believe that mistake happened unintentionally.) YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-27 3:20 ` YAMAMOTO Mitsuharu @ 2009-07-27 17:41 ` Richard Stallman 2009-07-27 18:41 ` Clifford Wulfman ` (2 more replies) 0 siblings, 3 replies; 80+ messages in thread From: Richard Stallman @ 2009-07-27 17:41 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: adrian.b.robert, emacs-devel, monnier, jasonr What I'm concerning about with respect to the GNU policy is the "alpha-component" (or maybe "alpha-channel" is more familiar) support, which was added only for Cocoa. Alpha-component/alpha-channel controls translucency of colors by specifying how opaque it is. Is this a feature users might actually want to use? I don't see what it is good for. Can someone explain what a user might want to do with this? ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-27 17:41 ` Richard Stallman @ 2009-07-27 18:41 ` Clifford Wulfman 2009-07-28 4:37 ` Richard Stallman 2009-07-27 20:14 ` David De La Harpe Golden 2009-07-28 0:53 ` YAMAMOTO Mitsuharu 2 siblings, 1 reply; 80+ messages in thread From: Clifford Wulfman @ 2009-07-27 18:41 UTC (permalink / raw) To: emacs-devel Richard Stallman <rms <at> gnu.org> writes: > > What I'm concerning about with respect to the GNU policy is the > "alpha-component" (or maybe "alpha-channel" is more familiar) support, > which was added only for Cocoa. Alpha-component/alpha-channel > controls translucency of colors by specifying how opaque it is. > > Is this a feature users might actually want to use? > I don't see what it is good for. > Can someone explain what a user might want to do with this? > > I use this feature all the time on my laptop to enable me to see what's underneath my editing window (a manual page, some data I'm transcribing, etc.) ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-27 18:41 ` Clifford Wulfman @ 2009-07-28 4:37 ` Richard Stallman 2009-07-28 13:18 ` Clifford Wulfman 0 siblings, 1 reply; 80+ messages in thread From: Richard Stallman @ 2009-07-28 4:37 UTC (permalink / raw) To: Clifford Wulfman; +Cc: emacs-devel I use this feature all the time on my laptop to enable me to see what's underneath my editing window (a manual page, some data I'm transcribing, etc.) How do you use it? Temporarily for a moment? What command do you give, when you want to use it? Is this feature unique to Emacs on MacOS, or do other apps have it too? ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-28 4:37 ` Richard Stallman @ 2009-07-28 13:18 ` Clifford Wulfman 2009-07-28 17:14 ` Richard Stallman 0 siblings, 1 reply; 80+ messages in thread From: Clifford Wulfman @ 2009-07-28 13:18 UTC (permalink / raw) To: rms; +Cc: emacs-devel On Jul 28, 2009, at 12:37 AM, Richard Stallman wrote: > I use this feature all the time on my laptop to enable me to see > what's > underneath my editing window (a manual page, some data I'm > transcribing, etc.) > > How do you use it? Temporarily for a moment? > What command do you give, when you want to use it? > > Is this feature unique to Emacs on MacOS, or do other apps have it > too? I usually set it to .9 just for effect and leave it there; when I'm working on something that requires more transparency (e.g., transcribing something, refactoring code, describing something that's displayed in another window, etc.) I'll increase it. To set it, I use ns-set-background-alpha from the minibuffer. I don't know many apps on the Mac that have this feature; the Terminal.app does, and I use it in a similar fashion. Dr. Clifford E. Wulfman Coordinator of Library Digital Initiatives Princeton University Library cwulfman@Princeton.EDU ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-28 13:18 ` Clifford Wulfman @ 2009-07-28 17:14 ` Richard Stallman 2009-07-28 18:39 ` Alfred M. Szmidt 2009-07-28 22:05 ` James Cloos 0 siblings, 2 replies; 80+ messages in thread From: Richard Stallman @ 2009-07-28 17:14 UTC (permalink / raw) To: Clifford Wulfman; +Cc: emacs-devel Thanks for the info. Is it hard to implement background transparency on X? However, Applescript is a potentially much more important issue. I have not received an answer to my questions about Applescript, so I cannot start to evaluate the issue. Please don't make a release tomorrow, or until this issue gets addressed. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-28 17:14 ` Richard Stallman @ 2009-07-28 18:39 ` Alfred M. Szmidt 2009-07-28 20:31 ` Ian Eure 2009-07-28 22:05 ` James Cloos 1 sibling, 1 reply; 80+ messages in thread From: Alfred M. Szmidt @ 2009-07-28 18:39 UTC (permalink / raw) To: rms; +Cc: cwulfman, emacs-devel However, Applescript is a potentially much more important issue. I have not received an answer to my questions about Applescript, so I cannot start to evaluate the issue. I did some digging, it seems to be a non-free scripting engine for OS X that makes it possible for users to talk to other programs, and create macros for automatic things. I could not find any free version of it for GNU, nor any support for it in GNUStep; only OSX uses it. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-28 18:39 ` Alfred M. Szmidt @ 2009-07-28 20:31 ` Ian Eure 2009-08-01 3:21 ` Richard Stallman 0 siblings, 1 reply; 80+ messages in thread From: Ian Eure @ 2009-07-28 20:31 UTC (permalink / raw) To: ams; +Cc: emacs-devel, rms, cwulfman On Jul 28, 2009, at 11:39 AM, Alfred M. Szmidt wrote: > However, Applescript is a potentially much more important issue. I > have not received an answer to my questions about Applescript, so I > cannot start to evaluate the issue. > > I did some digging, it seems to be a non-free scripting engine for OS > X that makes it possible for users to talk to other programs, and > create macros for automatic things. I could not find any free version > of it for GNU, nor any support for it in GNUStep; only OSX uses it. > More specifically, it's a combination of the Open Scripting Architecture and the AppleScript programming language. OSA is a mechanism which allows applications to expose functionality to other programs in order to automate tasks. Access to this functionality is provided by way of OSA Scripting Components, which is a way to plug new programming languages into OSA. There are components available for free languages, such as Ruby, JavaScript, and Python. AppleScript is a natural-language (i.e. English-like) programming language which is the default language to use with OSA scripting. The AppleScript support in the Cocoa port allows one to execute AppleScripts from inside Emacs to control Mac OS or applications running on it. - Ian ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-28 20:31 ` Ian Eure @ 2009-08-01 3:21 ` Richard Stallman 2009-08-01 4:10 ` Ian Eure 0 siblings, 1 reply; 80+ messages in thread From: Richard Stallman @ 2009-08-01 3:21 UTC (permalink / raw) To: Ian Eure; +Cc: ams, cwulfman, emacs-devel More specifically, it's a combination of the Open Scripting Architecture and the AppleScript programming language. OSA is a mechanism which allows applications to expose functionality to other programs in order to automate tasks. Access to this functionality is provided by way of OSA Scripting Components, which is a way to plug new programming languages into OSA. There are components available for free languages, such as Ruby, JavaScript, and Python. If it is normal for apps on MacOS to expose their functionality for access thru OSA, I think it is proper for Emacs to follow. Is this the functionality that some have said is comparable to Dbus? The AppleScript support in the Cocoa port allows one to execute AppleScripts from inside Emacs to control Mac OS or applications running on it. Surely this is something that most apps don't have. So we should delete this from Emacs. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-08-01 3:21 ` Richard Stallman @ 2009-08-01 4:10 ` Ian Eure 2009-08-01 6:28 ` Stephen J. Turnbull 2009-08-02 4:44 ` Richard Stallman 0 siblings, 2 replies; 80+ messages in thread From: Ian Eure @ 2009-08-01 4:10 UTC (permalink / raw) To: rms; +Cc: ams, cwulfman, emacs-devel On Jul 31, 2009, at 8:21 PM, Richard Stallman wrote: > More specifically, it's a combination of the Open Scripting > Architecture and the AppleScript programming language. OSA is a > mechanism which allows applications to expose functionality to > other > programs in order to automate tasks. > > Access to this functionality is provided by way of OSA Scripting > Components, which is a way to plug new programming languages into > OSA. > There are components available for free languages, such as Ruby, > JavaScript, and Python. > > If it is normal for apps on MacOS to expose their functionality for > access thru OSA, I think it is proper for Emacs to follow. > It would be very nice, though I don't know what's involved to make it work. I'd prefer to see the existing problems with the NS port fixed. > Is this the functionality that some have said is comparable to Dbus? > I'm not familiar with D-Bus, so I can't say. > The AppleScript support in the Cocoa port allows one to execute > AppleScripts from inside Emacs to control Mac OS or applications > running on it. > > Surely this is something that most apps don't have. So we should > delete this from Emacs. > Most apps don't do what Emacs does. The programs I'm aware of which have a similar capability (Script Editor and Xcode) are tools for developing and testing software, as Emacs is. So it's not inconsistent to maintain it. I think it would be unfortunate if it were removed. As Emacs can be used to develop AppleScript (or other OSA supported languages) this feature would be needed to run them from within Emacs to test the code. Without it, you must rely on other tools outside of Emacs for this functionality. - Ian ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-08-01 4:10 ` Ian Eure @ 2009-08-01 6:28 ` Stephen J. Turnbull 2009-08-02 4:44 ` Richard Stallman 1 sibling, 0 replies; 80+ messages in thread From: Stephen J. Turnbull @ 2009-08-01 6:28 UTC (permalink / raw) To: Ian Eure; +Cc: ams, emacs-devel, rms, cwulfman Ian Eure writes: > I think it would be unfortunate if it were removed. As Emacs can be > used to develop AppleScript (or other OSA supported languages) this > feature would be needed to run them from within Emacs to test the > code. Without it, you must rely on other tools outside of Emacs for > this functionality. Yeah, but as Harald pointed out, you only have to go as far as osascript (part of Mac OS, or maybe Xcode) and .emacs: ;; Copyright 2009 Stephen J. Turnbull ;; this code and inlined documentation is licensed to you under the ;; GNU GPL, v2 or later at your option ;; tested in XEmacs 21.5.29, YMMV (see the NO WARRANTY clause of the license) (defun osascript (script &rest args) "Run string SCRIPT as an OSA script \(eg, Applescript), with arguments ARGS. Each element of the list ARGS is added to the invocation of osascript(1) formatted with \" %s\". BUG: in interactive use, ARGS must be provided as a Lisp list." ;; A custom read-list could be provided to allow the following style ;; of interface. Example script from osascript(1). ;; Prompts abbreviated, user input only: ;; M-x osascript RET ;; SCRIPT: on run argv C-q C-j ;; return "hello, " & item 1 of argv & "." C-q C-j ;; end run C-q C-j RET ;; ARG: world RET ;; ARG: moon RET ;; ARG: RET ;; and the empty arg terminates the list and runs the command. (interactive "sEnter the text of the script (use C-q C-j for newlines): xScript arguments (as a Lisp list): ") ;; kludge to deal with `interactive's lack of awareness of &rest (when (interactive-p) (setq args (car args))) (shell-command (concat (format "osascript -e '%s'" script) (mapconcat (lambda (x) (format " %s" x)) args "")))) ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-08-01 4:10 ` Ian Eure 2009-08-01 6:28 ` Stephen J. Turnbull @ 2009-08-02 4:44 ` Richard Stallman 1 sibling, 0 replies; 80+ messages in thread From: Richard Stallman @ 2009-08-02 4:44 UTC (permalink / raw) To: Ian Eure; +Cc: ams, cwulfman, emacs-devel > If it is normal for apps on MacOS to expose their functionality for > access thru OSA, I think it is proper for Emacs to follow. > It would be very nice, though I don't know what's involved to make it work. I'd prefer to see the existing problems with the NS port fixed. We may be having a misunderstanding. I thought that this is part of what is already implemented, and what I'm saying is that there is no need to delete it. As for the Applescript feature, what you are saying is that you find it useful. I am sure it is, but the point is that that is not the only criterion. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-28 17:14 ` Richard Stallman 2009-07-28 18:39 ` Alfred M. Szmidt @ 2009-07-28 22:05 ` James Cloos 2009-07-29 20:13 ` Richard Stallman 1 sibling, 1 reply; 80+ messages in thread From: James Cloos @ 2009-07-28 22:05 UTC (permalink / raw) To: emacs-devel; +Cc: rms, Clifford Wulfman >>>>> "Richard" == Richard Stallman <rms@gnu.org> writes: Richard> Is it hard to implement background transparency on X? Not too hard. A number of terminal apps do it. The X server needs to support the XCOMPOSITE extension, a compositing manager must be running (akin to a window manager, but it is responsible for blending the clients' windows together on top of the root window based on how they are stacked and on their per-pixel alpha values) and the client needs to use an x11 visual with an alpha channel. Normally the last is a 32 bit 8/8/8/8 ARGB visual (8 bits each of Alpha, Red, Green and Blue), but colour spaces like 2/10/10/10 ARGB are possible. Anyone running the latest versions of the popular gnu-on-linux dists on recent hardware is probably using a suitable setup for transparent windows. To add transparent support to a client, you just need to use a suitable visual and include the alpha bits in each colour. I know that rxvt-unicode (http://software.schmorp.de/) gnome-terminal and KDE's terminal all have transparency support and are all Freely licensed. Any of them should provide a more precise recipe for supporting translucent windows on X11. -JimC -- James Cloos <cloos@jhcloos.com> OpenPGP: 1024D/ED7DAEA6 ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-28 22:05 ` James Cloos @ 2009-07-29 20:13 ` Richard Stallman 2009-07-29 22:05 ` YAMAMOTO Mitsuharu 2009-07-30 7:53 ` YAMAMOTO Mitsuharu 0 siblings, 2 replies; 80+ messages in thread From: Richard Stallman @ 2009-07-29 20:13 UTC (permalink / raw) To: James Cloos; +Cc: cwulfman, emacs-devel Thanks for the explanation. We should remove the background transparency feature from 23.1 and implement it for multiple platforms in a future release. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 20:13 ` Richard Stallman @ 2009-07-29 22:05 ` YAMAMOTO Mitsuharu 2009-07-30 7:53 ` YAMAMOTO Mitsuharu 1 sibling, 0 replies; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-29 22:05 UTC (permalink / raw) To: rms; +Cc: cwulfman, James Cloos, emacs-devel >>>>> On Wed, 29 Jul 2009 16:13:58 -0400, Richard Stallman <rms@gnu.org> said: > Thanks for the explanation. We should remove the background > transparency feature from 23.1 and implement it for multiple > platforms in a future release. To explain the current status of the EMACS_23_1_RC branch, some convenience Lisp functions for background transparency are removed. But the essential part for alpha-component support that implements background transparency in the NS port was once removed by me but then reverted by Yidong, and that feature is still accessible from the user using some incompatible color format like: (set-face-background 'default "ARGBccffffff") YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 20:13 ` Richard Stallman 2009-07-29 22:05 ` YAMAMOTO Mitsuharu @ 2009-07-30 7:53 ` YAMAMOTO Mitsuharu 2009-07-30 14:01 ` Chong Yidong 1 sibling, 1 reply; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-30 7:53 UTC (permalink / raw) To: Chong Yidong, Stefan Monnier; +Cc: Richard Stallman, emacs-devel >>>>> On Wed, 29 Jul 2009 16:13:58 -0400, Richard Stallman <rms@gnu.org> said: > We should remove the background transparency feature from 23.1 and > implement it for multiple platforms in a future release. Maintainers, shouldn't you explain why you released Emacs 23.1 without removing the Cocoa-only background transparent feature? I've explained reasons why it should be removed in so many aspects. But I've never heard of logical reasons from you. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-30 7:53 ` YAMAMOTO Mitsuharu @ 2009-07-30 14:01 ` Chong Yidong 2009-07-31 1:56 ` YAMAMOTO Mitsuharu 0 siblings, 1 reply; 80+ messages in thread From: Chong Yidong @ 2009-07-30 14:01 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: emacs-devel, Stefan Monnier, Richard Stallman YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes: > Maintainers, shouldn't you explain why you released Emacs 23.1 without > removing the Cocoa-only background transparent feature? > > I've explained reasons why it should be removed in so many aspects. > But I've never heard of logical reasons from you. As I've explained before, it was too late to make drastic internals changes. I agreed to the removal of the user commands for setting the alpha channel---a "removal", I might add, that actually consisted of not reverting your unannounced, unagreed-upon changes to a release branch in heavy freeze---but your other changes to the ns*.m internals were too risky for the marginal "benefit" provided (that "benefit" being to make it slightly harder for users to set the alpha in an incompatible way). Now, I'm confident that someone of your intelligence will be able to find some persnickety arguments against this decision. But I've little inclination to engage in more such debate, so you'll unfortunately have to live with it. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-30 14:01 ` Chong Yidong @ 2009-07-31 1:56 ` YAMAMOTO Mitsuharu 0 siblings, 0 replies; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-31 1:56 UTC (permalink / raw) To: Chong Yidong; +Cc: emacs-devel, Stefan Monnier, Richard Stallman >>>>> On Thu, 30 Jul 2009 10:01:08 -0400, Chong Yidong <cyd@stupidchicken.com> said: > YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes: >> Maintainers, shouldn't you explain why you released Emacs 23.1 >> without removing the Cocoa-only background transparent feature? >> >> I've explained reasons why it should be removed in so many aspects. >> But I've never heard of logical reasons from you. > As I've explained before, it was too late to make drastic internals > changes. I agreed to the removal of the user commands for setting > the alpha channel---a "removal", I might add, that actually > consisted of not reverting your unannounced, unagreed-upon changes > to a release branch in heavy freeze---but your other changes to the > ns*.m internals were too risky for the marginal "benefit" provided > (that "benefit" being to make it slightly harder for users to set > the alpha in an incompatible way). What do you mean by "slightly harder"? Does it mean the users can specify alpha-component and use background transparent feature in some harder way even if you don't revert the part of my change? It was intended for users to make it completely impossible to specify alpha-component. Also, the above reason ("too late") does not explain why you reverted the change also in the trunk. If you are against some of the reasons I've given, please explain. > Now, I'm confident that someone of your intelligence will be able to > find some persnickety arguments against this decision. But I've > little inclination to engage in more such debate, so you'll > unfortunately have to live with it. I don't think the argument on the GNU policy infringement "persnickety". Moreover, this should have been addressed before the release whether or not I've made some change about it. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-27 17:41 ` Richard Stallman 2009-07-27 18:41 ` Clifford Wulfman @ 2009-07-27 20:14 ` David De La Harpe Golden 2009-07-28 6:10 ` YAMAMOTO Mitsuharu [not found] ` <EFBC3E4E-8739-4B16-8797-D9CA8BC290CD@gmail.com> 2009-07-28 0:53 ` YAMAMOTO Mitsuharu 2 siblings, 2 replies; 80+ messages in thread From: David De La Harpe Golden @ 2009-07-27 20:14 UTC (permalink / raw) To: rms; +Cc: adrian.b.robert, jasonr, monnier, YAMAMOTO Mitsuharu, emacs-devel Richard Stallman wrote: > What I'm concerning about with respect to the GNU policy is the > "alpha-component" (or maybe "alpha-channel" is more familiar) support, > which was added only for Cocoa. Alpha-component/alpha-channel > controls translucency of colors by specifying how opaque it is. > > Is this a feature users might actually want to use? > I don't see what it is good for. > Can someone explain what a user might want to do with this? > > > Well, my understanding (possibly outdated) is the NS port only uses its alpha value in very limited fashion. It just lets you sort of see what's underneath the emacs window. It's AFAIK not doing the in-emacs alpha-blending I proposed (without working implementation...) a while back to allow translucent overlays - e.g. a translucent region letting highlighted text "underneath" show through /with highlighting still visible/. That would be much more useful. But if I was doing that in-emacs alphablending (not saying I will successfully, just if...), I personally would not use the peculiar NS chosen syntax for colors with alpha values. I'd probably prefer to have separate float face properties, foreground-alpha and background-alpha, to allow me to continue to use named X11 colors i.e. background: "midnightblue" background-alpha: 0.5 (yes, I suppose it would be possible to support both external and in-color-name alphas, messily. But if I was doing that, I'm still not keen on the NS chosen syntax. Note how css and x11 both nowadays user separated values e.g. rgb(r, g, b) or rgb:r/g/b ) OTOH, color names are currently parsed in a platform dependent manner anyway - i.e. you can't expect a color specification that works on X11 to work on w32. X11 emacs actually does a call out to XParseColor() on X11, which means emacs might get end-user defined named colors for all it knows*, so I'm not sure there's any particular harm in letting the NS port have its own interpretation of the color name strings. * e.g. Place following in ~/.xcms.txt XCMS_COLORDB_START 0.1 Blobby rgb:7fe2/ffe1/331a XCMS_COLORDB_END (note that the syntax demands a _tab_ between color name and rgb: spec) then do export XCMSDB=~/.xcms.txt Now run x11 emacs, and note how if you enter Blobby (or indeed some rgb:r/g/b value) in emacs for a color, x11 emacs recognises it. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-27 20:14 ` David De La Harpe Golden @ 2009-07-28 6:10 ` YAMAMOTO Mitsuharu [not found] ` <EFBC3E4E-8739-4B16-8797-D9CA8BC290CD@gmail.com> 1 sibling, 0 replies; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-28 6:10 UTC (permalink / raw) To: David De La Harpe Golden Cc: adrian.b.robert, jasonr, rms, monnier, emacs-devel >>>>> On Mon, 27 Jul 2009 21:14:06 +0100, David De La Harpe Golden <david@harpegolden.net> said: > But if I was doing that in-emacs alphablending (not saying I will > successfully, just if...), I personally would not use the peculiar > NS chosen syntax for colors with alpha values. I'd probably prefer > to have separate float face properties, foreground-alpha and > background-alpha, to allow me to continue to use named X11 colors > i.e. background: "midnightblue" background-alpha: 0.5 > (yes, I suppose it would be possible to support both external and > in-color-name alphas, messily. But if I was doing that, I'm still > not keen on the NS chosen syntax. Note how css and x11 both nowadays > user separated values e.g. rgb(r, g, b) or rgb:r/g/b ) IIUC, neither Carbon nor Cocoa defines the standard textual representation formats of colors. So I think Emacs on such platforms should adopt some other standards (e.g., X11 or maybe CSS) like in the W32 or Carbon port rather than inventing new own formats as in the NS port. Own formats does not enhance interchangeability in any ways. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
[parent not found: <EFBC3E4E-8739-4B16-8797-D9CA8BC290CD@gmail.com>]
* Re: Changes 2009-07-15/16 in branch? [not found] ` <EFBC3E4E-8739-4B16-8797-D9CA8BC290CD@gmail.com> @ 2009-07-28 20:33 ` David De La Harpe Golden 0 siblings, 0 replies; 80+ messages in thread From: David De La Harpe Golden @ 2009-07-28 20:33 UTC (permalink / raw) To: Adrian Robert; +Cc: Emacs-Devel devel Adrian Robert wrote: > This sort of thing [in-emacs alphablending] would likely layer > over alpha support at the lower level such as that provided by the NS port. Not necessarily at all, all realised colors could be without alpha, the idea was raised in the context of 256-color terminal users in fact where alpha computations would be internal to emacs. (otoh might as well pass it through if it's also there at the OS level, but that would just be a "final alpha" as an output of the blending process). > Does emacs support rgb(r, g, b) or rgb:r/g/b already? > The latter on X11, but N.B. it's really X11 itself supporting it, not emacs - i.e. emacs directly asks X11 for colors via the libX11 XParseColor() API [1] (internally emulated on most other platforms and text terminals IIRC) X11 supports a range of device-dependent and (rather obscure for most people) device-independent color specification strings, as well as previously mentioned well-known and user-defined names for those colors. (None include alpha since alpha isn't historically part of the X color) Given your interest is alpha and hsv (hsl is neater...), maybe imitating the CSS2/3 syntax which includes alpha might be better - and is more likely to avoid clashing if X.org extend XParseColor() one fine day. CSS syntax could also serve to indicate an sRGB colorspace interpretation of rgb triples. rgb() rgba() hsl() hsla() [1] http://linux.die.net/man/3/xparsecolor e.g. rgb:<red>/<green>/<blue> rgbi:<red>/<green>/<blue> CIEXYZ:<X>/<Y>/<Z> CIEuvY:<u>/<v>/<Y> CIExyY:<x>/<y>/<Y> CIELab:<L>/<a>/<b> CIELuv:<L>/<u>/<v> TekHVC:<H>/<V>/<C> ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-27 17:41 ` Richard Stallman 2009-07-27 18:41 ` Clifford Wulfman 2009-07-27 20:14 ` David De La Harpe Golden @ 2009-07-28 0:53 ` YAMAMOTO Mitsuharu 2009-07-28 17:14 ` Richard Stallman 2 siblings, 1 reply; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-28 0:53 UTC (permalink / raw) To: rms; +Cc: adrian.b.robert, emacs-devel, monnier, jasonr >>>>> On Mon, 27 Jul 2009 13:41:04 -0400, Richard Stallman <rms@gnu.org> said: > What I'm concerning about with respect to the GNU policy is the > "alpha-component" (or maybe "alpha-channel" is more familiar) > support, which was added only for Cocoa. > Alpha-component/alpha-channel controls translucency of colors by > specifying how opaque it is. > Is this a feature users might actually want to use? I don't see > what it is good for. Can someone explain what a user might want to > do with this? Emacs 23 already has a frame opacity control feature whose design/implementation is different from what I mentioned above. I guess this was added because they considered that some users would want this kind of feature: Quote etc/NEWS: *** Emacs can now set the frame opacity. The opacity of a frame can be controlled by setting the `alpha' frame parameter. This only takes effect on a compositing window manager for the X Window System, such as Compiz, Beryl and Compiz Fusion, on Mac OS X, or on Windows 2000 and later versions of Windows. The alpha parameter should be an integer between 0 (transparent) and 100 (opaque), or a float number between 0.0 and 1.0. It can also be a cons cell (ACTIVE . INACTIVE), where ACTIVE is the opacity of an active frame and INACTIVE is the opacity of non-active frames. The variable `frame-alpha-lower-limit' defines a lower bound for the opacity; the default is 20. Some find its effect unsatisfactory because it makes both foreground and background colors translucent. Adrian says the alpha-component support in the NS port is superior and actually the latter can make background translucent while keeping foreground opaque. Actually the implementation of alpha-component support in the NS port has some annoying glitch as I pointed out in http://lists.gnu.org/archive/html/emacs-devel/2009-07/msg01340.html . I think it's ridiculous to add such a feature to the release version * without broader discussion about the specification for such a general (i.e., non platform-specific) feature. * with a premature implementation only for a non-free platform. * with a risk of compatibility breakage in future. * with a risk of infringing the GNU policy. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-28 0:53 ` YAMAMOTO Mitsuharu @ 2009-07-28 17:14 ` Richard Stallman 0 siblings, 0 replies; 80+ messages in thread From: Richard Stallman @ 2009-07-28 17:14 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: adrian.b.robert, jasonr, monnier, emacs-devel Some find its effect unsatisfactory because it makes both foreground and background colors translucent. Adrian says the alpha-component support in the NS port is superior and actually the latter can make background translucent while keeping foreground opaque. Is there a difficulty in implementing backhground-only transparency on the other platforms? ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 3:35 ` YAMAMOTO Mitsuharu 2009-07-24 3:44 ` Jason Rumney @ 2009-07-24 19:25 ` Stefan Monnier 1 sibling, 0 replies; 80+ messages in thread From: Stefan Monnier @ 2009-07-24 19:25 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: Adrian Robert, Emacs-Devel devel >>> So, what's your idea to prevent 23.1 users from unintended use of >>> the features that are incompatible with the other platforms and to >>> be removed in 23.2? >> I don't think it's a problem that necessarily needs to be solved. > I don't agree in this respect. I know. Stefan ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 1:09 ` Stefan Monnier 2009-07-24 1:27 ` YAMAMOTO Mitsuharu @ 2009-07-29 0:22 ` YAMAMOTO Mitsuharu 2009-07-29 1:12 ` Chong Yidong 1 sibling, 1 reply; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-29 0:22 UTC (permalink / raw) To: Stefan Monnier, Chong Yidong; +Cc: Emacs-Devel devel >>>>> On Thu, 23 Jul 2009 21:09:20 -0400, Stefan Monnier <monnier@iro.umontreal.ca> said: > I know, but I think such changes so late in the pretest aren't a > good idea. Only critical bugs deserve to be fixed now. I think infringement of GNU policy (in particular, about adding a general feature to a non-free platform first) is so critical for Emacs that it should be considered a critical bug that deserves to be fixed now. What do maintainers think? YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 0:22 ` YAMAMOTO Mitsuharu @ 2009-07-29 1:12 ` Chong Yidong 2009-07-29 1:18 ` YAMAMOTO Mitsuharu 2009-07-29 1:29 ` YAMAMOTO Mitsuharu 0 siblings, 2 replies; 80+ messages in thread From: Chong Yidong @ 2009-07-29 1:12 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: Stefan Monnier, Emacs-Devel devel YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes: > I think infringement of GNU policy (in particular, about adding a > general feature to a non-free platform first) is so critical for Emacs > that it should be considered a critical bug that deserves to be fixed > now. > > What do maintainers think? I think this issue isn't worth the time that's been spent on it. I've reverted some of your changes on the branch. Your removal of ns-set-alpha and ns-set-background-alpha is fine. However, I restored the code that supports alpha channel internally. I think this is an acceptable compromise, so let's stop arguing about this now. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 1:12 ` Chong Yidong @ 2009-07-29 1:18 ` YAMAMOTO Mitsuharu 2009-07-29 4:48 ` YAMAMOTO Mitsuharu 2009-07-29 1:29 ` YAMAMOTO Mitsuharu 1 sibling, 1 reply; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-29 1:18 UTC (permalink / raw) To: Chong Yidong; +Cc: Stefan Monnier, Emacs-Devel devel >>>>> On Tue, 28 Jul 2009 21:12:12 -0400, Chong Yidong <cyd@stupidchicken.com> said: >> I think infringement of GNU policy (in particular, about adding a >> general feature to a non-free platform first) is so critical for >> Emacs that it should be considered a critical bug that deserves to >> be fixed now. >> >> What do maintainers think? > I think this issue isn't worth the time that's been spent on it. I agree in that point. It's apparent that tiling and alpha-component support in the NS port are infringing the GNU policy unless these features will never be added to free platforms. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 1:18 ` YAMAMOTO Mitsuharu @ 2009-07-29 4:48 ` YAMAMOTO Mitsuharu 0 siblings, 0 replies; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-29 4:48 UTC (permalink / raw) To: Chong Yidong; +Cc: Stefan Monnier, Emacs-Devel devel >>>>> On Wed, 29 Jul 2009 10:18:30 +0900, YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> said: > It's apparent that tiling and alpha-component support in the NS port > are infringing the GNU policy unless these features will never be > added to free platforms. And combination of these features introduces another bug in the NS port. (set-face-background 'default "ARGBfeffffff") ;; almost opaque white color (set-face-stipple 'default "splash.png") ;; actually not stippling but tiling Then the background of the tiling image suddenly becomes completely transparent. Again, keeping these features in the release version only produces variety kinds of problems. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 1:12 ` Chong Yidong 2009-07-29 1:18 ` YAMAMOTO Mitsuharu @ 2009-07-29 1:29 ` YAMAMOTO Mitsuharu 1 sibling, 0 replies; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-29 1:29 UTC (permalink / raw) To: Chong Yidong; +Cc: Stefan Monnier, Emacs-Devel devel >>>>> On Tue, 28 Jul 2009 21:12:12 -0400, Chong Yidong <cyd@stupidchicken.com> said: > I've reverted some of your changes on the branch. Your removal of > ns-set-alpha and ns-set-background-alpha is fine. However, I > restored the code that supports alpha channel internally. I think > this is an acceptable compromise, so let's stop arguing about this > now. In case I misunderstand "internally", the alpha-component support is still accessible from the user: (set-face-background 'default "ARGBaaffffff") YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-23 12:46 ` YAMAMOTO Mitsuharu 2009-07-23 15:30 ` Stefan Monnier @ 2009-07-24 14:34 ` Adrian Robert 2009-07-25 1:15 ` YAMAMOTO Mitsuharu 2009-07-25 4:55 ` Richard Stallman 1 sibling, 2 replies; 80+ messages in thread From: Adrian Robert @ 2009-07-24 14:34 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: Emacs-Devel devel On Jul 23, 2009, at 8:46 AM, YAMAMOTO Mitsuharu wrote: > It's essential to make these changes in the release branch so users > may not use the incompatible formats by accident and introduce > compatibility problems when they are removed in some future version. > Upcoming version is the first one for the NS port. Effectiveness is > much lowered if such changes are deferred to the later versions. > > I've warned about such incompatibility issues that I think > indispensable for the first official release version, but the author > has not tried to address them (not just for this one!). There are others working on the port, but speaking for myself, my time has been limited and I've prioritized fixing bugs (as I've mentioned before). I've advocated for and assisted others with standardization / cleanup efforts. > Even if by any chance there's overlooked code as you say, it's only > in the NS-specific part and relatively minor compared with total > unstableness of the port itself. Removing incompatible features at > this timing is much more important unless the port is marked > experimental/hackers-only. Then let's mark it such, as there are many more features of this sort that should be removed by your criteria (some of which were unfortunately adopted by the Carbon port following Emacs.app in the Sourceforge days, but were never subjected to the same scrutiny): - modifier key customization (standard methods exist) - services integration (no counterpart on other platforms) - applescript integration (use DBUS instead) - font panel (unneeded, incompatible) - nonstandard antialiasing controls (standard methods exist) - nonstandard way of hiding/showing toolbar (unneeded, incompatible) - open/save panels (unneeded, incompatible) - about panel (unneeded) All of these things belong in distributions, or in add-on packages such as: http://www.emacswiki.org/emacs/NSPlatformSupport >> ns_color_to_lisp(): The function could be simplified now that you >> have eliminated a special case. > > I know the changes are not optimal. But I wanted to keep them quite > straightforward so as to avoid regression. OK, then at least a cleaned-up version could have gone into the trunk. >> nsfont_draw(): Would setting the foreground instead of the >> background color to the bitmap constitute a corrected >> implementation? > > I don't know if I understand your intention correctly from the above > sentence. But if you believe you understand stippling correctly this > time, maybe you can make the change into the trunk. I gathered that you understood it better than I so I was wondering if there was some reason to just remove code when fixing it would have been as easy. >> ns-set-background-alpha: The implementation you just removed was >> superior to that for (set-frame-parameter nil 'alpha ##): it does >> not alter the alpha of the titlebar, scrollbars, modeline, or text. >> This makes it usable, instead of a curiosity. It also provides >> access via an interactive function. The correct fix would be to >> improve the (set- frame-parameter) version, not remove this while no >> alternative exists for users. > > I knew their difference. I removed it because it belongs to "NS-only > implementation for features that are not inherently specific to NS." > (http://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00594.html) "Inherently specific" is an ambiguous call, and I don't think it's a reasonable litmus test. But if the Cocoa APIs provide alpha capabilities beyond what is available on X11 and W32, it is inherent in some sense. The right thing would be to fix the frame-parameter implementation (at least on NS), but failing that the other option should be left in for users. > I think it's really bad for the "first-class" port to have such > features because they may be superseded in a platform-independent way > by some future versions and that introduces unnecessary > incompatibilities. It seems there are several problems listed in the email you cite that either do not impact or actually hurt users; why not work on these (on the trunk), or on fixing bugs? As far as the superseded / platform independent argument, as I've said before, many features first appeared on X11 or GTK without counterparts on other platforms. This continues to happen now. It's a double-standard to police the NS port so stringently without considering implementing the counterparts. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 14:34 ` Adrian Robert @ 2009-07-25 1:15 ` YAMAMOTO Mitsuharu 2009-07-25 4:55 ` Richard Stallman 1 sibling, 0 replies; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-25 1:15 UTC (permalink / raw) To: Adrian Robert; +Cc: Emacs-Devel devel >>>>> On Fri, 24 Jul 2009 10:34:55 -0400, Adrian Robert <adrian.b.robert@gmail.com> said: > On Jul 23, 2009, at 8:46 AM, YAMAMOTO Mitsuharu wrote: >> It's essential to make these changes in the release branch so users >> may not use the incompatible formats by accident and introduce >> compatibility problems when they are removed in some future version. >> Upcoming version is the first one for the NS port. Effectiveness is >> much lowered if such changes are deferred to the later versions. >> >> I've warned about such incompatibility issues that I think >> indispensable for the first official release version, but the author >> has not tried to address them (not just for this one!). > There are others working on the port, but speaking for myself, my time > has been limited and I've prioritized fixing bugs (as I've mentioned > before). I've advocated for and assisted others with > standardization / cleanup efforts. They would hesitate to remove the code even if it breaks compatibility unless you explicitly ask it. >> Even if by any chance there's overlooked code as you say, it's only >> in the NS-specific part and relatively minor compared with total >> unstableness of the port itself. Removing incompatible features at >> this timing is much more important unless the port is marked >> experimental/hackers-only. > Then let's mark it such, as there are many more features of this sort > that should be removed by your criteria (some of which were > unfortunately adopted by the Carbon port following Emacs.app in the > Sourceforge days, but were never subjected to the same scrutiny): > - modifier key customization (standard methods exist) > - services integration (no counterpart on other platforms) > - applescript integration (use DBUS instead) > - font panel (unneeded, incompatible) > - nonstandard antialiasing controls (standard methods exist) > - nonstandard way of hiding/showing toolbar (unneeded, incompatible) > - open/save panels (unneeded, incompatible) > - about panel (unneeded) Whether or not to mark experimental/hackers-only is up to the maintainers, and I actually asked them about the status of the port before removing the code. http://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00594.html http://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00630.html And actually I considered whether I can remove some of the incompatible features you listed above, say open/save panel. But it is too drastic to do so without some replacement code. Addition of such code is "too late" and regression-prone, so I restricted myself to the features that just removal is sufficient. >>> nsfont_draw(): Would setting the foreground instead of the >>> background color to the bitmap constitute a corrected >>> implementation? >> >> I don't know if I understand your intention correctly from the above >> sentence. But if you believe you understand stippling correctly this >> time, maybe you can make the change into the trunk. > I gathered that you understood it better than I so I was wondering if > there was some reason to just remove code when fixing it would have > been as easy. As I said above, I avoided adding replacement code. >>> ns-set-background-alpha: The implementation you just removed was >>> superior to that for (set-frame-parameter nil 'alpha ##): it does >>> not alter the alpha of the titlebar, scrollbars, modeline, or text. >>> This makes it usable, instead of a curiosity. It also provides >>> access via an interactive function. The correct fix would be to >>> improve the (set- frame-parameter) version, not remove this while no >>> alternative exists for users. >> >> I knew their difference. I removed it because it belongs to "NS-only >> implementation for features that are not inherently specific to NS." >> (http://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00594.html) > "Inherently specific" is an ambiguous call, and I don't think it's a > reasonable litmus test. But if the Cocoa APIs provide alpha > capabilities beyond what is available on X11 and W32, it is inherent > in some sense. The right thing would be to fix the frame-parameter > implementation (at least on NS), but failing that the other option > should be left in for users. I think fundamental features such as alpha-component needs some consensus among platforms about its specification. Of course, platform-specific proof-of-concept code is sometimes useful to call for discussion, but it doesn't fit with the official release version as it is. >> I think it's really bad for the "first-class" port to have such >> features because they may be superseded in a platform-independent way >> by some future versions and that introduces unnecessary >> incompatibilities. > It seems there are several problems listed in the email you cite that > either do not impact or actually hurt users; why not work on these (on > the trunk), or on fixing bugs? As I already said, I suspect the port has fundamental design flaw (not 100% sure, so you can possibly refute it). And design and policy are too different from mine. What I would do with Cocoa can be found in my Carbon+AppKit port. > As far as the superseded / platform independent argument, as I've said > before, many features first appeared on X11 or GTK without > counterparts on other platforms. This continues to happen now. It's > a double-standard to police the NS port so stringently without > considering implementing the counterparts. I thought RMS is strongly against adding features to proprietary platforms first. Of course, it is not applied to inherently platform-specific features (such as Apple Event handling). Maybe if you make the GNUstep port much more stable and usable enough as "first-class" port, then you can add some features first to the platform, but I'm not sure. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-24 14:34 ` Adrian Robert 2009-07-25 1:15 ` YAMAMOTO Mitsuharu @ 2009-07-25 4:55 ` Richard Stallman 2009-07-25 16:59 ` Adrian Robert 1 sibling, 1 reply; 80+ messages in thread From: Richard Stallman @ 2009-07-25 4:55 UTC (permalink / raw) To: Adrian Robert; +Cc: mituharu, emacs-devel unfortunately adopted by the Carbon port following Emacs.app in the Sourceforge days, but were never subjected to the same scrutiny): Most of the things in that list seem harmless adaptations to the Mac environment, but these two make me worry. - services integration (no counterpart on other platforms) - applescript integration (use DBUS instead) Can you explain what they do? ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-25 4:55 ` Richard Stallman @ 2009-07-25 16:59 ` Adrian Robert 2009-07-27 2:43 ` Richard Stallman 0 siblings, 1 reply; 80+ messages in thread From: Adrian Robert @ 2009-07-25 16:59 UTC (permalink / raw) To: rms; +Cc: mituharu, emacs-devel On Jul 25, 2009, at 12:55 AM, Richard Stallman wrote: > unfortunately adopted by the Carbon port following Emacs.app in the > Sourceforge days, but were never subjected to the same scrutiny): > > Most of the things in that list seem harmless adaptations to the Mac > environment, but these two make me worry. > > - services integration (no counterpart on other platforms) > - applescript integration (use DBUS instead) They are two protocols for interapp communication. The first one, services, exists on MacOS and GNUstep and was added originally by the Cocoa port as a consumer-only implementation. The second exists only on MacOS and was added by the Carbon port. After the merge, to support users migrating from Carbon, provider functionality was added to the Cocoa services implementation, and some Applescript functionality. I'd recommend backing these out in 23.2, as they go beyond the minimum platform compliance requires (services provider), and/or support a proprietary-only feature (Applescript). ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-25 16:59 ` Adrian Robert @ 2009-07-27 2:43 ` Richard Stallman 2009-07-27 3:22 ` Adrian Robert ` (2 more replies) 0 siblings, 3 replies; 80+ messages in thread From: Richard Stallman @ 2009-07-27 2:43 UTC (permalink / raw) To: Adrian Robert; +Cc: mituharu, emacs-devel > - services integration (no counterpart on other platforms) > - applescript integration (use DBUS instead) They are two protocols for interapp communication. The first one, services, exists on MacOS and GNUstep and was added originally by the Cocoa port as a consumer-only implementation. The second exists only on MacOS and was added by the Carbon port. In that case, the first one sound justified because of the GNUstep support for it. But the second might be bad. I need to know more about it. What is Applescript? What does it do? Can you show me an example of what people do with it? How does it relate to Emacs? Does it mean people can extend Emacs with Applescript programs? Or can they only run Emacs from it, like from a shell script? After the merge, to support users migrating from Carbon, provider functionality was added to the Cocoa services implementation, Does this mean that the "services integration" includes some features that work on GNUstep and some that do not? ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-27 2:43 ` Richard Stallman @ 2009-07-27 3:22 ` Adrian Robert [not found] ` <E1MW1sm-0000lL-4K@fencepost.gnu.org> 2009-07-28 18:25 ` Harald Hanche-Olsen 2009-07-29 14:12 ` Stefan Monnier 2 siblings, 1 reply; 80+ messages in thread From: Adrian Robert @ 2009-07-27 3:22 UTC (permalink / raw) To: rms; +Cc: mituharu, emacs-devel On Jul 26, 2009, at 10:43 PM, Richard Stallman wrote: > What is Applescript? What does it do? Can you show me an example > of what people do with it? How does it relate to Emacs? Does it mean > people can extend Emacs with Applescript programs? Or can they > only run Emacs from it, like from a shell script? I'm not sure about this, and wasn't involved in the implementation in either port. Maybe one of those who were can say something. > After the merge, to support users migrating from Carbon, provider > functionality was added to the Cocoa services implementation, > > Does this mean that the "services integration" includes some features > that work on GNUstep and some that do not? No. But a consumer implementation is something that all apps on both MacOS and GNUstep have; to leave it out of Emacs would be a glaring deficit to users. A provider implementation, where Emacs exports menu entries for interapplication services to other apps, is nice, but is only done by a minority of apps on either platform, so it goes beyond what is needed for Emacs to be a first-class desktop citizen and might as well be left for distributions. ^ permalink raw reply [flat|nested] 80+ messages in thread
[parent not found: <E1MW1sm-0000lL-4K@fencepost.gnu.org>]
* Re: Changes 2009-07-15/16 in branch? [not found] ` <E1MW1sm-0000lL-4K@fencepost.gnu.org> @ 2009-07-29 14:08 ` Harald Hanche-Olsen 2009-07-29 17:18 ` Stefan Monnier 2009-07-30 7:35 ` David Kastrup 0 siblings, 2 replies; 80+ messages in thread From: Harald Hanche-Olsen @ 2009-07-29 14:08 UTC (permalink / raw) To: emacs-devel + Richard Stallman <rms@gnu.org>: > We need to delete the "provider implementation" from Emacs 23.1. Agreed, I think ... One of those menu items is Services -> Emacs.app -> Send Email to Selected Address, which works. On the other hand, what does NOT work, but really SHOULD (this falls into the "glaring deficiency" category), is to let emacs handle a mailto: URL. On the mac, one can declare that application A should handle URL scheme U. By default, mailto: URLs are handled by Mail.app, so that clicking on a mailto: link on a web page causes Mail.app to open a new draft message addressed to the given address. If I change this to let emacs handle it, clicking on a mailto: link does activate emacs, but nothing more happens. This is a "glaring deficiency" because, after all, clicking on mailto: links on web pages is quite common, and if emacs cannot handle this, we discourage users from using emacs for their mail. Should I file a bug report requesting this feature? - Harald ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 14:08 ` Harald Hanche-Olsen @ 2009-07-29 17:18 ` Stefan Monnier 2009-07-30 7:35 ` David Kastrup 1 sibling, 0 replies; 80+ messages in thread From: Stefan Monnier @ 2009-07-29 17:18 UTC (permalink / raw) To: Harald Hanche-Olsen; +Cc: emacs-devel > This is a "glaring deficiency" because, after all, clicking on mailto: > links on web pages is quite common, and if emacs cannot handle this, > we discourage users from using emacs for their mail. > Should I file a bug report requesting this feature? I think so, yes, please, thank you, Stefan ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 14:08 ` Harald Hanche-Olsen 2009-07-29 17:18 ` Stefan Monnier @ 2009-07-30 7:35 ` David Kastrup 2009-07-30 13:31 ` Harald Hanche-Olsen 1 sibling, 1 reply; 80+ messages in thread From: David Kastrup @ 2009-07-30 7:35 UTC (permalink / raw) To: emacs-devel [-- Attachment #1: Type: text/plain, Size: 1116 bytes --] Harald Hanche-Olsen <hanche@math.ntnu.no> writes: > + Richard Stallman <rms@gnu.org>: > >> We need to delete the "provider implementation" from Emacs 23.1. > > Agreed, I think ... One of those menu items is Services -> Emacs.app > -> Send Email to Selected Address, which works. On the other hand, > what does NOT work, but really SHOULD (this falls into the "glaring > deficiency" category), is to let emacs handle a mailto: URL. > > On the mac, one can declare that application A should handle URL > scheme U. By default, mailto: URLs are handled by Mail.app, so that > clicking on a mailto: link on a web page causes Mail.app to open a > new draft message addressed to the given address. If I change this to > let emacs handle it, clicking on a mailto: link does activate emacs, > but nothing more happens. > > This is a "glaring deficiency" because, after all, clicking on mailto: > links on web pages is quite common, and if emacs cannot handle this, > we discourage users from using emacs for their mail. > > Should I file a bug report requesting this feature? What I use is a helper script that looks like [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: emacs-url --] [-- Type: text/x-sh, Size: 72 bytes --] #!/bin/sh /usr/local/bin/emacsclient -a "" --eval "(browse-url \"$1\")" [-- Attachment #3: Type: text/plain, Size: 231 bytes --] It should really be, for quoting reasons, /usr/local/bin/emacsclient -a "" --eval "(browse-url (pop argv))" "$1" but emacsclient's option handling is not similar enough to that of emacs yet to have this work. -- David Kastrup ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-30 7:35 ` David Kastrup @ 2009-07-30 13:31 ` Harald Hanche-Olsen 0 siblings, 0 replies; 80+ messages in thread From: Harald Hanche-Olsen @ 2009-07-30 13:31 UTC (permalink / raw) To: emacs-devel + David Kastrup <dak@gnu.org>: > Harald Hanche-Olsen <hanche@math.ntnu.no> writes: > > > On the mac, one can declare that application A should handle URL > > scheme U. By default, mailto: URLs are handled by Mail.app, so that > > clicking on a mailto: link on a web page causes Mail.app to open a > > new draft message addressed to the given address. If I change this to > > let emacs handle it, clicking on a mailto: link does activate emacs, > > but nothing more happens. > > > > This is a "glaring deficiency" because, after all, clicking on mailto: > > links on web pages is quite common, and if emacs cannot handle this, > > we discourage users from using emacs for their mail. > > > > Should I file a bug report requesting this feature? > > What I use is a helper script that looks like [...] Are you a Mac user? Your email header seems to indicate that you are primarily a gnu/linux user. On the Mac, there is no way that I can see to talk Firefox into running a script or arbitrary program to handle a mailto: URL. On the contrary, the mechanism in place involves activating a fullblown Mac application, then sending it an Apple event indicating the desired action. I suspect, though I haven't checked, that the same is true of Opera, Camino, and Safari. This is the way applications communicate on Mac OS X. I don't see that any shell script is gonna work around this. There *is* one possible workaround that I haven't checked, though: Make a small, simple application that knows just enough to act as an application, receive the Apple event, and run emacsclient. Most users are going to find this awkward and unnatural. The biggest problem is to find out what needs to be done. I dug around a bit in nsterm.m and ns-win.el to try to figure out how the nextstep event loop works, but not knowing how to read Objective C turns out to be too big an obstacle. I think we need a real expert to look at it. Maybe Adrian Robert is the only one who can do it? I don't know if he left it out because he didn't think of it, or because he couldn't figure it out either. - Harald ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-27 2:43 ` Richard Stallman 2009-07-27 3:22 ` Adrian Robert @ 2009-07-28 18:25 ` Harald Hanche-Olsen 2009-07-29 2:34 ` Stephen J. Turnbull 2009-07-29 14:12 ` Stefan Monnier 2 siblings, 1 reply; 80+ messages in thread From: Harald Hanche-Olsen @ 2009-07-28 18:25 UTC (permalink / raw) To: emacs-devel + Richard Stallman <rms@gnu.org>: > What is Applescript? What does it do? It provides a way for programs to control applications without the need for GUI interaction. (IMO, an absolute necessity in a GUI-dominated world.) > Can you show me an example of what people do with it? Here is a banal example: (ns-do-applescript "tell application \"TextEdit\" to open \"/Users/hanche/Desktop/Info.rtf\"") This opens an existing RTF file in TextEdit and returns t if successful. More specialized control is possible if the application in question provides a dictionary of applescript commands pertaining to that program. I am not sure how this functionality can be replaced by DBUS, unless someone comes up with a program that will accept applescript requests via DBUS and run them. I can't comment on the feasibility of writing such a program. > How does it relate to Emacs? Does it mean people can extend Emacs > with Applescript programs? Or can they only run Emacs from it, like > from a shell script? As far as I can tell, emacs does not provide an applescript dictionary, so only rudimentary control is available. For instance, you can run osascript -e 'tell application "emacs" to open "/etc/passwd"' from the command line and it does what you might expect. But extending emacs with applescript? I don't think so. Does this answer your question? - Harald ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-28 18:25 ` Harald Hanche-Olsen @ 2009-07-29 2:34 ` Stephen J. Turnbull 2009-07-29 2:41 ` Lennart Borgman 2009-07-29 20:14 ` Richard Stallman 0 siblings, 2 replies; 80+ messages in thread From: Stephen J. Turnbull @ 2009-07-29 2:34 UTC (permalink / raw) To: Harald Hanche-Olsen; +Cc: emacs-devel Harald Hanche-Olsen writes: > I am not sure how this functionality can be replaced by DBUS, The point is not that AppleScript functionality can be replaced by dbus on Mac OS X, it is that dbus provides roughly analogous functionality on free platforms. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 2:34 ` Stephen J. Turnbull @ 2009-07-29 2:41 ` Lennart Borgman 2009-07-29 2:56 ` Harald Hanche-Olsen 2009-07-29 3:33 ` Stephen J. Turnbull 2009-07-29 20:14 ` Richard Stallman 1 sibling, 2 replies; 80+ messages in thread From: Lennart Borgman @ 2009-07-29 2:41 UTC (permalink / raw) To: Stephen J. Turnbull; +Cc: Harald Hanche-Olsen, emacs-devel On Wed, Jul 29, 2009 at 4:34 AM, Stephen J. Turnbull<stephen@xemacs.org> wrote: > Harald Hanche-Olsen writes: > > > I am not sure how this functionality can be replaced by DBUS, > > The point is not that AppleScript functionality can be replaced by > dbus on Mac OS X, it is that dbus provides roughly analogous > functionality on free platforms. Does this mean that dbus does not work on Mac OS X? Why? ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 2:41 ` Lennart Borgman @ 2009-07-29 2:56 ` Harald Hanche-Olsen 2009-07-29 3:33 ` Stephen J. Turnbull 1 sibling, 0 replies; 80+ messages in thread From: Harald Hanche-Olsen @ 2009-07-29 2:56 UTC (permalink / raw) To: emacs-devel + Lennart Borgman <lennart.borgman@gmail.com>: > On Wed, Jul 29, 2009 at 4:34 AM, Stephen J. Turnbull<stephen@xemacs.org> wrote: > > Harald Hanche-Olsen writes: > > > > > I am not sure how this functionality can be replaced by DBUS, > > > > The point is not that AppleScript functionality can be replaced by > > dbus on Mac OS X, it is that dbus provides roughly analogous > > functionality on free platforms. > > Does this mean that dbus does not work on Mac OS X? Why? Not at all. Installing dbus is as easy as typing "port install dbus" for those who run macports. - Harald ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 2:41 ` Lennart Borgman 2009-07-29 2:56 ` Harald Hanche-Olsen @ 2009-07-29 3:33 ` Stephen J. Turnbull 1 sibling, 0 replies; 80+ messages in thread From: Stephen J. Turnbull @ 2009-07-29 3:33 UTC (permalink / raw) To: Lennart Borgman; +Cc: Harald Hanche-Olsen, emacs-devel Lennart Borgman writes: > On Wed, Jul 29, 2009 at 4:34 AM, Stephen J. Turnbull<stephen@xemacs.org> wrote: > > Harald Hanche-Olsen writes: > > > > > I am not sure how this functionality can be replaced by DBUS, > > > > The point is not that AppleScript functionality can be replaced by > > dbus on Mac OS X, it is that dbus provides roughly analogous > > functionality on free platforms. > > Does this mean that dbus does not work on Mac OS X? Why? No and yes. As Harald points out, installing dbus on Mac OS X is not particularly difficult. However, using dbus on Mac OS is like speaking English in Tokyo. Your conversation partners are very limited, mostly to foreigners. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 2:34 ` Stephen J. Turnbull 2009-07-29 2:41 ` Lennart Borgman @ 2009-07-29 20:14 ` Richard Stallman 2009-07-29 20:26 ` Chad Brown 2009-07-29 20:31 ` Harald Hanche-Olsen 1 sibling, 2 replies; 80+ messages in thread From: Richard Stallman @ 2009-07-29 20:14 UTC (permalink / raw) To: Stephen J. Turnbull; +Cc: hanche, emacs-devel The point is not that AppleScript functionality can be replaced by dbus on Mac OS X, it is that dbus provides roughly analogous functionality on free platforms. "Roughly analogous" is means you see some similarity in what can be done with them. I will take your word for that, but it isn't enough to judge the answer to whether it is objectionable. I need more information. One question is, do most apps on MacOS have _the same_ Applescript capability that has been put into Emacs? ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 20:14 ` Richard Stallman @ 2009-07-29 20:26 ` Chad Brown 2009-07-30 15:35 ` Richard Stallman 2009-07-29 20:31 ` Harald Hanche-Olsen 1 sibling, 1 reply; 80+ messages in thread From: Chad Brown @ 2009-07-29 20:26 UTC (permalink / raw) To: rms; +Cc: Stephen J. Turnbull, hanche, emacs-devel [-- Attachment #1: Type: text/plain, Size: 503 bytes --] On Jul 29, 2009, at 1:14 PM, Richard Stallman wrote: > One question is, do most apps on MacOS have _the same_ Applescript > capability that has been put into Emacs? Having only the level of capability that has been put into Emacs is considered a disadvantage in most applications. The disadvantage is typically (in my experience) considered medium-to-light in general applications, and medium-to-serious in fundamental applications like general-purpose editors and/or user environments. *Chad [-- Attachment #2: Type: text/html, Size: 897 bytes --] ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 20:26 ` Chad Brown @ 2009-07-30 15:35 ` Richard Stallman 2009-07-30 16:37 ` Harald Hanche-Olsen 0 siblings, 1 reply; 80+ messages in thread From: Richard Stallman @ 2009-07-30 15:35 UTC (permalink / raw) To: Chad Brown; +Cc: stephen, hanche, emacs-devel > One question is, do most apps on MacOS have _the same_ Applescript > capability that has been put into Emacs? Having only the level of capability that has been put into Emacs is considered a disadvantage in most applications. Could you name and describe the different levels of capability that apps can have, and say which one of them corresponds to Emacs? ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-30 15:35 ` Richard Stallman @ 2009-07-30 16:37 ` Harald Hanche-Olsen 0 siblings, 0 replies; 80+ messages in thread From: Harald Hanche-Olsen @ 2009-07-30 16:37 UTC (permalink / raw) To: emacs-devel + Richard Stallman <rms@gnu.org>: > > One question is, do most apps on MacOS have _the same_ Applescript > > capability that has been put into Emacs? > > Having only the level of capability that has been put into Emacs is > considered a disadvantage in most applications. > > Could you name and describe the different levels of capability > that apps can have, and say which one of them corresponds to Emacs? I think every app that uses the cocoa framework, as Emacs does, can respond to some basic applescript commands, such as activate, quit, open file. This comes with the framework and is there whether we want it or not. (I am not 100% sure on this.) In addition, apps can (but Emacs does not) provide more Applescript commands that other apps can use to control it. These extensions can vary from a few simple commands to large collections of commands and data structures that let you control almost every aspect of the app. When it comes to being able to control other apps via Applescript, I don't think many apps can do it. Such scripts are generally run using the script editor, an app that lets you edit and execute scripts as well as compile them into standalone scripts. Plus there is the command line driven osascript, to which you can feed any bit of applescript and have it executed. Example: ; osascript -e 'tell application "Emacs" to open "/etc/passwd"' Now apart from Applescript and services (covered in a separate message), applications may respond to other kinds of events. One that Emacs does well is "open file"; the script above actually triggers such an event. Another one is a request to handle an URL such as mailto:nobody@example.com, which Emacs does not handle at present. (But I think it should, if someone can figure out how.) - Harald ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 20:14 ` Richard Stallman 2009-07-29 20:26 ` Chad Brown @ 2009-07-29 20:31 ` Harald Hanche-Olsen 2009-07-30 15:35 ` Richard Stallman 1 sibling, 1 reply; 80+ messages in thread From: Harald Hanche-Olsen @ 2009-07-29 20:31 UTC (permalink / raw) To: emacs-devel + Richard Stallman <rms@gnu.org>: > One question is, do most apps on MacOS have _the same_ Applescript > capability that has been put into Emacs? Most? I don't think so. Small and simple apps generally don't, bigger and more sophisticated ones generally do. Apple's own apps are more likely to have provide services, but many non-Apple ones do, such as Emacs (duh), LaTeXit, Opera, Quicksilver, Skim, Skype. Relatively few apps have the capability of sending user supplied Applescript commands to other apps, but I would suggest keeping that capability, since it strengthens Emacs' position as a useful tool on the Mac. (Though one could get much the same functionality by running osascript as an external command.) -- * Harald Hanche-Olsen <URL:http://www.math.ntnu.no/~hanche/> - It is undesirable to believe a proposition when there is no ground whatsoever for supposing it is true. -- Bertrand Russell ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-29 20:31 ` Harald Hanche-Olsen @ 2009-07-30 15:35 ` Richard Stallman 2009-07-30 16:22 ` Harald Hanche-Olsen 0 siblings, 1 reply; 80+ messages in thread From: Richard Stallman @ 2009-07-30 15:35 UTC (permalink / raw) To: Harald Hanche-Olsen; +Cc: emacs-devel Most? I don't think so. Small and simple apps generally don't, bigger and more sophisticated ones generally do. Apple's own apps are more likely to have provide services, but many non-Apple ones do, such as Emacs (duh), LaTeXit, Opera, Quicksilver, Skim, Skype. "Provide services" is somewhat cryptic. Which services does that refer to? Relatively few apps have the capability of sending user supplied Applescript commands to other apps, but I would suggest keeping that capability, since it strengthens Emacs' position as a useful tool on the Mac. (Though one could get much the same functionality by running osascript as an external command.) It seems to me that this is precisely the sort of thing we should avoid, since it is a feature limited to a proprietary system and not even most programs on that system have it. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-30 15:35 ` Richard Stallman @ 2009-07-30 16:22 ` Harald Hanche-Olsen 2009-08-01 3:21 ` Richard Stallman 0 siblings, 1 reply; 80+ messages in thread From: Harald Hanche-Olsen @ 2009-07-30 16:22 UTC (permalink / raw) To: emacs-devel + Richard Stallman <rms@gnu.org>: > Most? I don't think so. Small and simple apps generally don't, bigger > and more sophisticated ones generally do. Apple's own apps are more > likely to have provide services, but many non-Apple ones do, such as > Emacs (duh), LaTeXit, Opera, Quicksilver, Skim, Skype. > > "Provide services" is somewhat cryptic. Which services does that refer to? Note that every application on the mac uses the menu bar at the top of the screen. Drop down menus at the menu bar, starting from the left, are the Apple menu (mostly for system-wide stuff), the application menu, and whatever other menu items the app might provide (File and Edit usually come next). In the application menu of every application there is a submenu called Services. And the Services menu has a submenu for every app that actually does provide a service (some apps provide only one service, in which case the submenu is dispensed with) The usual way to use a service provided by another app is to select something with the mouse, be it text, graphics or a more complicated object, and then select the desired service from the menu. The other app will receive the selected stuff and do something with it. Services provided by Emacs are these four: Email selection (i.e., put the selection in the body of a new message) New buffer containing selection Open selected file (the selection had better name a file) Send mail to selected address A semirandom selection of services offered by other applications: Open URL Make new Applescript Run as Applescript Send file to bluetooth device Add contact (Skype) Call (Skype) Send SMS (Skype) > Relatively few apps have the capability of sending user supplied > Applescript commands to other apps, but I would suggest keeping that > capability, since it strengthens Emacs' position as a useful tool on > the Mac. (Though one could get much the same functionality by running > osascript as an external command.) > > It seems to me that this is precisely the sort of thing we should > avoid, since it is a feature limited to a proprietary system and not > even most programs on that system have it. I for one won't lose any sleep if it goes away, for as I said one can always run osascript as an external program. If others disagree, they will surely speak up. - Harald ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-30 16:22 ` Harald Hanche-Olsen @ 2009-08-01 3:21 ` Richard Stallman 2009-08-01 7:45 ` CHENG Gao 0 siblings, 1 reply; 80+ messages in thread From: Richard Stallman @ 2009-08-01 3:21 UTC (permalink / raw) To: Harald Hanche-Olsen; +Cc: emacs-devel Services provided by Emacs are these four: Email selection (i.e., put the selection in the body of a new message) New buffer containing selection Open selected file (the selection had better name a file) Send mail to selected address This seems legitimate. It just lets Emacs respond to other programs in a way that is normally used on MacOs. So this is not a MacOS-specific feature, but rather implementation of a MacOS interface to Emacs. Now apart from Applescript and services (covered in a separate message), applications may respond to other kinds of events. One that Emacs does well is "open file"; the script above actually triggers such an event. Ditto. However, running Applescript programs FROM Emacs is a system-specific feature for MacOS. That is what ought to be deleted. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-08-01 3:21 ` Richard Stallman @ 2009-08-01 7:45 ` CHENG Gao 2009-08-01 9:36 ` CHENG Gao 2009-08-02 4:43 ` Richard Stallman 0 siblings, 2 replies; 80+ messages in thread From: CHENG Gao @ 2009-08-01 7:45 UTC (permalink / raw) To: emacs-devel *On Fri, 31 Jul 2009 23:21:54 -0400 * Also sprach Richard Stallman <rms@gnu.org>: > Now apart from Applescript and services (covered in a separate > message), applications may respond to other kinds of events. One that > Emacs does well is "open file"; the script above actually triggers > such an event. > > Ditto. > > However, running Applescript programs FROM Emacs is a system-specific > feature for MacOS. That is what ought to be deleted. As I know, people have talked about replacing Applescript with Javascript for fairly lone time. And there is a working implementation called JSTalk (http://gusmueller.com/blog/archives/2009/03/introducing_jstalk__an_alternative_to_applescript.html). People also talked about replacing Applescript with Ruby (http://macdevcenter.com/pub/a/mac/2007/02/27/replacing-applescript-with-ruby.html). I must confess I never tried them. I dont know the intention to delete this feature is due to MacOS or Applescript or even both. If it's only because of Applescript, deletion of it will hurt those efforts (as mentioned above). Personally I wish this feature stays. I really like org-remember, but I dont know if it's possible or how to org-remember information outside of Emacs. Say for example I browse some webpage, and find I need to remember something, I wish I could select a region and org-remember it into my notes file. I trust I have to use this Applescript (or some non-proprietary implementation like Javascript, Ruby etc.). I wish this feature could stay. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-08-01 7:45 ` CHENG Gao @ 2009-08-01 9:36 ` CHENG Gao 2009-08-02 4:43 ` Richard Stallman 1 sibling, 0 replies; 80+ messages in thread From: CHENG Gao @ 2009-08-01 9:36 UTC (permalink / raw) To: emacs-devel *On Sat, 01 Aug 2009 15:45:41 +0800 * Also sprach CHENG Gao <chenggao@gmail.com>: > Personally I wish this feature stays. I really like org-remember, but I > dont know if it's possible or how to org-remember information outside of > Emacs. Say for example I browse some webpage, and find I need to > remember something, I wish I could select a region and org-remember it > into my notes file. I trust I have to use this Applescript (or some > non-proprietary implementation like Javascript, Ruby etc.). > > I wish this feature could stay. After posting this I did some web serach and found org-mac-protocol[1], which is exactly what I need. It needs Applescript to function. Footnotes: [1] http://claviclaws.net/org/ ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-08-01 7:45 ` CHENG Gao 2009-08-01 9:36 ` CHENG Gao @ 2009-08-02 4:43 ` Richard Stallman 2009-08-02 7:06 ` CHENG Gao 1 sibling, 1 reply; 80+ messages in thread From: Richard Stallman @ 2009-08-02 4:43 UTC (permalink / raw) To: CHENG Gao; +Cc: emacs-devel As I know, people have talked about replacing Applescript with Javascript for fairly lone time. And there is a working implementation called JSTalk (http://gusmueller.com/blog/archives/2009/03/introducing_jstalk__an_alternative_to_applescript.html). Can you explain what it means to "replace Applescript with Javascript"? Do you mean changing MacOS to get rid of Applescript entirely? Or making Emacs use Javascript on GNU-like systems the same way it uses Applescript on MacOS? ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-08-02 4:43 ` Richard Stallman @ 2009-08-02 7:06 ` CHENG Gao 2009-08-03 16:17 ` Richard Stallman 0 siblings, 1 reply; 80+ messages in thread From: CHENG Gao @ 2009-08-02 7:06 UTC (permalink / raw) To: emacs-devel *On Sun, 02 Aug 2009 00:43:55 -0400 * Also sprach Richard Stallman <rms@gnu.org>: > As I know, people have talked about replacing Applescript with > Javascript for fairly lone time. And there is a working implementation > called JSTalk > (http://gusmueller.com/blog/archives/2009/03/introducing_jstalk__an_alternative_to_applescript.html). > > Can you explain what it means to "replace Applescript with Javascript"? > Do you mean changing MacOS to get rid of Applescript entirely? > Or making Emacs use Javascript on GNU-like systems the same way it > uses Applescript on MacOS? It means you can use Javascript instead of Applescript to write scripts to communicate between applications on MacOS.I can't say Apple'll dump Applescript and replace it with Javascript, but users can use Javascript to do what Applescript can do. -- Numquam minus solus quam cum solus ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-08-02 7:06 ` CHENG Gao @ 2009-08-03 16:17 ` Richard Stallman 2009-08-03 20:03 ` CHENG Gao 0 siblings, 1 reply; 80+ messages in thread From: Richard Stallman @ 2009-08-03 16:17 UTC (permalink / raw) To: CHENG Gao; +Cc: emacs-devel It means you can use Javascript instead of Applescript to write scripts to communicate between applications on MacOS.I can't say Apple'll dump Applescript and replace it with Javascript, but users can use Javascript to do what Applescript can do. That sounds good. Will this work also on GNU systems and GNU-like systems? ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-08-03 16:17 ` Richard Stallman @ 2009-08-03 20:03 ` CHENG Gao 0 siblings, 0 replies; 80+ messages in thread From: CHENG Gao @ 2009-08-03 20:03 UTC (permalink / raw) To: emacs-devel *On Mon, 03 Aug 2009 12:17:15 -0400 * Also sprach Richard Stallman <rms@gnu.org>: > It means you can use Javascript instead of Applescript to write scripts > to communicate between applications on MacOS.I can't say Apple'll dump > Applescript and replace it with Javascript, but users can use Javascript > to do what Applescript can do. > > That sounds good. > > Will this work also on GNU systems and GNU-like systems? I dont too much about other systems, but as I know from GNUstep[1] website, GNUstep (This's what NS port for besides MacOSX) has the same scripting mechanism as MacOSX. The difference is MacOSX use Apple's proprietary Applescript, while GNUstep uses StepTalk (SmallTalk as scripting language) and GNUstep-Guile (Guile as scripting language). You can check GNUstep's Developer Tools page[2]. And it's possible to use other scripting languages as Javascript, Ruby to do scripting on MacOSX. I suppose it's possible to use other scripting languages on GNUstep. Footnotes: [1] http://www.gnustep.org [2] http://www.gnustep.org/experience/DeveloperTools.html -- The enemies of Freedom do not argue; they shout and they shoot. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-27 2:43 ` Richard Stallman 2009-07-27 3:22 ` Adrian Robert 2009-07-28 18:25 ` Harald Hanche-Olsen @ 2009-07-29 14:12 ` Stefan Monnier 2 siblings, 0 replies; 80+ messages in thread From: Stefan Monnier @ 2009-07-29 14:12 UTC (permalink / raw) To: rms; +Cc: Adrian Robert, mituharu, emacs-devel > What is Applescript? What does it do? Can you show me an example > of what people do with it? How does it relate to Emacs? Does it mean > people can extend Emacs with Applescript programs? Or can they > only run Emacs from it, like from a shell script? Also, AFAIK, Applescript support was already present in Emacs-22. And it can be seen as "the D-Bus feature for Mac OS X", although we haven't tried to provide an API that unifies them. We may want to phase it out at some point (e.g. mark it obsolete if the Services thingy can provide replacement functionality), but I don't think we should eliminate it at this point. Stefan ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-23 11:22 Changes 2009-07-15/16 in branch? Adrian Robert 2009-07-23 12:46 ` YAMAMOTO Mitsuharu @ 2009-07-27 0:35 ` YAMAMOTO Mitsuharu 2009-07-27 3:12 ` Adrian Robert 2009-07-29 3:23 ` Sean O'Rourke 2 siblings, 1 reply; 80+ messages in thread From: YAMAMOTO Mitsuharu @ 2009-07-27 0:35 UTC (permalink / raw) To: Adrian Robert; +Cc: Emacs-Devel devel >>>>> On Thu, 23 Jul 2009 07:22:55 -0400, Adrian Robert <adrian.b.robert@gmail.com> said: > ns-set-background-alpha: The implementation you just removed was > superior to that for (set-frame-parameter nil 'alpha ##): it does > not alter the alpha of the titlebar, scrollbars, modeline, or text. > This makes it usable, instead of a curiosity. The implementation of the "superior" transparency has an annoying glitch that it sometimes leaves "ghost letters" of the previous contents on screen. It is ridiculous to include such a premature implementation recklessly in the release version, whereas the alpha-component support in the other platforms (notably GNU/Linux) is unimplemented yet. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-27 0:35 ` YAMAMOTO Mitsuharu @ 2009-07-27 3:12 ` Adrian Robert 0 siblings, 0 replies; 80+ messages in thread From: Adrian Robert @ 2009-07-27 3:12 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: Emacs-Devel devel On Jul 26, 2009, at 8:35 PM, YAMAMOTO Mitsuharu wrote: >>>>>> On Thu, 23 Jul 2009 07:22:55 -0400, Adrian Robert <adrian.b.robert@gmail.com >>>>>> > said: > >> ns-set-background-alpha: The implementation you just removed was >> superior to that for (set-frame-parameter nil 'alpha ##): it does >> not alter the alpha of the titlebar, scrollbars, modeline, or text. >> This makes it usable, instead of a curiosity. > > The implementation of the "superior" transparency has an annoying > glitch that it sometimes leaves "ghost letters" of the previous > contents on screen. I was not aware this issue was still present. I had noticed it at one point a couple of years ago but thought it had been resolved once some indirectly-related issues with text rendering and GUI updates had been ironed out. It's possible it returned after later changes in those areas. ^ permalink raw reply [flat|nested] 80+ messages in thread
* Re: Changes 2009-07-15/16 in branch? 2009-07-23 11:22 Changes 2009-07-15/16 in branch? Adrian Robert 2009-07-23 12:46 ` YAMAMOTO Mitsuharu 2009-07-27 0:35 ` YAMAMOTO Mitsuharu @ 2009-07-29 3:23 ` Sean O'Rourke 2 siblings, 0 replies; 80+ messages in thread From: Sean O'Rourke @ 2009-07-29 3:23 UTC (permalink / raw) To: emacs-devel I use these features, and luckily have not recompiled since their crippling. I *think* reverting the following Git commits (to git://git.sv.gnu.org/emacs.git) will undo the damage: 73f1096bb293917b7fb53db856c62f913d41676f 36384c4ea8d8f27d7065ea4d7bd51ee9cf2a8d3d 88cc3775afae928c4fc358334bb793801cc20aac e9b54d75b4d998adf9001050afe883e944c405de but I haven't tried recompiling yet. Have I missed any? Thanks, Sean ^ permalink raw reply [flat|nested] 80+ messages in thread
end of thread, other threads:[~2009-08-03 20:03 UTC | newest] Thread overview: 80+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-07-23 11:22 Changes 2009-07-15/16 in branch? Adrian Robert 2009-07-23 12:46 ` YAMAMOTO Mitsuharu 2009-07-23 15:30 ` Stefan Monnier 2009-07-24 0:23 ` YAMAMOTO Mitsuharu 2009-07-24 1:09 ` Stefan Monnier 2009-07-24 1:27 ` YAMAMOTO Mitsuharu 2009-07-24 1:37 ` Stefan Monnier 2009-07-24 2:20 ` YAMAMOTO Mitsuharu 2009-07-24 3:17 ` Stefan Monnier 2009-07-24 3:35 ` YAMAMOTO Mitsuharu 2009-07-24 3:44 ` Jason Rumney 2009-07-24 4:12 ` YAMAMOTO Mitsuharu 2009-07-25 2:13 ` YAMAMOTO Mitsuharu 2009-07-26 2:22 ` Richard Stallman 2009-07-26 2:35 ` YAMAMOTO Mitsuharu 2009-07-26 3:31 ` Miles Bader 2009-07-26 3:45 ` YAMAMOTO Mitsuharu 2009-07-27 2:44 ` Richard Stallman 2009-07-27 3:20 ` YAMAMOTO Mitsuharu 2009-07-27 17:41 ` Richard Stallman 2009-07-27 18:41 ` Clifford Wulfman 2009-07-28 4:37 ` Richard Stallman 2009-07-28 13:18 ` Clifford Wulfman 2009-07-28 17:14 ` Richard Stallman 2009-07-28 18:39 ` Alfred M. Szmidt 2009-07-28 20:31 ` Ian Eure 2009-08-01 3:21 ` Richard Stallman 2009-08-01 4:10 ` Ian Eure 2009-08-01 6:28 ` Stephen J. Turnbull 2009-08-02 4:44 ` Richard Stallman 2009-07-28 22:05 ` James Cloos 2009-07-29 20:13 ` Richard Stallman 2009-07-29 22:05 ` YAMAMOTO Mitsuharu 2009-07-30 7:53 ` YAMAMOTO Mitsuharu 2009-07-30 14:01 ` Chong Yidong 2009-07-31 1:56 ` YAMAMOTO Mitsuharu 2009-07-27 20:14 ` David De La Harpe Golden 2009-07-28 6:10 ` YAMAMOTO Mitsuharu [not found] ` <EFBC3E4E-8739-4B16-8797-D9CA8BC290CD@gmail.com> 2009-07-28 20:33 ` David De La Harpe Golden 2009-07-28 0:53 ` YAMAMOTO Mitsuharu 2009-07-28 17:14 ` Richard Stallman 2009-07-24 19:25 ` Stefan Monnier 2009-07-29 0:22 ` YAMAMOTO Mitsuharu 2009-07-29 1:12 ` Chong Yidong 2009-07-29 1:18 ` YAMAMOTO Mitsuharu 2009-07-29 4:48 ` YAMAMOTO Mitsuharu 2009-07-29 1:29 ` YAMAMOTO Mitsuharu 2009-07-24 14:34 ` Adrian Robert 2009-07-25 1:15 ` YAMAMOTO Mitsuharu 2009-07-25 4:55 ` Richard Stallman 2009-07-25 16:59 ` Adrian Robert 2009-07-27 2:43 ` Richard Stallman 2009-07-27 3:22 ` Adrian Robert [not found] ` <E1MW1sm-0000lL-4K@fencepost.gnu.org> 2009-07-29 14:08 ` Harald Hanche-Olsen 2009-07-29 17:18 ` Stefan Monnier 2009-07-30 7:35 ` David Kastrup 2009-07-30 13:31 ` Harald Hanche-Olsen 2009-07-28 18:25 ` Harald Hanche-Olsen 2009-07-29 2:34 ` Stephen J. Turnbull 2009-07-29 2:41 ` Lennart Borgman 2009-07-29 2:56 ` Harald Hanche-Olsen 2009-07-29 3:33 ` Stephen J. Turnbull 2009-07-29 20:14 ` Richard Stallman 2009-07-29 20:26 ` Chad Brown 2009-07-30 15:35 ` Richard Stallman 2009-07-30 16:37 ` Harald Hanche-Olsen 2009-07-29 20:31 ` Harald Hanche-Olsen 2009-07-30 15:35 ` Richard Stallman 2009-07-30 16:22 ` Harald Hanche-Olsen 2009-08-01 3:21 ` Richard Stallman 2009-08-01 7:45 ` CHENG Gao 2009-08-01 9:36 ` CHENG Gao 2009-08-02 4:43 ` Richard Stallman 2009-08-02 7:06 ` CHENG Gao 2009-08-03 16:17 ` Richard Stallman 2009-08-03 20:03 ` CHENG Gao 2009-07-29 14:12 ` Stefan Monnier 2009-07-27 0:35 ` YAMAMOTO Mitsuharu 2009-07-27 3:12 ` Adrian Robert 2009-07-29 3:23 ` Sean O'Rourke
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.