RE: [VETO] Support package-prefix and fix mail-locking in configure

"Ben Wing" <[email protected]> Thu, 9 Dec 2004 07:04:16 -0600
Newsgroups gmane.emacs.xemacs.design
Message-ID <000701c4ddef$9710a830$210110ac@NEEEEEEE>
> And round and round we go.  You complain about the 
> documentation, I ask for clarification, you complain about 
> the design, I try to explain the design, you complain about 
> the documentation, and we go back to step 1.  That's exactly 
> what we've been doing for years.  It just isn't helpful 
> information for me, if I want to provide something that'll 
> make more sense to you.  That may very well be a failing of 
> mine, but so there.
> 
> XEmacs can deal with the packages in a different location 
> from the rest just fine: that's why `emacs-roots' is a list, 
> and not a string. Maybe it isn't configurable in the way you 
> want, but the conceptual machinery is all there.  Maybe 
> that's how we need to attack the problem.

OK, I'm going to inject my two cents in here, although I haven't read all
the latest messages entirely.

But I understand very clearly what Stephen is saying, and I agree with it.

[1] Conceptually there should be two kinds of roots: Core roots, and package
roots.

[2] A core root is a directory under which you find bin/xemacs.exe, info/*,
man/*, etc; or src/xemacs.exe, etc. in a run-from-source configuration.

[3] A package root is a directory under which you find `xemacs-packages',
`mule-packages', etc.

[4] Generally there should be one core root (I can't think of an obvious
case where there should be more than one), but potentially many package
roots.

[5] The core root is determined at runtime by some sort of magic.

[6] The set of package roots is determined at runtime by combining
    some standard locations with any package roots specified using
    --package-prefix, in the following order, where earlier in the
    list means earlier in the load-path:

    [1] ~/.xemacs
    [2] [maybe] an environment variable EMACSPACKAGEPREFIX
    [3] --package-prefix
    [4] CORE-ROOT/lib/xemacs-VERSION
    [5] CORE-ROOT/lib/xemacs

[Note that parallelism between --prefix, which specifies the core root, and
--package-prefix, which specifies the package roots.]

[7] --package-path and EMACSPACKAGEPATH should be removed, as should the
confusing concepts of "early", "late", and "last", which are false
generality.

[8] The code should be [a] modified to work as above, [b] documented, since
most of the routines are not documented at all, [c] cleaned of all
unnecessary goop, of which there is quite a lot.

[9] The docs should be rewritten to reflect the above description.