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


Reply via email to