While trying to understand the current situation of LilyPond and its
Guile modules, I noticed that there is a certain split:
 * lily.scm and all files pulled in by ly:load are referenced relative
to scm/, ie just the file name (without the extension after my changes
at https://gitlab.com/lilypond/lilypond/-/merge_requests/635 ).
 * On the other hand, proper modules are prefixed with (scm), for
example (scm framework-ps) and (scm output-ps).

This works right now, but requires that main_with_guile prepends both
the determined datadir and datadir + "/scm" to the %load-path. Similar
treatment would be necessary for %load-compiled-path for the compiled
bytecode. That's a bit ugly because it requires an scm/ directory to
hold the compiled .go files...

I experimented with this locally and it seems possible to remove the
(scm) scope and reference all modules relative to scm/, ie have modules
(framework-ps), (output-ps) and so on. My question would be: Is there a
good reason *not* to do this?
As far as I could find out, this split goes back to the very first
module added in commit
https://gitlab.com/lilypond/lilypond/-/commit/e11dc9a89c31b64615bcdcb8b536621ded30176b
from 2001. I'm adding Han-Wen and Jan, do you happen to remember if
that was an explicit choice or "just worked"?

Jonas

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to