[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Some XEmacs issues and proposals



Holger.Schauer@gmx.de writes:

> On 4282 September 1993, J. wrote:
>> I think this requires some changes in the policy:
>> Common .el files could be installed in /usr{,/local}/share/emacsen/site-lisp
>> which is not a standard location in Emacsen's path.
>> It would replace /usr/{,/local}/share/emacs/site-lisp in both Emacsen
>> paths and the problem would vanish.
>
> As elaborated elsewhere in this thread, I think that such a change
> requires an appropriate message when upgrading XEmacs. 
>
>> Any other idea?
>
> No, but please note that it's in some respect only a partial solution,
> as it doesn't fix the two problems of possible load-path shadows (but
> that's okay, IMHO, it's not really solvable)

Well, I wanted to list the load-path in order to illustrate the
problems that can occur if some packages come with compiled Elisp
files, and a package supposed to be earlier in the load order comes
just with source.  Unfortunately, my stock XEmacs right now is
completely broken:

dak@lola:~$ xemacs -q -no-site-file

WARNING:
Couldn't find obvious defaults for:
data-directory
mule-lisp-directory
lisp-directory
Perhaps some directories don't exist, or the XEmacs executable,
/usr/bin/xemacs
is in a strange place?Warning: Missing charsets in String to FontSet conversion


Anyway: neither Emacs nor XEmacs are designed to separate .el and .elc
files into separate directories.  Commands like list-load-path-shadows
get confused by it, commands like byte-recompile-directory don't work
properly, warnings like "Source file is newer than compiled file"
don't work at all, and in the case of multiply defined files, the
search path manipulations mean that shadowings act weird and
differently when I am using compiled and non-compiled files.

.el and .elc files belong in the same directory, by _design_ of both
Emacs and XEmacs.  Whether they should get there by copying or hard
linking or symlinking is a different question.

load-path manipulations don't work for this purpose, however.  They
render the Emacs/XEmacs infrastructure non-operative.

> and of binary incompatibilites. I.e., if the user tries to
> byte-compile any files in $PREFIX/emacsen/* it's likely that he ends
> up with *elc that just work under one version of Emacs.

That's why this directory should not be in the load-path in the first
place.

> The policy should thus contain a note that files under emacsen
> should not be byte-compiled. The only clean way around this is to
> move any byte-compiled file to a version-specific directory.

Not just the compiled files, but the source files as well.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum



Reply to: