all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: David Kastrup <dak@gnu.org>
To: Chong Yidong <cyd@stupidchicken.com>
Cc: emacs-devel@gnu.org, jasonr@gnu.org, rms@gnu.org,
	monnier@iro.umontreal.ca
Subject: Re: Post-22.1 development?
Date: Wed, 13 Jun 2007 21:15:45 +0200	[thread overview]
Message-ID: <85ejkfvf6m.fsf@lola.goethe.zz> (raw)
In-Reply-To: <87vedrzpib.fsf@stupidchicken.com> (Chong Yidong's message of "Wed\, 13 Jun 2007 14\:19\:08 -0400")

Chong Yidong <cyd@stupidchicken.com> writes:

> Richard Stallman <rms@gnu.org> writes:
>
>>     There are two clean ways to do this is: (i) extend
>>     process-environment so that if a symbol occurs in the list, as
>>     opposed to a string, that symbol names a list whose elements
>>     are to be used (as though they had been inserted in
>>     process-environment).  Then the final element for all default
>>     values of process-environment would include the symbol
>>     `global-process-environment'; or (ii) extend
>>     process-environment so that an element of `t' means "the global
>>     value of this variable" (similar to hook variables).
>>
>> These are more elegant, but I am not sure it matters in practice.
>>
>>     Either of these approaches would be backward compatible for
>>     third-party than the shared-tail idea, but IMHO the gain in
>>     cleanliness more than makes up for it.
>>
>> I don't think so, and the reason is that this won't clean up the
>> code in Lisp programs at all.  On the contrary, it would complicate
>> them.
>>
>> In other words, elegance of the mechanism is not the same thing
>> as simplicity of the user code.
>>
>> We use method ii for hooks, but the complexity is hidden inside
>> two standard functions.
>
> In this case, there are setenv and getenv.
>
> As for whether elegance of the mechanism matters in practice,
> consider the case where you want to (i) change a variable in the
> local environment and leave the global one unchanged,

Done by manipulating the front of the list.

> or (ii) ensure that a change you make in process-environment affects
> the global environment too.

Done by manipulating the tail.

> Assume you don't want to use setenv and getenv (if you do use setenv
> and getenv, the point is moot, since the more elegant mechanism wins
> anyway.)

The point is not moot since setenv is supposed to have only local
effects if it is called after let-binding process-environment to a
copy of itself.

> With the shared-tail mechanism, you would need to grep for the empty
> string "", and hope that that's really the correct marker separating
> the local and global lists, not a spurious marker inserted by
> someone else.

You'd use global-process-environment, which incidentally starts with
an empty string.

As to someone inserting spurious markers: that is actually nothing to
worry about.  People tampering with internals deserve what they get.

> Worse, there is no way to know for certain.

Which is just as well, since the mechanism is supposed to be workable
for _both_ sharing most of the environment as well as having most of
it disparate.  It keeps open our options for now without sacrificing
backward compatibility.

At one point of time we can close down various options, and at another
point of time we can close down backward compatibility.  This
implementation allows us to tackle this one step at a time.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

  reply	other threads:[~2007-06-13 19:15 UTC|newest]

