l...@gnu.org (Ludovic Courtès) writes: > Hi David, > > Sorry for the late reply. > > David Kastrup <d...@gnu.org> skribis: > >> Previous attempts have mostly exploded around the problem that we have >> something like >> >> (for-each ly:load init-scheme-files) >> >> in our lily.scm file, and the auto-compiler attempts to compile all of >> those files independently as far as I understand. Unfortunately, some >> of them contain macro definitions that other files rely on. > > The order in which files get compiled does not matter; the semantics of > programs do not depend on whether code is being bytecode-interpreted or > just interpreted by (ice-9 eval).
Little things like (define-public fancy-format format) (define-public (ergonomic-simple-format dest . rest) "Like ice-9's @code{format}, but without the memory consumption." (if (string? dest) (apply simple-format (cons #f (cons dest rest))) (apply simple-format (cons dest rest)))) (define format ergonomic-simple-format) tend to make quite a difference depending on whether they are loaded or not before compiling. That one actually caused a lot of wasted effort on <URL:http://code.google.com/p/lilypond/issues/detail?id=1780> > The only reason you might want to compile files in topological order > is performance. And macros. And redefinitions. And module hierarchy. > Does that answer your question? Sure. Unfortunately, we were already hit by this answer being wrong. -- David Kastrup