[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

R5RS meeting at Xerox PARC



   From: Norman Adams <norman@parc.xerox.com>
   Date: 	Wed, 6 May 1992 21:55:30 PDT

   If anyone has suggestions for the agenda, please post them.

Here is the spec for vicinities as used in SLIB.  (program-vicinity),
(library-vicinity), (implementation-vicinity), and
(scheme-file-suffix) could well be syntax instead of proceures since
they are static data.

			       VICINITY

A vicinity is a descriptor for a place in the file system.  Vicinities
hide from the programmer the concepts of host, volume, directory, and
version.  Vicinities express only the concept of a file environment
where a file name can be resolved to a file in a system independent
manner.  Vicinities can even be used on `flat' file systems (which
have no directory structure) by having the vicinity express
constraints on the file name.  On most systems a vicinity would be a
string.  All of these procedures are file system dependent.

  (make-vicinity <pathname>)				procedure

Returns the vicinity of <pathname> for use by in-vicinity.

  (program-vicinity)					procedure

Returns the vicinity of the currently loading Scheme code.  For an
interpreter this would be the directory containing source code.  For a
compiled system (with multiple files) this would be the directory
where the object or executable files are.  If no file is currently
loading it the result is undefined.

  (library-vicinity)					procedure

Returns the vicinity of the shared Scheme library.

  (implementation-vicinity)				procedure

Returns the vicinity of the underlying Scheme implementation.  This
vicinity will likely contain startup code and messages and a compiler.

  (user-vicinity)					procedure

Returns the vicinity of the current directory of the user.  On most
systems this is "".

  (scheme-file-suffix)					procedure

Returns the default filename suffix for scheme source files.  On most
systems this is ".scm".

  (in-vicinity <vicinity> <filename>)			procedure
  (in-vicinity <vicinity> <filename> <suffix>)		procedure

Returns a filename suitable for use by load, open-input-file,
open-output-file, etc.  The returned filename is <filename>, with
optional <suffix> appended, in <vicinity>.  In-vicinity should allow
<filename> to override <vicinity> when <filename> is an absolute
pathname and <vicinity> is equal to the value of (user-vicinity).  The
behavior of in-vicinity when <filename> is absolute and <vicinity> is
not equal to the value of (user-vicinity) is unspecified.  For most
systems in-vicinity can be string-append.

  (sub-vicinity <vicinity> <name>)			procedure

Returns the vicinity of <vicinity> restricted to <name>.  This is used
for large systems where names of files in subsystems could conflict.
On systems with directory structure sub-vicinity will return a
pathname of the subdirectory <name> of <vicinity>.