Thread overview: 178+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-04  3:31 Post-22.1 development? Chong Yidong
2007-06-04  6:59 ` Release announcement [was Re: Post-22.1 development?] Glenn Morris
2007-06-04  8:44   ` Kim F. Storm
2007-06-04 23:20     ` Richard Stallman
2007-06-04  9:11   ` Yavor Doganov
2007-06-04  8:58 ` Post-22.1 development? Andreas Schwab
2007-06-04  9:20   ` Ulrich Mueller
2007-06-04  9:24     ` Andreas Schwab
2007-06-04 19:28       ` Eli Zaretskii
2007-06-04  9:25     ` David Kastrup
2007-06-04 19:31       ` Eli Zaretskii
2007-06-04 23:20     ` Richard Stallman
2007-06-04 16:44 ` Richard Stallman
2007-06-04 17:31   ` Drew Adams
2007-06-17 21:49     ` Richard Stallman
2007-06-04 18:53   ` new Emacs maintainer(s)? (was: Re: Post-22.1 development?) Dan Nicolaescu
2007-06-04 19:34     ` new Emacs maintainer(s)? David Kastrup
2007-06-04 19:37       ` Eli Zaretskii
2007-06-04 19:44         ` David Kastrup
2007-06-04 20:01           ` Lennart Borgman (gmail)
2007-06-05  5:17     ` new Emacs maintainer(s)? (was: Re: Post-22.1 development?) Richard Stallman
2007-06-05 16:32       ` Dan Nicolaescu
2007-06-05 16:39         ` new Emacs maintainer(s)? David Kastrup
2007-06-05 18:39           ` Karl Fogel
2007-06-06  0:21         ` Chong Yidong
2007-06-06  7:56           ` Kim F. Storm
2007-06-06  8:45             ` David Kastrup
2007-06-06  9:22               ` Juanma Barranquero
2007-06-06 10:25               ` Kim F. Storm
2007-06-06 10:54                 ` David Kastrup
2007-06-06 12:02                   ` Thien-Thi Nguyen
2007-06-06 12:06                     ` David Kastrup
2007-06-06 13:19                       ` Thien-Thi Nguyen
2007-06-06 13:44                         ` David Kastrup
2007-06-06 12:38                   ` Kenichi Handa
2007-06-06 15:11                     ` Kim F. Storm
2007-06-06 19:33                       ` Chong Yidong
2007-06-06 12:29           ` Stefan Monnier
2007-06-07  5:33             ` Miles Bader
2007-06-07  6:12               ` Kenichi Handa
2007-06-04 19:31   ` Post-22.1 development? David Kastrup
2007-06-04 21:18     ` Jason Rumney
2007-06-05  5:17       ` Richard Stallman
2007-06-05 16:10       ` Chong Yidong
2007-06-05 21:35         ` Nick Roberts
2007-06-05 22:33         ` Richard Stallman
2007-06-06  7:58           ` Michael Albinus
2007-06-06 13:07             ` Johan Bockgård
2007-06-06 13:47               ` David Kastrup
2007-06-07 15:45               ` Michael Albinus
2007-06-07 17:05                 ` Andreas Schwab
2007-06-07 19:01                   ` Michael Albinus
2007-06-07 17:24                 ` Stefan Monnier
2007-06-09  9:50                   ` David House
2007-06-06 22:09             ` Richard Stallman
2007-06-07 20:25               ` Michael Albinus
2007-06-08 14:27           ` Vinicius Jose Latorre
2007-06-10 15:59   ` Dan Nicolaescu
2007-06-11  9:44     ` Richard Stallman
2007-06-11 10:04       ` David Kastrup
2007-06-11 11:25         ` Miles Bader
2007-06-11 17:02         ` Dan Nicolaescu
2007-06-11 19:08           ` David Kastrup
2007-06-11 22:23             ` Dan Nicolaescu
2007-06-13  8:07           ` Richard Stallman
2007-06-12 16:00         ` Richard Stallman
2007-06-12 16:29           ` Stefan Monnier
2007-06-12 16:57             ` Jason Rumney
2007-06-12 17:43               ` Stefan Monnier
2007-06-12 22:09                 ` David Kastrup
2007-06-12 23:38                   ` Chong Yidong
2007-06-13 16:22                     ` Richard Stallman
2007-06-13 18:19                       ` Chong Yidong
2007-06-13 19:15                         ` David Kastrup [this message]
2007-06-13 18:44                     ` David Kastrup
2007-06-13 19:22                       ` Chong Yidong
2007-06-13 19:47                         ` David Kastrup
2007-06-13 20:08                       ` Jeremy Maitin-Shepard
2007-06-14  6:11                         ` Miles Bader
2007-06-14  6:18                           ` David Kastrup
2007-06-14  6:57                             ` Miles Bader
2007-06-14  7:33                               ` David Kastrup
2007-06-14  8:08                                 ` Miles Bader
2007-06-14  8:39                                   ` David Kastrup
2007-06-14  9:22                                     ` Miles Bader
2007-06-13  0:09                   ` Stefan Monnier
2007-06-13 16:22                     ` Richard Stallman
2007-06-13 17:39                       ` Stefan Monnier
2007-06-13 16:21                   ` Richard Stallman
2007-06-13 20:57                     ` Michael Albinus
2007-06-13 22:17                       ` Stefan Monnier
2007-06-15  6:09                         ` Michael Albinus
2007-06-15 14:02                           ` Stefan Monnier
2007-06-14  7:49               ` Richard Stallman
2007-06-14  8:57                 ` David Kastrup
2007-06-15  8:48                   ` Richard Stallman
2007-06-15  9:02                     ` David Kastrup
2007-06-16 18:51                       ` Richard Stallman
2007-06-04 19:35 ` Eli Zaretskii
2007-06-05  5:17   ` Richard Stallman
2007-06-05  6:17     ` David Kastrup
2007-06-05 19:17       ` Richard Stallman
2007-06-05 20:52         ` David Kastrup
2007-06-06 16:59           ` Richard Stallman
2007-06-05 19:54       ` Eli Zaretskii
2007-06-05 21:13         ` David Kastrup
2007-06-06 16:59           ` Richard Stallman
2007-06-06 21:10             ` Nick Roberts
2007-06-07  6:51               ` Jan Djärv
2007-06-07  6:57                 ` Miles Bader
2007-06-07  8:21                   ` Jan Djärv
2007-06-07  9:04                     ` Nick Roberts
2007-06-08 14:23                     ` Richard Stallman
2007-06-08 18:06                       ` Jan Djärv
2007-06-07 18:33                 ` Tom Tromey
2007-06-07 18:53                   ` David House
2007-06-07 18:47                     ` Tom Tromey
2007-06-08  5:54                   ` Jan Djärv
2007-06-08  7:17                     ` IPP under emacs [was: Re: Post-22.1 development?] Thien-Thi Nguyen
2007-06-08 14:25                       ` Vinicius Jose Latorre
2007-06-08 18:37                         ` Ken Raeburn
2007-06-08 20:20                           ` Jason Rumney
2007-06-08 20:59                             ` Ken Raeburn
2007-06-08 21:16                               ` Jason Rumney
2007-06-08 21:40                                 ` Ken Raeburn
2007-06-08 21:43                                   ` Jason Rumney
2007-06-09  1:41                                     ` Ken Raeburn
2007-06-09  9:46                         ` Richard Stallman
2007-06-10  3:47                           ` Vinicius Jose Latorre
2007-06-10  7:11                             ` Jan Djärv
2007-06-10 13:18                             ` Richard Stallman
2007-06-08 17:49                   ` Post-22.1 development? Ken Raeburn
2007-06-08 18:41                     ` Andreas Schwab
2007-06-08 20:12                     ` Tom Tromey
2007-06-08 14:23                 ` Richard Stallman
2007-06-08 18:01                   ` Jan Djärv
2007-06-08 19:20                     ` Stefan Monnier
2007-06-08 22:25                       ` desktop.el/session.el [was: Post-22.1 development?] Davis Herring
2007-06-08 23:06                         ` desktop.el/session.el Stefan Monnier
2007-06-09 21:32                         ` desktop.el/session.el Juri Linkov
2007-06-09 20:24                     ` Post-22.1 development? Richard Stallman
2007-06-10  7:23                       ` Jan Djärv
2007-06-09 20:24                     ` Richard Stallman
2007-06-08  7:11               ` Richard Stallman
2007-06-08  9:01                 ` Nick Roberts
2007-06-07 19:48             ` Sean O'Rourke
2007-06-07 21:18               ` Nick Roberts
2007-06-07 22:17                 ` Sean O'Rourke
2007-06-07 22:53                   ` Miles Bader
2007-06-07 23:58                   ` Alan Mackenzie
2007-06-07 23:06                     ` 48 line console [was Re: Post-22.1 development]? Nick Roberts
2007-06-08  0:03                       ` 48 line console Thien-Thi Nguyen
2007-06-08  1:34                         ` Nick Roberts
2007-06-08  7:19                           ` Thien-Thi Nguyen
2007-06-08  8:59                             ` Nick Roberts
2007-06-08  9:50                               ` Thien-Thi Nguyen
2007-06-08 10:40                       ` 48 line console [was Re: Post-22.1 development]? Alan Mackenzie
2007-06-07 22:25               ` Post-22.1 development? David Reitter
2007-06-07 22:42                 ` Sean O'Rourke
2007-06-07 22:53                   ` David Reitter
2007-06-08 13:57                     ` Mathias Dahl
2007-06-08 14:24                     ` Richard Stallman
2007-06-08 17:23                       ` csant
2007-06-08 19:17                         ` Jan Djärv
2007-06-08  1:23                 ` YAMAMOTO Mitsuharu
2007-06-05 10:24 ` Nick Roberts
2007-06-05 10:55   ` David Kastrup
2007-06-05 11:19   ` Kenichi Handa
2007-06-05 21:07     ` Nick Roberts
2007-06-06  0:37       ` Kenichi Handa
2007-06-05 19:17   ` Richard Stallman
2007-06-05 19:55     ` Jason Rumney
2007-06-06 16:58       ` Richard Stallman
2007-06-05 21:22     ` Nick Roberts
2007-06-06 16:59       ` Richard Stallman
2007-06-06 15:28 ` Neal Becker
2007-06-06 15:32   ` David House
2007-06-12 18:39 ` Jay Belanger

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=85ejkfvf6m.fsf@lola.goethe.zz \
    --to=dak@gnu.org \
    --cc=cyd@stupidchicken.com \
    --cc=emacs-devel@gnu.org \
    --cc=jasonr@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=rms@gnu.org \
    /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 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.