This page is part of the web mail archives of SRFI 103 from before July 7th, 2015. The new archives for SRFI 103 contain all messages, not just those from before July 7th, 2015.
Thank you for the feedback. On Fri, 2009-12-11 at 20:04 +0200, Vitaly Magerya wrote: > > Rename R6RS_LIBRARY_PATH to SCHEME_LIB_PATH, because multiple dialects > > can use this environment variable because they can avoid conflict by > > using different file name extensions. > > Derick, this change is problematic. Let's say there are two systems: > Scheme Foo and Scheme Bar, and both of them have library (baz). I'm not sure if you're saying those two systems implement the same dialect or different dialects, so I'll address both possibilities. With the previous revision which didn't support different file name extensions for different dialects, different dialects could not share the search paths environment variable because different dialects would be using the same extension and so a file for one dialect could unavoidably shadow a file for another dialect. With different extensions, that problem doesn't exist and different dialects can share the environment variable. I address the points you made, below. > Aside > from the fact that putting files from different libraries in the same > folder defeats the purpose of folders, This SRFI's search paths supports multiple folders, which allows having different folders. The purpose of folders is grouping, and different people have different ideals of how they'd like files grouped. What I've been imagining is that different dialects will have separate folders and that same-dialect system-specific files will be in the same folder, but this SRFI supports doing it differently. Different dialects don't have to have separate folders, because different dialects should have different extensions, and so, in the same folder, conflicts of different-dialect library files are not possible (but auxiliary file conflicts are possible). Same-dialect system-specific files can be accomplished by using separate folders for the different systems, instead of using system-specific extensions and having system-specific files in the same folder. This SRFI allows the search paths to be initialized with additional folders before or after those from SCHEME_LIB_PATH, and so systems can add system-specific folders in which system-specific libraries exist. Since that is system-specific, exactly how that is coordinated is outside this SRFI. > we will have conflicts if: > > * both implementations of (baz) ship with a README or a LICENSE file; If the different implementations of (baz) are for the same dialect: They are necessarily system-specific. If the different implementations are distributed separately and have files whose names will conflict if they are placed in the same folder, they can be placed in different folders to avoid conflict. If the different implementations of (baz) are for different dialects: There can be separate folders for different dialects, so that conflicts are avoided. > * both implementations of (baz) ship with main.r6rs-lib which is a stub > to load implementation-specific code. In this case, the different implementations of (baz) are for the same dialect (because you said .r6rs-lib), so they are necessarily system-specific. They can be in the same folder and have different file names, e.g. /folder/baz/main.foo-r6rs-lib and /folder/baz/main.bar-r6rs-lib, or they can be in different folders with the same relative file names, e.g. /foo-folder/baz/main.r6rs-lib and /bar-folder/baz/main.r6rs-lib. -- : Derick ----------------------------------------------------------------