unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
@ 2012-07-17 16:40 Drew Adams
  2012-07-17 17:40 ` Eli Zaretskii
  0 siblings, 1 reply; 20+ messages in thread
From: Drew Adams @ 2012-07-17 16:40 UTC (permalink / raw)
  To: 11959

I do not see this warning message with emacs -Q, but I see it with my
setup.  I do not find anywhere in my setup where I refer to site-lisp,
but perhaps I do somewhere.
 
When I start Emacs this warning is the first thing in buffer *Messages*:
 
Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
 
My directory structure is this:
 
C:/Emacs-24-2012-07-16 contains the following, all of which comes
from the Windows binary I downloaded from GNU:
 
 bin/
 etc/
 info/
 leim/
 lisp/
 site-lisp/
 .gdbinit
 BUGS
 COPYING
 README
 README.W32
 
I made no changes to the directory content or structure, apart from
renaming the top-level directory to Emacs-24-2012-07-16.
 
So why the warning?  Why is Emacs looking for a site-lisp directory above
directory Emacs-24-2012-07-16?  And what does this all mean?

In GNU Emacs 24.1.50.1 (i386-mingw-nt5.1.2600)
 of 2012-07-16 on MARVIN
Bzr revision: 109106 fabian@anue.biz-20120716171839-0dv19ib9h6vfggfn
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.6) --no-opt --enable-checking --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include
 -ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include
 -ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'
 






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-17 16:40 bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist Drew Adams
@ 2012-07-17 17:40 ` Eli Zaretskii
  2012-07-17 17:42   ` Drew Adams
  2012-07-18 14:57   ` Eli Zaretskii
  0 siblings, 2 replies; 20+ messages in thread
From: Eli Zaretskii @ 2012-07-17 17:40 UTC (permalink / raw)
  To: Drew Adams; +Cc: 11959

> From: "Drew Adams" <drew.adams@oracle.com>
> Date: Tue, 17 Jul 2012 09:40:31 -0700
> 
> I do not see this warning message with emacs -Q, but I see it with my
> setup.  I do not find anywhere in my setup where I refer to site-lisp,
> but perhaps I do somewhere.
>  
> When I start Emacs this warning is the first thing in buffer *Messages*:
>  
> Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.

It's a bug, I've seen it since a few days ago and will get to fixing
it when I have time (unless someone beats me to it).

For now, just create that directory, to get it to shut up.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-17 17:40 ` Eli Zaretskii
@ 2012-07-17 17:42   ` Drew Adams
  2012-07-18 14:57   ` Eli Zaretskii
  1 sibling, 0 replies; 20+ messages in thread
From: Drew Adams @ 2012-07-17 17:42 UTC (permalink / raw)
  To: 'Eli Zaretskii'; +Cc: 11959

> It's a bug, I've seen it since a few days ago and will get to fixing
> it when I have time (unless someone beats me to it).

OK, thanks.

> For now, just create that directory, to get it to shut up.

I don't mind it for now.






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-17 17:40 ` Eli Zaretskii
  2012-07-17 17:42   ` Drew Adams
@ 2012-07-18 14:57   ` Eli Zaretskii
  2012-07-18 15:20     ` Drew Adams
  2012-07-29 23:50     ` Glenn Morris
  1 sibling, 2 replies; 20+ messages in thread
From: Eli Zaretskii @ 2012-07-18 14:57 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 11959

> Date: Tue, 17 Jul 2012 20:40:10 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 11959@debbugs.gnu.org
> 
> > From: "Drew Adams" <drew.adams@oracle.com>
> > Date: Tue, 17 Jul 2012 09:40:31 -0700
> > 
> > I do not see this warning message with emacs -Q, but I see it with my
> > setup.  I do not find anywhere in my setup where I refer to site-lisp,
> > but perhaps I do somewhere.
> >  
> > When I start Emacs this warning is the first thing in buffer *Messages*:
> >  
> > Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
> 
> It's a bug, I've seen it since a few days ago and will get to fixing
> it when I have time (unless someone beats me to it).

