[email protected] (Ludovic Courtès) writes:
> Hi David,
>
> Sorry for the late reply.
>
> David Kastrup <[email protected]> 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