Commit | Line | Data |
---|---|---|
a0e07ba4 NJ |
1 | @page |
2 | @node SLIB | |
3 | @chapter SLIB | |
4 | ||
5 | Before the the SLIB facilities can be used, the following Scheme | |
6 | expression must be executed: | |
7 | ||
8 | @smalllisp | |
9 | (use-modules (ice-9 slib)) | |
10 | @end smalllisp | |
11 | ||
12 | @code{require} can then be used as described in | |
13 | @ref{Top, , SLIB, slib, The SLIB Manual}. | |
14 | ||
15 | For example: | |
16 | ||
17 | @smalllisp | |
18 | guile> (use-modules (ice-9 slib)) | |
19 | guile> (require 'primes) | |
20 | guile> (probably-prime? 13) | |
21 | @end smalllisp | |
22 | ||
23 | @menu | |
24 | * SLIB installation:: | |
25 | * JACAL:: | |
26 | @end menu | |
27 | ||
28 | @node SLIB installation | |
29 | @section SLIB installation | |
30 | ||
c2c67382 | 31 | The following seems to work (e.g., with slib versions 2c7 and 2d2): |
a0e07ba4 NJ |
32 | |
33 | @enumerate | |
34 | @item | |
c2c67382 | 35 | Unpack slib somewhere, e.g., /usr/local/share/slib. |
a0e07ba4 NJ |
36 | |
37 | @item | |
38 | Create a symlink in the Guile site directory to slib, e.g.,: | |
39 | ||
40 | @example | |
c2c67382 | 41 | ln -s /usr/local/share/slib /usr/local/share/guile/site/slib |
a0e07ba4 NJ |
42 | @end example |
43 | ||
44 | @item | |
85a9b4ed | 45 | Use Guile to create the catalog file, e.g.,: |
a0e07ba4 NJ |
46 | |
47 | @example | |
48 | # guile | |
49 | guile> (use-modules (ice-9 slib)) | |
c2c67382 | 50 | guile> (load "/usr/local/share/slib/mklibcat.scm") |
a0e07ba4 NJ |
51 | guile> (quit) |
52 | @end example | |
53 | ||
85a9b4ed | 54 | The catalog data should now be in |
a0e07ba4 NJ |
55 | @code{/usr/local/share/guile/site/slibcat}. |
56 | ||
57 | If instead you get an error such as: | |
58 | ||
59 | @example | |
60 | Unbound variable: scheme-implementation-type | |
61 | @end example | |
62 | ||
63 | then a solution is to get a newer version of Guile, | |
64 | or to modify ice-9/slib.scm to use define-public for the | |
65 | offending variables. | |
66 | ||
67 | @item | |
68 | Install the documentation: | |
69 | ||
70 | @example | |
c2c67382 | 71 | cd /usr/local/share/slib |
a0e07ba4 NJ |
72 | rm /usr/local/info/slib.info* |
73 | cp slib.info /usr/local/info | |
74 | install-info slib.info /usr/local/info/dir | |
75 | @end example | |
76 | @end enumerate | |
77 | ||
78 | @node JACAL | |
79 | @section JACAL | |
80 | ||
81 | @cindex Jaffer, Aubrey | |
82 | @cindex symbolic math | |
83 | @cindex math -- symbolic | |
84 | Jacal is a symbolic math package written in Scheme by Aubrey Jaffer. It | |
85 | is usually installed as an extra package in SLIB (@pxref{Packages not | |
86 | shipped with Guile}). | |
87 | ||
88 | You can use Guile's interface to SLIB to invoke Jacal: | |
89 | ||
90 | @smalllisp | |
91 | (use-modules (ice-9 slib)) | |
92 | (slib:load "math") | |
93 | (math) | |
94 | @end smalllisp | |
95 | ||
96 | @noindent | |
97 | For complete documentation on Jacal, please read the Jacal manual. If | |
98 | it has been installed on line, you can look at @ref{Top, , Jacal, jacal, | |
99 | The SLIB Manual}. Otherwise you can find it on the web at | |
100 | @url{http://www-swiss.ai.mit.edu/~jaffer/JACAL.html} | |
101 | ||
102 | ||
103 | @c Local Variables: | |
104 | @c TeX-master: "guile.texi" | |
105 | @c End: |