From: Karoly Lorentey <karoly@lorentey.hu>
To: David Kastrup <dak@gnu.org>
Cc: Andreas Schwab <schwab@suse.de>,
Dan Nicolaescu <dann@ics.uci.edu>,
joakim@verona.se, emacs-devel@gnu.org
Subject: Re: Multi-tty design (Re: Reordering etc/NEWS)
Date: Fri, 18 May 2007 13:55:53 +0200 [thread overview]
Message-ID: <464D9449.4020108@lorentey.hu> (raw)
In-Reply-To: <86wsz6o8fb.fsf@lola.quinscape.zz>
[-- Attachment #1.1: Type: text/plain, Size: 6966 bytes --]
David Kastrup wrote:
>> (Emacs may have been running in the background for weeks, and I may
>> have just started working on my brand new TeX file in a recently
>> started emacsclient session.) Both viewpoints should be catered
>> for.
>
> I disagree. If a viewpoint can't be catered for without breaking a
> _lot_ of things and guarantees, catering for it might be a bad idea.
OK, I give up in disgust. Do whatever you want. I mean it: go ahead
and implement whatever environment semantics you find most appropriate.
I have presented all my best reasons why I think we should support
local environments. I have even proposed what I think was a reasonable
compromise. We simply can not reach a common ground if you keep
discarding my entire viewpoint and use-cases.
Clearly I won't convince you by repeating the same arguments over and
over, and you will definitely not convince me either. There is no point
in arguing for the sake of arguing. I throw in the towel, you win.
Congratulations.
Now that this area is finally taken care of, let us choose and discuss
another part of multi-tty design instead.
* * *
I'm really not interested in arguing about environments any more, but
since I have already written my response below, I'll post it for reference.
> There is lots of Elisp code that does not even run in a frame: network
> buffers, spell check buffers, background processes and the like.
This code will also work fine for single-terminal users. All existing
code would work fine for single-terminal users. Single-terminal users
will not run into regressions. We are backward compatible.
I think you are vastly overemphasizing the importance of environment
variables in general and "future compatibility" in particular.
>> One deviation in the multi-terminal case is that code like
>>
>> (let ((oldval (getenv "FOO"))
>> (setenv "FOO" "fred")
>> (unwind-protect
>> ...
>> (setenv "FOO" oldval))
>>
>> will change the value of FOO on all terminals but the current one as
>> a new side effect. This is, I believe, acceptable. Some code
>> adaptation to make existing code able to take advantage of the new
>> feature set is inevitable. We can simply document this concern and
>> suggest solutions (e.g., let-binding `process-environment' instead,
>> or adding a standard macro that would save and restore
>> `process-environment' on all terminals.) in the NEWS file, or
>> wherever we provide an upgrade guide for package writers.
>
> Huh? Let-binding process-environment would not keep your
> setenv-implementation from iterating through the terminals and/or
> keeping score of environment changes to apply, would it?
On the other hand, let-binding process-environment and consing in front
of it will be an appropriate solution in some of the cases. That's what
I meant.
>>> manipulation of process-environment happens almost
>>> exclusively through setenv.
>> In the new design, this will work unchanged in multi-terminal
>> sessions as well.
>
> It won't for temporary changes.
I do not care. Single-terminal users will not be affected.
>> I think this solution would be both incompatible and much too
>> complex.
>
> Interesting. It is actually compatible with existing code (except
> those setting the TERM variable if we agree that this is one of the
> terminal-local ones),
I'm sorry, but this must be a new sense of the word "compatible" I was
not previously aware of.
> and it is quite simpler than your proposals.
Explain it in a single short sentence then.
> The main disadvantage is that it has _one_ "Huh?" factor: setting a
> terminal-related variable with setenv will not propagate to called
> processes by default.
That's a pretty big Huh? for me. This is a cute, fat little Huh?
oppurtunity even for our sacred single-terminal users.
> In contrast, your proposals have a _lot_ more "Huh?" factors.
Huh?
>>> And it will also cause a lot of
>>> inconsistencies that can't really be explained well to the user, like
>>> "compile" behaving differently in windows that are side-by-side.
>> I have explained above why I think this is an invalid argument with
>> terminal-local variables. If two windows are side by side, then they
>> are on the same terminal.
>
> I think the above comment belonged to a different model
> (frame-dependent variables and/or complete environment
> terminal/frame-local).
If we have partially local environments, then all frames will share
"non-terminal related" variables, so your side-by-side argument is
invalid. If we have a consistently local environment, then side-by-side
windows will share their environment by virtue of being on the same
terminal. I really don't see why you keep bringing this up.
>> OK, so let's do that using my design. Or yours.
>
> If you can improve your design to a point where the
> (let ((process-environment (copy-sequence process-environment)))
> (setenv "..."
> (setenv "..."
> (start-process ...
> ))
>
> scenario accepts setenv for terminal-local variables without
> propagating them elsewhere, where
> (setenv "..."
> alone will affect the environment everywhere (except where
> terminal-specific variables are concerned) and there is not a lot of
> background stuff going on that is hard to explain, then I would not
> mind dropping my proposal.
I'm really not interested whatsoever in keeping the above code work in
multi-terminal sessions. However, you were quite effective in
convincing me that single-terminal users must not be affected in any way
by multi-tty features.
>> The new design can be basically explained in one short sentence:
>> "process-environment is terminal-local, but setenv affects all
>> terminals."
>
> But we don't want a setenv DISPLAY to affect all terminals,
Actually, I do. If I manually M-x setenv DISPLAY, then I do that for a
good reason.
>>> Disagree. "Similar packages" pretty much include _all_ packages
>>> that would have reason to access the environment, so _certainly_
>>> those packages are relevant to the issue.
>> Um, nope. M-x shell is special because it creates a long-term
>> subprocess with which the user may communicate with inside Emacs,
>> from different terminals. X clients manually started from an M-x
>> shell buffer will appear on the terminal that was active at the time
>> the shell process was forked. We can not change this fact, no
>> matter how hard we tweak Emacs's environment variable handling.
>> This is why I say the behaviour of M-x shell, M-x term, GUD, ILISP
>> and friends (a.k.a. "similar packages") is irrelevant to this
>> discussion.
>
> Again: disregarding most packages which actually access the
> environment as "irrelevant" does not seem like a good idea.
You don't seem to understand my point. Please read my paragraph again.
--
Karoly
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
[-- Attachment #2: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
next prev parent reply other threads:[~2007-05-18 11:55 UTC|newest]
Thread overview: 251+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-04 21:17 Reordering etc/NEWS Richard Stallman
2007-05-05 22:42 ` Glenn Morris
2007-05-05 22:49 ` Jason Rumney
2007-05-06 17:57 ` Richard Stallman
2007-05-06 18:18 ` Glenn Morris
2007-05-06 20:28 ` Eli Zaretskii
2007-05-07 16:50 ` Richard Stallman
2007-05-07 17:07 ` David Kastrup
2007-05-08 6:27 ` Jan Djärv
2007-05-07 17:36 ` Glenn Morris
2007-05-07 18:05 ` David Kastrup
2007-05-07 17:53 ` spect. [Was: Reordering etc/NEWS] Alan Mackenzie
2007-05-07 18:16 ` Mathias Dahl
2007-05-07 21:51 ` Reordering etc/NEWS Eli Zaretskii
2007-05-07 22:04 ` David Kastrup
2007-05-08 18:09 ` Richard Stallman
2007-05-08 21:09 ` David Kastrup
2007-05-09 8:57 ` Kim F. Storm
2007-05-09 9:23 ` David Kastrup
2007-05-09 17:54 ` JD Smith
2007-05-09 19:42 ` Eli Zaretskii
2007-05-09 19:59 ` JD Smith
2007-05-09 20:29 ` Stefan Monnier
2007-05-09 20:54 ` Nick Roberts
2007-05-10 13:05 ` Richard Stallman
2007-05-09 21:56 ` Karl Fogel
2007-05-09 22:15 ` David Kastrup
2007-05-09 22:25 ` Karl Fogel
2007-05-09 22:32 ` David Kastrup
2007-05-09 22:59 ` Karl Fogel
2007-05-10 7:24 ` Jason Rumney
2007-05-10 7:49 ` David Kastrup
2007-05-10 8:04 ` joakim
2007-05-10 9:19 ` Jason Rumney
2007-05-10 9:32 ` David Kastrup
2007-05-10 9:42 ` joakim
2007-05-10 9:52 ` David Kastrup
2007-05-10 10:10 ` David Kastrup
2007-05-11 23:27 ` Karoly Lorentey
2007-05-12 7:53 ` David Kastrup
2007-05-12 12:09 ` Multi-tty design (Re: Reordering etc/NEWS) Károly Lo"rentey
2007-05-12 13:34 ` David Kastrup
2007-05-12 17:21 ` Karoly Lorentey
2007-05-12 18:03 ` David Kastrup
2007-05-13 11:08 ` Károly Lőrentey
2007-05-13 12:50 ` David Kastrup
2007-05-13 16:41 ` David Kastrup
2007-05-13 17:04 ` Andreas Schwab
2007-05-13 17:18 ` David Kastrup
2007-05-13 18:11 ` Andreas Schwab
2007-05-13 18:17 ` David Kastrup
2007-05-13 18:22 ` Dan Nicolaescu
2007-05-13 20:13 ` David Kastrup
2007-05-13 20:41 ` David Kastrup
2007-05-13 21:11 ` David Kastrup
2007-05-22 0:39 ` Giorgos Keramidas
2007-05-13 21:18 ` Dan Nicolaescu
2007-05-14 6:33 ` David Kastrup
2007-05-13 21:05 ` Dan Nicolaescu
2007-05-14 10:11 ` Karoly Lorentey
2007-05-14 10:37 ` David Kastrup
2007-05-14 11:35 ` Andreas Schwab
2007-05-14 12:24 ` David Kastrup
2007-05-14 12:45 ` Andreas Schwab
2007-05-14 12:52 ` David Kastrup
2007-05-14 13:36 ` Andreas Schwab
2007-05-14 13:41 ` David Kastrup
2007-05-14 13:42 ` Andreas Schwab
2007-05-14 16:48 ` Dan Nicolaescu
2007-05-14 17:29 ` David Kastrup
2007-05-14 18:19 ` Dan Nicolaescu
2007-05-14 19:07 ` David Kastrup
2007-05-14 20:04 ` Dan Nicolaescu
2007-05-14 20:24 ` David Kastrup
2007-05-14 21:02 ` Dan Nicolaescu
2007-05-14 21:20 ` Jason Rumney
2007-05-14 21:49 ` Dan Nicolaescu
2007-05-14 22:00 ` David Kastrup
2007-05-15 19:38 ` Richard Stallman
2007-05-14 21:27 ` David Kastrup
2007-05-14 22:13 ` Dan Nicolaescu
2007-05-14 22:27 ` David Kastrup
2007-05-14 22:38 ` Thien-Thi Nguyen
2007-05-14 22:44 ` David Kastrup
2007-05-14 23:03 ` Multi-tty design Nick Roberts
2007-05-14 23:29 ` David Kastrup
2007-05-15 7:44 ` Multi-tty design (Re: Reordering etc/NEWS) Dan Nicolaescu
2007-05-15 8:24 ` Jason Rumney
2007-05-16 1:51 ` Karoly Lorentey
2007-05-14 22:59 ` Jason Rumney
2007-05-14 23:22 ` Miles Bader
2007-05-14 22:42 ` joakim
2007-05-14 22:55 ` David Kastrup
2007-05-14 22:50 ` Dan Nicolaescu
2007-05-14 23:05 ` Lennart Borgman (gmail)
2007-05-15 7:41 ` David Kastrup
2007-05-15 16:48 ` Lennart Borgman (gmail)
2007-05-14 22:35 ` Thien-Thi Nguyen
2007-05-15 15:53 ` Karoly Lorentey
2007-05-16 1:41 ` Karoly Lorentey
2007-05-16 15:41 ` Stefan Monnier
2007-05-17 13:12 ` David Kastrup
2007-05-17 15:31 ` Károly Lo"rentey
2007-05-17 17:00 ` David Kastrup
2007-05-17 20:02 ` Ken Raeburn
2007-05-17 21:17 ` David Kastrup
2007-05-18 3:36 ` Károly Lőrentey
2007-05-17 22:51 ` Stefan Monnier
2007-05-18 2:58 ` Karoly Lorentey
2007-05-18 7:19 ` David Kastrup
2007-05-18 11:04 ` Karoly Lorentey
2007-05-18 11:48 ` David Kastrup
2007-05-18 11:58 ` Karoly Lorentey
2007-05-18 2:52 ` Miles Bader
2007-05-17 22:46 ` Stefan Monnier
2007-05-17 14:35 ` Károly Lo"rentey
2007-05-17 9:59 ` Richard Stallman
2007-05-17 14:05 ` Karoly Lorentey
2007-05-17 16:46 ` David Kastrup
2007-05-17 23:11 ` Stefan Monnier
2007-05-18 7:36 ` David Kastrup
2007-05-18 14:24 ` Stefan Monnier
2007-05-18 14:49 ` David Kastrup
2007-05-18 16:27 ` Stefan Monnier
2007-05-20 9:04 ` David Kastrup
2007-05-21 13:15 ` Stefan Monnier
2007-05-21 13:35 ` David Kastrup
2007-05-22 1:54 ` Miles Bader
2007-05-22 6:37 ` David Kastrup
2007-05-22 15:49 ` Richard Stallman
2007-05-22 21:26 ` David Kastrup
2007-05-23 18:55 ` Richard Stallman
2007-05-23 19:24 ` David Kastrup
2007-05-24 10:55 ` Richard Stallman
2007-05-24 11:04 ` David Kastrup
2007-05-18 15:18 ` Eli Zaretskii
2007-05-18 2:47 ` Karoly Lorentey
2007-05-18 8:14 ` David Kastrup
2007-05-18 11:55 ` Karoly Lorentey [this message]
2007-05-18 12:24 ` David Kastrup
2007-05-18 17:40 ` Karoly Lorentey
2007-05-18 18:18 ` David Kastrup
2007-05-18 23:09 ` Richard Stallman
2007-05-20 18:13 ` Károly Lo"rentey
2007-05-14 21:05 ` David Kastrup
2007-05-12 21:52 ` Richard Stallman
2007-05-12 16:48 ` Reordering etc/NEWS Richard Stallman
2007-05-10 10:24 ` joakim
2007-05-10 10:24 ` Jason Rumney
2007-05-11 22:58 ` Multi-tty branch status (Re: Reordering etc/NEWS) Karoly Lorentey
2007-05-12 4:20 ` Glenn Morris
2007-05-12 6:48 ` Kalle Olavi Niemitalo
2007-05-12 7:58 ` David Kastrup
2007-05-12 16:48 ` Richard Stallman
2007-05-12 10:30 ` Károly Lo"rentey
2007-05-12 11:11 ` David Kastrup
2007-05-12 21:52 ` Richard Stallman
2007-05-12 16:48 ` Richard Stallman
2007-05-12 17:25 ` Karoly Lorentey
2007-05-10 10:28 ` Reordering etc/NEWS YAMAMOTO Mitsuharu
2007-05-09 22:58 ` Nick Roberts
2007-05-10 6:21 ` David Kastrup
2007-05-10 1:23 ` Stefan Monnier
2007-05-10 1:43 ` Karl Fogel
2007-05-11 7:42 ` Richard Stallman
2007-05-11 8:03 ` Kenichi Handa
2007-05-11 8:34 ` Nick Roberts
2007-05-11 8:44 ` Merging multitty (was: Reordering etc/NEWS) David Kastrup
2007-05-11 9:20 ` Merging multitty Jason Rumney
2007-05-11 10:00 ` David Kastrup
2007-05-11 10:25 ` Jason Rumney
2007-05-11 11:01 ` David Kastrup
2007-05-11 21:05 ` Karoly Lorentey
2007-05-12 16:48 ` Richard Stallman
2007-05-12 17:58 ` David Kastrup
2007-05-14 10:52 ` Kenichi Handa
2007-05-12 19:32 ` Dan Nicolaescu
2007-05-12 19:42 ` David Kastrup
2007-05-12 20:19 ` Dan Nicolaescu
2007-05-12 20:27 ` David Kastrup
2007-05-12 20:30 ` Samium Gromoff
2007-05-11 21:10 ` Károly Lo"rentey
2007-05-11 12:00 ` Kenichi Handa
2007-05-11 13:14 ` David Kastrup
2007-05-11 13:33 ` Juanma Barranquero
2007-05-11 13:51 ` David Kastrup
2007-05-11 13:57 ` David Kastrup
2007-05-11 14:09 ` Jason Rumney
2007-05-11 14:17 ` Juanma Barranquero
2007-05-11 14:34 ` Miles Bader
2007-05-11 21:34 ` Karoly Lorentey
2007-05-12 7:43 ` Eli Zaretskii
2007-05-11 13:34 ` merging Unicode branch and availability of Windows binaries Drew Adams
2007-05-14 14:16 ` Drew Adams
2007-05-14 14:30 ` David Kastrup
2007-05-14 15:05 ` Drew Adams
2007-05-14 17:32 ` David Kastrup
2007-05-11 21:56 ` Merging multitty Richard Stallman
2007-05-11 9:45 ` Miles Bader
2007-05-11 10:02 ` David Kastrup
2007-05-11 21:56 ` Richard Stallman
2007-05-13 1:33 ` Miles Bader
2007-05-13 3:11 ` Nick Roberts
2007-05-13 3:27 ` Miles Bader
2007-05-13 4:00 ` Nick Roberts
2007-05-13 4:21 ` Miles Bader
2007-05-13 12:43 ` Karoly Lorentey
2007-05-14 8:08 ` Richard Stallman
2007-05-14 10:19 ` Miles Bader
2007-05-14 11:02 ` Karoly Lorentey
2007-05-14 14:46 ` Kim F. Storm
2007-05-15 9:46 ` Richard Stallman
2007-05-15 20:49 ` Eli Zaretskii
[not found] ` <4649F799.3050108@lorentey.hu>
2007-05-16 1:39 ` Richard Stallman
2007-05-10 13:06 ` Reordering etc/NEWS Richard Stallman
2007-05-10 14:14 ` Juanma Barranquero
2007-05-10 14:25 ` David Kastrup
2007-05-10 14:49 ` Juanma Barranquero
2007-05-10 17:15 ` David Kastrup
2007-05-10 17:21 ` Juanma Barranquero
2007-05-10 15:53 ` Karl Fogel
2007-05-10 17:39 ` Ken Manheimer
2007-05-10 17:44 ` Juanma Barranquero
2007-05-11 8:50 ` Eli Zaretskii
2007-05-11 11:23 ` Juanma Barranquero
2007-05-11 15:46 ` Eli Zaretskii
2007-05-11 16:09 ` Juanma Barranquero
2007-05-11 17:43 ` Eli Zaretskii
2007-05-11 17:49 ` Karl Fogel
2007-05-11 18:26 ` Eli Zaretskii
2007-05-11 18:37 ` Karl Fogel
2007-05-12 7:22 ` Eli Zaretskii
2007-05-12 7:59 ` David Kastrup
2007-05-12 13:24 ` Eli Zaretskii
2007-05-12 16:47 ` Richard Stallman
2007-05-11 18:48 ` Richard Stallman
2007-05-11 21:46 ` Karl Fogel
2007-05-10 17:13 ` David Kastrup
2007-05-11 18:48 ` Richard Stallman
2007-05-07 16:50 ` Richard Stallman
2007-05-07 21:37 ` Eli Zaretskii
2007-05-07 21:56 ` David Kastrup
2007-05-07 10:05 ` Alan Mackenzie
2007-05-07 10:12 ` David Kastrup
2007-05-07 13:39 ` Jay Belanger
2007-05-07 13:45 ` David Kastrup
2007-05-07 13:54 ` Thomas Hühn
2007-05-07 14:03 ` David Kastrup
2007-05-07 14:57 ` Chong Yidong
2007-05-07 23:28 ` Richard Stallman
2007-05-07 23:28 ` Richard Stallman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=464D9449.4020108@lorentey.hu \
--to=karoly@lorentey.hu \
--cc=dak@gnu.org \
--cc=dann@ics.uci.edu \
--cc=emacs-devel@gnu.org \
--cc=joakim@verona.se \
--cc=schwab@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).