//  SPDX-License-Identifier: GFDL-1.3-or-later
//
//  Copyright © 2000-2023 Erick Gallesio <eg@stklos.net>
//
//           Author: Erick Gallesio [eg@unice.fr]
//    Creation date: 26-Nov-2000 18:19 (eg)

{{chapter "Using the SLIB package"}}
((("require")))
((("provide")))
*_SLIB_* is a library for the programming language Scheme, written by
Aubrey Jaffer <<SLIB>>.   It provides a platform independent framework for
using packages of Scheme procedures and syntax. It uses only standard Scheme
syntax and thus works on many different Scheme implementations.

To  use this package, you have just to type

```scheme
(require "slib")
```

or use the {{link-srfi 96}} with

```scheme
(import (srfi 96))
```

and follow the instructions given in the *_SLIB_* library manual to
use a particular package.

[NOTE]

====
*_SLIB_* uses also the _require_ and _provide_ mechanism to load
components of the library. Once *_SLIB_* has been loaded, the standard
{{stklos}} `require` and `provide` are overloaded such as if their
parameter is a string this is the old {{stklos}} procedure which is
called, and if their parameter is a symbol, this is the *_SLIB_* one
which is called.

*_SLIB_* needs to create a catalog of the file that must be loaded to
implement a given feature. This catalog is stored in a file named
`slibcat` This file is, by default located in the
`slib` directory into the {{stklos}} configuration directory
(generally `~/.config/stklos`).  It is possible to change this
directory with the `STKLOS_IMPLEMENTATION_PATH` shell variable.

{{stklos}} searches the *_SLIB_* implementation directory in some standard
places. If not found, you can fix it with the `SCHEME_LIBRARY_PATH` shell
variable.
====
