On Mon, Apr 27, 2020 at 07:35:06PM +0300, Lassi Kortela wrote:
Good point. I'd advocate for standardizing a simple rewriting and filename mapping engine to work around problems like this (which I believe will come up no matter what kind of practical naming scheme we choose).
The progrmming language Eiffel has a module linking notation used to direct its compiler.
It recognised that modules get aggregated into packages, that packages get aggregated into larger packages and so forth.
Each level of this hierarchy can get name clashes. So this notation has a mechanism to rename anything on import or export
The idea is that each complete program comes with such a file telling the compiler in what hierarchy all these modules are to be combined and be renamed and have their imports and exports renamed.
Presumably such a file can contain information where these modules and such can be found.
Presumably it can also be wrapped with instructions about finding these modules, perhaps even rewriting the URLs or module names.
I found this notation described near the end of one of the books describing Eiffel. I no longer have access to this book, or I'd give yo a detailed reference.
But I suspect this mechanism shouls be considered when making similar decisions about Scheme.
-- hendrik