which will add this path starting from the location of the file where
this code appears.
For the second approach, the PLTCOLLECTS environment variable holds
a list of paths to search: a string holding paths that are separated
by colon (semi-colon on Windows). An empty path in this string
indicates where the default collects path goes, so:
/foo/collects means search for libraries only in
/foo/collects. If you want to use the standard PLT libraries,
then they should be included in this directory.
:/foo/collects (;/foo/collects on Windows) will search for
libraries in the default location and then in /foo/collects,
which means that you can put additional libraries there.
/foo/collects: will search for libraries first in
/foo/collects and then in the default location, making it
possible to override libraries if they exist there.
Note: Starting from PLT Scheme v301.12, the PLT executables search
for the collects path relative to the executable. You can override
this using the new -X (or --collects) command-line argument.
The first method won't work inside a module - module expands at compile time, while (current-library-collection-paths ...) gets evaluated at run time. In such case only the second approach works.
-- YinSoChen - 21 Apr 2007