[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Scoping of Guile modules

From: Jonas Hahnfeld
Subject: Scoping of Guile modules
Date: Sat, 06 Feb 2021 19:21:54 +0100
User-agent: Evolution 3.38.3

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 ).
 * 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
from 2001. I'm adding Han-Wen and Jan, do you happen to remember if
that was an explicit choice or "just worked"?


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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]