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
signature.asc
Description: This is a digitally signed message part