[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 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
- Scoping of Guile modules,
Jonas Hahnfeld <=