The reason for this are the changes made by Glenn in revision 108939.
Prior to those changes, when load-path was determined by the value of
EMACSLOADPATH environment variable, the resulting list was never
checked to verify that every directory there exists.  Now load-path
determined that way _is_ checked.

The other part of the puzzle is that when Emacs on Windows starts, it
always defines EMACSLOADPATH and puts 2 site-lisp directories into it:
one that is in the same tree as the binary, which is supposed to be
version dependent, and another one that is a sibling of the root of
the installed tree, which is supposed to be version-independent.  This
is for compatibility with Emacs on Posix platforms, where we also push
2 directories onto load-path: /usr/local/share/emacs/XY.Z/site-lisp
and /usr/local/share/emacs/site-lisp, respectively.  However, unlike
on Unix, on Windows there's no test whether these directories actually
exist, because this was never a problem with the old code.

But now, that the value of EMACSLOADPATH is being checked, we are
seeing these warnings (unless Emacs is invoked with -Q), and I'm
guessing that most Emacs users on Windows don't have a
version-independent site-lisp directory, so most of them will be
affected.

It would be easy enough to make sure the site-lisp directories exist
before adding them to EMACSLOADPATH on Windows.  But before doing so,
I'd like to understand why was the behavior in init_lread changed so
as to check EMACSLOADPATH in the first place?  And if we do want to
check that, why not exempt the site-lisp directories from the need to
exist, like we do in the case where EMACSLOADPATH is not set?





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-18 14:57   ` Eli Zaretskii
@ 2012-07-18 15:20     ` Drew Adams
  2012-07-18 17:08       ` Eli Zaretskii
  2012-07-29 23:50     ` Glenn Morris
  1 sibling, 1 reply; 20+ messages in thread
From: Drew Adams @ 2012-07-18 15:20 UTC (permalink / raw)
  To: 'Eli Zaretskii', 'Glenn Morris'; +Cc: 11959

> The reason for this are the changes made by Glenn in revision 108939.
> Prior to those changes, when load-path was determined by the value of
> EMACSLOADPATH environment variable, the resulting list was never
> checked to verify that every directory there exists.  Now load-path
> determined that way _is_ checked.

