>> Yup. But there's no option to automatically find those dependencies in >> ELisp, and (IIRC from last time I looked at it, in many packages obeying >> such dependencies would end up introducing circular dependencies in >> the Makefile), so we'd have to depend on the package's author to provide >> a working set of file dependencies. > > It would be nice to have such an option.
Agreed. The "last time" mentioned above, I looked at changing the byte-compiler to keep track of the macros that were expanded so we can auto-generate the dependencies. > At least, for the most critical macros. Something similar to > declare statements. But that also requires manual intervention :-( >> Hmm... after new-org-autoloads.el is loaded, the old-Org files will be >> relegated to "late in the `load-path`" (i.e. after the directory that >> holds the new-Org file) and should hence not be loaded any more (unless >> someone goes through the trouble to explicitly load an old-Org files >> with an absolute file name). > > I admit that I do not have sufficient knowledge about the autoload magic > Emacs uses when loading packages. > > For reference, one simple way to trigger "mixed" state of Org is doing > something like: > > 1. emacs -Q > 2. (require 'org) > 3. Add the newer Org version to load-path > 4. (require 'ob-python) > > When and which version of org-autoloads.el will be loaded in > such scenario? None :-( In my book step 3 above is a mistake (even if moved to step 2). The `org-autoloads.el` is the file that adds the dir to `load-path` (and in a normal ELPA install, that's the file that `package.el` loads for you at startup). So step 3 above is replaced by (load ".../org-autoloads"), and that's where the problem would be detected. But admittedly, that won't help users who made the mistake of manually adding to `load-path` :-( Stefan