Next: , Up: Options and Config

5.18.1 Configuration, Build and Installation

The following procedures and variables provide information about how Guile was configured, built and installed on your system.

— Scheme Procedure: version
— Scheme Procedure: effective-version
— Scheme Procedure: major-version
— Scheme Procedure: minor-version
— Scheme Procedure: micro-version
— C Function: scm_version ()
— C Function: scm_effective_version ()
— C Function: scm_major_version ()
— C Function: scm_minor_version ()
— C Function: scm_micro_version ()

Return a string describing Guile's full version number, effective version number, major, minor or micro version number, respectively. The effective-version function returns the version name that should remain unchanged during a stable series. Currently that means that it omits the micro version. The effective version should be used for items like the versioned share directory name i.e. /usr/share/guile/1.6/

          (version) ⇒ "1.6.0"
          (effective-version) ⇒ "1.6"
          (major-version) ⇒ "1"
          (minor-version) ⇒ "6"
          (micro-version) ⇒ "0"
— Scheme Procedure: %package-data-dir
— C Function: scm_sys_package_data_dir ()

Return the name of the directory under which Guile Scheme files in general are stored. On Unix-like systems, this is usually /usr/local/share/guile or /usr/share/guile.

— Scheme Procedure: %library-dir
— C Function: scm_sys_library_dir ()

Return the name of the directory where the Guile Scheme files that belong to the core Guile installation (as opposed to files from a 3rd party package) are installed. On Unix-like systems, this is usually /usr/local/share/guile/<GUILE_EFFECTIVE_VERSION> or /usr/share/guile/<GUILE_EFFECTIVE_VERSION>, for example: /usr/local/share/guile/1.6.

— Scheme Procedure: %site-dir
— C Function: scm_sys_site_dir ()

Return the name of the directory where Guile Scheme files specific to your site should be installed. On Unix-like systems, this is usually /usr/local/share/guile/site or /usr/share/guile/site.

— Variable: %load-path

List of directories which should be searched for Scheme modules and libraries. %load-path is initialized when Guile starts up to (list (%site-dir) (%library-dir) (%package-data-dir)), prepended with the contents of the GUILE_LOAD_PATH environment variable, if it is set.

— Scheme Procedure: parse-path path [tail]
— C Function: scm_parse_path (path, tail)

Parse path, which is expected to be a colon-separated string, into a list and return the resulting list with tail appended. If path is #f, tail is returned.

— Scheme Procedure: search-path path filename [extensions]
— C Function: scm_search_path (path, filename, extensions)

Search path for a directory containing a file named filename. The file must be readable, and not a directory. If we find one, return its full filename; otherwise, return #f. If filename is absolute, return it unchanged. If given, extensions is a list of strings; for each directory in path, we search for filename concatenated with each extension.

— Variable: %guile-build-info

Alist of information collected during the building of a particular Guile. Entries can be grouped into one of several categories: directories, env vars, and versioning info.

Briefly, here are the keys in %guile-build-info, by group:

srcdir, top_srcdir, prefix, exec_prefix, bindir, sbindir, libexecdir, datadir, sysconfdir, sharedstatedir, localstatedir, libdir, infodir, mandir, includedir, pkgdatadir, pkglibdir, pkgincludedir
env vars
versioning info
guileversion, libguileinterface, buildstamp

Values are all strings. The value for LIBS is typically found also as a part of "guile-config link" output. The value for guileversion has form X.Y.Z, and should be the same as returned by (version). The value for libguileinterface is libtool compatible and has form CURRENT:REVISION:AGE (see Library interface versions). The value for buildstamp is the output of the date(1) command.

In the source, %guile-build-info is initialized from libguile/libpath.h, which is completely generated, so deleting this file before a build guarantees up-to-date values for that build.