May I ask why?  What was the problem with allowing non-existing directories in
`load-path'?  A priori, that sounds like the _right_ thing to do.  And what is
done now whenever one such is encountered - just print a warning?

> The other part of the puzzle is that when Emacs on Windows starts, it
> always defines EMACSLOADPATH and puts 2 site-lisp directories into it:
> one that is in the same tree as the binary, which is supposed to be
> version dependent, and another one that is a sibling of the root of
> the installed tree, which is supposed to be version-independent.

You mean that it does so systematically, in a hard-coded fashion?  Or does it
put those there only if such directories exist?

> This is for compatibility with Emacs on Posix platforms, where we
> also push 2 directories onto load-path:
> /usr/local/share/emacs/XY.Z/site-lisp and
> /usr/local/share/emacs/site-lisp, respectively.  However, unlike
> on Unix, on Windows there's no test whether these directories actually
> exist, because this was never a problem with the old code.
> 
> But now, that the value of EMACSLOADPATH is being checked, we are
> seeing these warnings (unless Emacs is invoked with -Q), and I'm
> guessing that most Emacs users on Windows don't have a
> version-independent site-lisp directory, so most of them will be
> affected.
> 
> It would be easy enough to make sure the site-lisp directories exist
> before adding them to EMACSLOADPATH on Windows.  But before doing so,
> I'd like to understand why was the behavior in init_lread changed so
> as to check EMACSLOADPATH in the first place?

That was my question also.  Just what problem is that trying to solve?

> And if we do want to check that, why not exempt the site-lisp
> directories from the need to exist, like we do in the case where
> EMACSLOADPATH is not set?

Such exceptionalism smacks of fragile design.  What applies to site-lisp might
apply to some other directory as well (tomorrow, if not today).

But I don't have a puppy in this critter crawl - just curious why the change was
made.






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-18 15:20     ` Drew Adams
@ 2012-07-18 17:08       ` Eli Zaretskii
  0 siblings, 0 replies; 20+ messages in thread
From: Eli Zaretskii @ 2012-07-18 17:08 UTC (permalink / raw)
  To: Drew Adams; +Cc: 11959

> From: "Drew Adams" <drew.adams@oracle.com>
> Cc: <11959@debbugs.gnu.org>
> Date: Wed, 18 Jul 2012 08:20:15 -0700
> 
> > The other part of the puzzle is that when Emacs on Windows starts, it
> > always defines EMACSLOADPATH and puts 2 site-lisp directories into it:
> > one that is in the same tree as the binary, which is supposed to be
> > version dependent, and another one that is a sibling of the root of
> > the installed tree, which is supposed to be version-independent.
> 
> You mean that it does so systematically, in a hard-coded fashion?  Or does it
> put those there only if such directories exist?

On Windows, there's no test for their existence.

> > And if we do want to check that, why not exempt the site-lisp
> > directories from the need to exist, like we do in the case where
> > EMACSLOADPATH is not set?
> 
> Such exceptionalism smacks of fragile design.  What applies to site-lisp might
> apply to some other directory as well (tomorrow, if not today).

Not exactly.  The other directories, 'lisp' and 'leim', are _required_
by Emacs, otherwise it's an incomplete package, i.e. a broken
installation.  By contrast, 'site-lisp' is not required for Emacs
operation, it's a convenience for the user to put her local stuff in.
On Unix, Emacs always tested whether site-lisp exists before adding it
to load-path, with the rationale that it's not required.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-18 14:57   ` Eli Zaretskii
  2012-07-18 15:20     ` Drew Adams
@ 2012-07-29 23:50     ` Glenn Morris
  2012-07-29 23:58       ` Glenn Morris
  2012-07-30  3:34       ` Eli Zaretskii
  1 sibling, 2 replies; 20+ messages in thread
From: Glenn Morris @ 2012-07-29 23:50 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 11959

Eli Zaretskii wrote:

> It would be easy enough to make sure the site-lisp directories exist
> before adding them to EMACSLOADPATH on Windows. 

That's probably the simplest solution.
Or make the install create them, as the POSIX installation does.

