>> Specifically to the require structure of Babel. Perhaps the best >> solution would be to replace ob.el with a small file which requires all >> of the core components of Babel (e.g., ob-exp, ob-ref, ob-tangle, >> etc...) and move the existing ob.el to something like ob-core.el. That >> way the entire Babel suite may be loaded by all language specific files >> using a single require statement. Does that seem reasonable? > > If you can manage to keep the require structure non-circular, that seems > like a good idea. You could also turn your suggestion on the head and > provide ob-core.el with just the requires (and maybe the defcustoms) you > mentioned above and have all other ob-* files require it. > I'm attaching two patches which implement this new require structure. They move ob.el -> ob-core.el. The new ob.el (which is now loaded by every file which requires 'ob) does two things. 1. It defines every Babel defcustom (excluding the language-specific defcustoms). Should defvars be moved here as well? 2. It loads the remainder of Babel, namely; ob-eval, ob-core, ob-comint, ob-exp, ob-keys, ob-table, ob-lob, ob-ref and ob-tangle. This allows for most of the language files to be simplified as they now only need to require ob, rather than requiring the subset of the above particular to their needs. The only Babel-related compiler warnings thrown while compiling with this new setup are in reference to an undefined variable which I see now you've mentioned in another thread. If these patches look reasonable I'll apply them to the master branch. Thanks,