SRFI-59, SLIB, and SCHEME_LIBRARY_PATH Aubrey Jaffer 07 Oct 2009 17:34 UTC

 | From: Derick Eddington <xxxxxx@gmail.com>
 | Date: Wed, 07 Oct 2009 03:35:44 -0700

I apologize for not writing sooner...

SRFI-103 should have some text comparing SRFI-59 to SRFI-103 and
explaining why the conventions of SRFI-59 are inadequate to your goals
for SRFI-103.

 | On Wed, 2009-10-07 at 11:35 +0300, Vitaly Magerya wrote:
 | > Derick Eddington wrote:
 | >  > Rename SCHEME_LIBRARY_SEARCH_PATHS to SCHEME_LIBRARY_PATHS.

It has been my long experience that dynamic search-paths are
disastrous for libraries on large industrial and educational computer
networks.  The search-paths at these sites seem to only grow; it is
not uncommon for half of the directories in a path to refer to
non-existant directories or non-functioning host machines!  The
timeouts from hosed or inaccessible networked-file-systems can inflame
into minutes the startup time for programs.

Furthermore, transient router outages can cause incompatible versions
of libraries to be loaded which, in the Scheme or Lisp case, may not
be noticed until the program has run for hours; but more likely will
just cause a mysterious failure.

SLIB's solution to this problem is to have an explicit command
[(require 'new-catalog)], typically run after installations, write to
a file an association list of features and resolved pathnames.  SLIB
sessions read this file and thereafter have instantaneous latency to
library paths.

If the network can't reach a particlar file, the session fails
immediately or after the first timeout rather than conducting covert
experiments on library version compatibility.

 | > Please, consider using singular number (i.e. SCHEME_LIBRARY_PATH), not
 | > plural. Even though this variable may denote several directories, it is
 | > idiomatic on both Windows and Unix-like systems to use singular.
 |
 | It's idiomatic only because people have passively automatically kept
 | following it because of some strange reasons.  I don't want to help
 | continue this irrational idiom.  But, I will drop the "S", because I
 | don't want to waste time arguing about it and because I can blame it on
 | others.

SRFI-59 and SLIB use the environment variable SCHEME_LIBRARY_PATH to
configure their single Scheme-source library directory.  If SRFI-103
appropriates SCHEME_LIBRARY_PATH for its use, it will cause SRFI-59
and SLIB supporting implementations (of which there are many) to fail.

Please don't adopt the environment variable SCHEME_LIBRARY_PATH.