Actually, my recommendation would be to stop setting EMACSLOADPATH (and
the other EMACS* environment variables...) on MS Windows, similar to
what I recently did for the NS port. The only time I ever hear about
EMACSLOADPATH is it causing subtle problems (eg building one version of
Emacs within another, the recent several uni-mirror related startup
failures, I'm guessing).

> But before doing so, I'd like to understand why was the behavior in
> init_lread changed so as to check EMACSLOADPATH in the first place?

Because I saw no reason to treat EMACSLOADPATH directories differently
to the normal directories. Users should still be warned if they are
missing. (I guess very few people are using EMACSLOADPATH
intentionally though.)

> And if we do want to check that, why not exempt the site-lisp
> directories from the need to exist, like we do in the case where
> EMACSLOADPATH is not set?

Because I assumed people setting EMACSLOADPATH would only include
existing directories, and would want to be warned about missing ones.
I overlooked that MS Windows adds site-lisp directories without checking
they exist. Also there's no clean way to detect what a site-lisp
directory is in the EMACSLOADPATH case (simply checking for site-lisp in
the name is not robust).





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-29 23:50     ` Glenn Morris
@ 2012-07-29 23:58       ` Glenn Morris
  2012-07-30  3:34       ` Eli Zaretskii
  1 sibling, 0 replies; 20+ messages in thread
From: Glenn Morris @ 2012-07-29 23:58 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 11959

Glenn Morris wrote:

> Eli Zaretskii wrote:
>
>> It would be easy enough to make sure the site-lisp directories exist
>> before adding them to EMACSLOADPATH on Windows. 
>
> That's probably the simplest solution.

PS or stick the warning back (effectively) inside #ifndef WINDOWSNT if
you prefer.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-29 23:50     ` Glenn Morris
  2012-07-29 23:58       ` Glenn Morris
@ 2012-07-30  3:34       ` Eli Zaretskii
  2012-07-30  6:05         ` Jan Djärv
                           ` (2 more replies)
  1 sibling, 3 replies; 20+ messages in thread
From: Eli Zaretskii @ 2012-07-30  3:34 UTC (permalink / raw)
  To: Glenn Morris, Stefan Monnier, Chong Yidong; +Cc: 11959

> From: Glenn Morris <rgm@gnu.org>
> Cc: 11959@debbugs.gnu.org
> Date: Sun, 29 Jul 2012 19:50:28 -0400
> 
> Eli Zaretskii wrote:
> 
> > It would be easy enough to make sure the site-lisp directories exist
> > before adding them to EMACSLOADPATH on Windows. 
> 
> That's probably the simplest solution.

I will do that, if this is the consensus.  Stefan, Chong, what say
you?

> Or make the install create them, as the POSIX installation does.

The problem happens when you run the uninstalled binary as well.

> Actually, my recommendation would be to stop setting EMACSLOADPATH (and
> the other EMACS* environment variables...) on MS Windows, similar to
> what I recently did for the NS port.

I don't see how this is possible.  Emacs on Windows is built to be
relocatable, because many users install precompiled binaries in any
place they feel like.  So Emacs on Windows must determine its
load-path at run time.  By contrast, the mainline code relies on file
names hardwired into the executable at configure/build time, which is
a non-starter.  What other devices do we have for forcing load-path to
have a specific value, except setting EMACSLOADPATH?  I could, of
course, ifdef away the entire code that does that on lread.c, and put
there a Windows specific code instead, but is that really a better
alternative?

I would encourage to rewrite that code on all platforms to allow
relocation of the binary, since that cannot be bad on any platform.
But until that happens, do you see a better way than set
EMACSLOADPATH?

> > And if we do want to check that, why not exempt the site-lisp
> > directories from the need to exist, like we do in the case where
> > EMACSLOADPATH is not set?
> 
> Because I assumed people setting EMACSLOADPATH would only include
> existing directories, and would want to be warned about missing ones.
> I overlooked that MS Windows adds site-lisp directories without checking
> they exist. Also there's no clean way to detect what a site-lisp
> directory is in the EMACSLOADPATH case (simply checking for site-lisp in
> the name is not robust).

Checking for site-lisp is better than nothing, though.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-30  3:34       ` Eli Zaretskii
@ 2012-07-30  6:05         ` Jan Djärv
  2012-07-30 13:30           ` Eli Zaretskii
  2012-07-30  6:43         ` Glenn Morris
  2012-07-30 15:11         ` Glenn Morris
  2 siblings, 1 reply; 20+ messages in thread
From: Jan Djärv @ 2012-07-30  6:05 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Chong Yidong, 11959


30 jul 2012 kl. 05:34 skrev Eli Zaretskii:

>> From: Glenn Morris <rgm@gnu.org>
>> Cc: 11959@debbugs.gnu.org
>> Date: Sun, 29 Jul 2012 19:50:28 -0400
>> 
>> Eli Zaretskii wrote:
>> 
>>> It would be easy enough to make sure the site-lisp directories exist
>>> before adding them to EMACSLOADPATH on Windows. 
>> 
>> That's probably the simplest solution.
> 
> I will do that, if this is the consensus.  Stefan, Chong, what say
> you?
> 
>> Or make the install create them, as the POSIX installation does.
> 
> The problem happens when you run the uninstalled binary as well.
> 
>> Actually, my recommendation would be to stop setting EMACSLOADPATH (and
>> the other EMACS* environment variables...) on MS Windows, similar to
>> what I recently did for the NS port.
> 
> I don't see how this is possible.  Emacs on Windows is built to be
> relocatable, because many users install precompiled binaries in any
> place they feel like.  So Emacs on Windows must determine its
> load-path at run time.  By contrast, the mainline code relies on file
> names hardwired into the executable at configure/build time, which is
> a non-starter.  What other devices do we have for forcing load-path to
> have a specific value, except setting EMACSLOADPATH?  I could, of
> course, ifdef away the entire code that does that on lread.c, and put
> there a Windows specific code instead, but is that really a better
> alternative?

The NS-port is also fully relocatable and determines load-path at runtime.

	Jan D.






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-30  3:34       ` Eli Zaretskii
  2012-07-30  6:05         ` Jan Djärv
@ 2012-07-30  6:43         ` Glenn Morris
  2012-07-30 13:32           ` Eli Zaretskii
  2012-07-30 15:11         ` Glenn Morris
  2 siblings, 1 reply; 20+ messages in thread
From: Glenn Morris @ 2012-07-30  6:43 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Chong Yidong, 11959

Eli Zaretskii wrote:

> Emacs on Windows is built to be relocatable, because many users
> install precompiled binaries in any place they feel like. So Emacs on
> Windows must determine its load-path at run time. By contrast, the
> mainline code relies on file names hardwired into the executable at
> configure/build time, which is a non-starter. What other devices do we
> have for forcing load-path to have a specific value, except setting
> EMACSLOADPATH?

Define MS functions analogous to ns_etc_directory, ns_exec_path, and
ns_load_path. For simplicity/consistency, we can rename these to
something like "platform_etc_directory" etc (or reloc_, or whatever_),
then NS and MS Windows can use the same function names. Then we can just
replace the #ifdef HAVE_NS in callproc.c with #if defined HAVS_NS ||
defined WINDOWSNT.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-30  6:05         ` Jan Djärv
@ 2012-07-30 13:30           ` Eli Zaretskii
  0 siblings, 0 replies; 20+ messages in thread
From: Eli Zaretskii @ 2012-07-30 13:30 UTC (permalink / raw)
  To: Jan Djärv; +Cc: cyd, 11959

> From: Jan Djärv <jan.h.d@swipnet.se>
> Date: Mon, 30 Jul 2012 08:05:04 +0200
> Cc: Glenn Morris <rgm@gnu.org>,
>  Stefan Monnier <monnier@iro.umontreal.ca>,
>  Chong Yidong <cyd@gnu.org>,
>  11959@debbugs.gnu.org
> 
> 
> >> Actually, my recommendation would be to stop setting EMACSLOADPATH (and
> >> the other EMACS* environment variables...) on MS Windows, similar to
> >> what I recently did for the NS port.
> > 
> > I don't see how this is possible.  Emacs on Windows is built to be
> > relocatable, because many users install precompiled binaries in any
> > place they feel like.  So Emacs on Windows must determine its
> > load-path at run time.  By contrast, the mainline code relies on file
> > names hardwired into the executable at configure/build time, which is
> > a non-starter.  What other devices do we have for forcing load-path to
> > have a specific value, except setting EMACSLOADPATH?  I could, of
> > course, ifdef away the entire code that does that on lread.c, and put
> > there a Windows specific code instead, but is that really a better
> > alternative?
> 
> The NS-port is also fully relocatable and determines load-path at runtime.

Yeah, with "#ifdef HAVE_NS" around it.  That's what I meant by
"Windows specific code" above.






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-30  6:43         ` Glenn Morris
@ 2012-07-30 13:32           ` Eli Zaretskii
  2012-07-30 15:09             ` Glenn Morris
  0 siblings, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2012-07-30 13:32 UTC (permalink / raw)
  To: Glenn Morris; +Cc: cyd, 11959

> From: Glenn Morris <rgm@gnu.org>
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>,  Chong Yidong <cyd@gnu.org>,  11959@debbugs.gnu.org
> Date: Mon, 30 Jul 2012 02:43:47 -0400
> 
> Eli Zaretskii wrote:
> 
> > Emacs on Windows is built to be relocatable, because many users
> > install precompiled binaries in any place they feel like. So Emacs on
> > Windows must determine its load-path at run time. By contrast, the
> > mainline code relies on file names hardwired into the executable at
> > configure/build time, which is a non-starter. What other devices do we
> > have for forcing load-path to have a specific value, except setting
> > EMACSLOADPATH?
> 
> Define MS functions analogous to ns_etc_directory, ns_exec_path, and
> ns_load_path. For simplicity/consistency, we can rename these to
> something like "platform_etc_directory" etc (or reloc_, or whatever_),
> then NS and MS Windows can use the same function names. Then we can just
> replace the #ifdef HAVE_NS in callproc.c with #if defined HAVS_NS ||
> defined WINDOWSNT.

That's "Windows specific code" I alluded to.  If that's what we want,
I have no problems with that.  I just thought #ifdef's would be ugly.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-30 13:32           ` Eli Zaretskii
@ 2012-07-30 15:09             ` Glenn Morris
  0 siblings, 0 replies; 20+ messages in thread
From: Glenn Morris @ 2012-07-30 15:09 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: cyd, 11959

Eli Zaretskii wrote:

> That's "Windows specific code" I alluded to.  If that's what we want,
> I have no problems with that.  I just thought #ifdef's would be ugly.

I think it's a lot less ugly than one part of a program's startup
communicating with another part by means of a permanent change to the
program's environment.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-30  3:34       ` Eli Zaretskii
  2012-07-30  6:05         ` Jan Djärv
  2012-07-30  6:43         ` Glenn Morris
@ 2012-07-30 15:11         ` Glenn Morris
  2012-07-31 17:10           ` Eli Zaretskii
  2 siblings, 1 reply; 20+ messages in thread
From: Glenn Morris @ 2012-07-30 15:11 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Chong Yidong, 11959

Eli Zaretskii wrote:

> I would encourage to rewrite that code on all platforms to allow
> relocation of the binary, since that cannot be bad on any platform.

I think this would be pretty straightforward to implement (bascially
just copy what the NS port does), if considered generally desirable.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-30 15:11         ` Glenn Morris
@ 2012-07-31 17:10           ` Eli Zaretskii
  2012-08-01 20:32             ` Stefan Monnier
  0 siblings, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2012-07-31 17:10 UTC (permalink / raw)
  To: Glenn Morris; +Cc: cyd, 11959

> From: Glenn Morris <rgm@gnu.org>
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>,  Chong Yidong <cyd@gnu.org>,  11959@debbugs.gnu.org
> Date: Mon, 30 Jul 2012 11:11:09 -0400
> 
> Eli Zaretskii wrote:
> 
> > I would encourage to rewrite that code on all platforms to allow
> > relocation of the binary, since that cannot be bad on any platform.
> 
> I think this would be pretty straightforward to implement (bascially
> just copy what the NS port does), if considered generally desirable.

I'm waiting for Stefan and Chong to chime in.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-07-31 17:10           ` Eli Zaretskii
@ 2012-08-01 20:32             ` Stefan Monnier
  2012-08-02 15:29               ` Eli Zaretskii
  2012-08-04 14:30               ` Eli Zaretskii
  0 siblings, 2 replies; 20+ messages in thread
From: Stefan Monnier @ 2012-08-01 20:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: cyd, 11959

>> > I would encourage to rewrite that code on all platforms to allow
>> > relocation of the binary, since that cannot be bad on any platform.
>> I think this would be pretty straightforward to implement (bascially
>> just copy what the NS port does), if considered generally desirable.
> I'm waiting for Stefan and Chong to chime in.

Sounds fine to me,


        Stefan





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-08-01 20:32             ` Stefan Monnier
@ 2012-08-02 15:29               ` Eli Zaretskii
  2012-08-02 15:42                 ` Glenn Morris
  2012-08-04 14:30               ` Eli Zaretskii
  1 sibling, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2012-08-02 15:29 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: cyd, 11959

> From: Stefan Monnier <monnier@IRO.UMontreal.CA>
> Cc: Glenn Morris <rgm@gnu.org>, cyd@gnu.org, 11959@debbugs.gnu.org
> Date: Wed, 01 Aug 2012 16:32:01 -0400
> 
> >> > I would encourage to rewrite that code on all platforms to allow
> >> > relocation of the binary, since that cannot be bad on any platform.
> >> I think this would be pretty straightforward to implement (bascially
> >> just copy what the NS port does), if considered generally desirable.
> > I'm waiting for Stefan and Chong to chime in.
> 
> Sounds fine to me,

Glenn, are you working on this, or should I fix the w32 build in the
meantime?





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-08-02 15:29               ` Eli Zaretskii
@ 2012-08-02 15:42                 ` Glenn Morris
  0 siblings, 0 replies; 20+ messages in thread
From: Glenn Morris @ 2012-08-02 15:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: cyd, 11959

Eli Zaretskii wrote:

> Glenn, are you working on this, or should I fix the w32 build in the
> meantime?

I'm not planning to work on it any time soon (and I don't think it would
affect w32 anyway).





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist.
  2012-08-01 20:32             ` Stefan Monnier
  2012-08-02 15:29               ` Eli Zaretskii
@ 2012-08-04 14:30               ` Eli Zaretskii
  1 sibling, 0 replies; 20+ messages in thread
From: Eli Zaretskii @ 2012-08-04 14:30 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: cyd, 11959-done

> From: Stefan Monnier <monnier@IRO.UMontreal.CA>
> Cc: Glenn Morris <rgm@gnu.org>, cyd@gnu.org, 11959@debbugs.gnu.org
> Date: Wed, 01 Aug 2012 16:32:01 -0400
> 
> >> > I would encourage to rewrite that code on all platforms to allow
> >> > relocation of the binary, since that cannot be bad on any platform.
> >> I think this would be pretty straightforward to implement (bascially
> >> just copy what the NS port does), if considered generally desirable.
> > I'm waiting for Stefan and Chong to chime in.
> 
> Sounds fine to me,

Upon studying the NS code, I didn't like it.  It's too
platform-specific (so would require implementing the same stuff at
least one more time), and it bypasses most of the code in emacs.c,
callproc.c, and lread.c that sets up the various VFOO_directory and
VBAR_path variables on Posix platforms, and IMO for no good reason,
since the logic of that code is generally correct and useful.

So instead I made a few changes in decode_env_path that allow use of a
"magical" prefix in strings defined in epaths.h.  That prefix is
expanded at startup time into the root of the Emacs tree, either
installation tree or the source tree.  (Some changes to support these
were needed in w32.c and nt/paths.h, as well.)  This allows to leave
the logic in init_lread and other similar places intact, and still
DTRT both in installed and uninstalled Emacs.  The advantage of this
is that making this work on all the other platforms is (I hope)
_really_ trivial; we just need to agree on some suitable replacement
for the %emacs_dir% thingy.

The changes I installed (in trunk revision 109429) are for MS-Windows
only for now.

This eliminates the annoying warning that started this bug report, and
I'm therefore marking this bug as done.





^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2012-08-04 14:30 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-17 16:40 bug#11959: 24.1.50; Warning: Lisp directory `C:/Emacs-24-2012-07-16/../site-lisp' does not exist Drew Adams
2012-07-17 17:40 ` Eli Zaretskii
2012-07-17 17:42   ` Drew Adams
2012-07-18 14:57   ` Eli Zaretskii
2012-07-18 15:20     ` Drew Adams
2012-07-18 17:08       ` Eli Zaretskii
2012-07-29 23:50     ` Glenn Morris
2012-07-29 23:58       ` Glenn Morris
2012-07-30  3:34       ` Eli Zaretskii
2012-07-30  6:05         ` Jan Djärv
2012-07-30 13:30           ` Eli Zaretskii
2012-07-30  6:43         ` Glenn Morris
2012-07-30 13:32           ` Eli Zaretskii
2012-07-30 15:09             ` Glenn Morris
2012-07-30 15:11         ` Glenn Morris
2012-07-31 17:10           ` Eli Zaretskii
2012-08-01 20:32             ` Stefan Monnier
2012-08-02 15:29               ` Eli Zaretskii
2012-08-02 15:42                 ` Glenn Morris
2012-08-04 14:30               ` Eli Zaretskii

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).