Michael Sperber <sperber(a)informatik.uni-tuebingen.de> writes in
xemacs-beta(a)xemacs.org:
...
I've tried posting design notes before implementing things, and
still
got yelled at when the beta came out that actually had them. I tried
being responsive to people's suggestions in response to my designs,
and then got yelled at for not implementing something which turned out
to be my original design noone had bothered to read carefully.
I see. And I've done my fair share of the yelling, I'm afraid.
Sorry.
At this point, to do anything, I need some backing from at least one
of the major maintainers. I'll share all my thoughts, but I don't
want to have to respond to every single nitpick.
O.K. You have my backing.
>> - A package version would be able to associate or
disassociate itself
>> with/from a certain Emacs version.
sb> I suppose. I really, really don't like code that decides what to do
sb> based on an Emacs version.
Wrong wording on my part. You want a package to be able to say that
it doesn't run in a certain Emacs, based on arbitrary criteria. A
toolbar package (or whatever) might not make sense in a tty-only
Emacs, for instance.
Right.
...
sb> I am not adverse to changing things now, and so long as the
sb> programming interface remains the same or very similar, it
sb> shouldn't be a lot of work to migrate to a different layout.
I guess I need to know what exactly the programming interface really
is.
Packages typically want to know two specific things about the external
environment.
1. They want to know where their own source code is so they can
add the directory to the load-path. This is irrelevant in the
current design as long as the package gets installed into a
proper directory, this part is automatically taken care of.
2. They want to know where their data files are. The programming
interface for this is `locate-data-directory', `locate-data-file'
and 'locate-data-directory-list'.
Some packages need to know a third thing and that is where their
associated scripts or helper binaries are located in order to execute
them directly, or to add them to the exec-path. This has only been
partially addressed, but everything works so long as scripts are put
into the proper place (currently lib-src).
As far as a programming API goes, the only item that is important is
#2, #1 and #3 should be handled automagically and correctly by
packaging support code in XEmacs and thus should be ignored by a
package, ie. a Lisp package on XEmacs can *always* assume that
1. It's source code is in the load-path; and 2. It's helper scripts
and binaries are in the exec-path.
Have I missed anything?
--
能ある鷹は爪を隠す