source: trunk/third/librep/README @ 17362

Revision 17362, 4.2 KB checked in by ghudson, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r17361, which included commits to RCS files with non-trunk default branches.
Line 
1[ this is -*-Text-*- ]
2
3This is librep, a Lisp system for UNIX. It contains a Lisp interpreter,
4byte-code compiler and virtual machine. Applications may use the Lisp
5interpreter as an extension language, or it may be used for stand-alone
6scripts.
7
8The Lisp dialect was originally inspired by Emacs Lisp, but with the
9worst features removed. It also borrows many ideas from Scheme.
10
11It is known to compile on at least Solaris/sparc and Linux/ix86; it is
12released under the terms of the GNU GPL, copyright John Harper
13<jsh@pixelslut.com>
14
15For more details see:
16
17        http://librep.sourceforge.net/
18
19To compile this you'll need GNU make, the GNU MP library (see below)
20and GNU dbm installed. Basically, just do:
21
22        $ ./configure
23        $ make
24        $ make install
25
26
27Notes
28=====
29
3064-bit systems
31--------------
32
33If you're on a 64-bit architecture you may want to look at the
34`--with-value-type' configure option. This is an implicitly signed
35integer type (i.e. `int', `long', etc) that is wide enough to store an
36arbitrary pointer without losing any bits.
37
38It should be detected automatically by the configure script, but if not
39there are two most likely required settings:
40
41 1. For a machine with 64-bit pointers and longs, but only 32-bit ints
42    the following could be done:
43
44        $ ./configure --with-value-type=long
45
46 2. For a machine with both int and long 32-bits, but with 64-bit
47    pointers and long long ints, then:
48
49        $ ./configure --with-value-type="long long"
50
51If this option is set incorrectly (i.e. to an integer type that is too
52small) a run-time assertion will be triggered when the interpreter
53initialises itself.
54
55Also, if this option is set to anything but int, long, or long long,
56then the src/rep_config.h file will need to be edited for the constant
57suffix and printf conversion of the chosen type.
58
59
60libgmp
61------
62
63rep uses GNU MP for it's bignum/rational implementation; you can find
64it at any GNU mirror. GMP versions 2 and 3 are both known to work
65(though version 3 is recommended)
66
67
68shared libraries
69----------------
70
71rep includes plugins providing language bindings for several libraries.
72Because these plugins are implemented as shared objects that are loaded
73at runtime, the libraries they wrap must also be shared libraries on
74most systems. This means that the installed libgdm must be shared, and
75if compiling with readline support, so must libreadline
76
77
78cut-down version
79----------------
80
81The configure script accepts the following options to build restricted
82versions of librep. The resulting library is binary-compatible with the
83normal version.
84
85  --without-gmp
86
87    Don't use GNU MP for bignums. Use `long long' as biggest integer
88    type (if available, else just `long'). Also, there is no support
89    for exact rationals, thus (/ 1 2) => 0.5 not 1/2
90
91  --disable-continuations
92
93    Don't include support for call/cc or multi-threading. This may be
94    useful for machines with non-linear stacks (old crays?)
95
96
97obscure configure options
98-------------------------
99
100  --enable-dballoc
101
102    Trace all memory allocations. Not for general use
103
104  --disable-dbsyms
105
106    When printing C stack backtraces, don't try to output symbolic
107    addresses
108
109  --enable-gprof
110
111    Compile with flags enabling profiling. Also needs --enable-static
112    to be given. Use the `srep' target in the src directory to build a
113    statically linked interpreter (since gprof doesn't profile shared
114    libraries)
115
116  --with-malloc-alignment=BYTES
117
118    The minimum alignment of memory returned from malloc (). Defaults
119    to the machine's word size. It's unlikely this will ever need to be
120    specified explicitly
121
122  --with-stack-direction=DIRECTION
123
124    Direction of stack growth. -1 for downwards (grows from higher
125    addresses to lower addresses), +1 for upwards. If not given, will
126    try to infer this automatically (though it has been known to fail)
127
128  --enable-full-name-terminator=CHARACTER
129
130    If the GECOS fields in your password file contain extra information
131    after the user's full name, this option allows the separator
132    character to be given, letting rep's user-full-name function return
133    the correct information.
134
135    E.g. some systems have GECOS as a comma-separated list of values,
136    the first of which is the full name. For this case:
137
138        --enable-full-name-terminator=,
139
Note: See TracBrowser for help on using the repository browser.