Changes are mostly to the dir structures and build system for ScriptFu. Some changes to the outer plugin source to call the library. Why: so that other executables (future gimp-scheme-interpreter, or a future separated script-fu-server) can exist in separate directories, and share the library in memory (when built shared.) Whether the library is built shared and installed on its own (versus static and not installed) is a compile time option (both automake LibTool and meson abstract it away) The default is shared and installed, say as libgimp-scriptfu-3.0.so. Installed alongside other shared libraries (e.g. wherever libgimp is installed) to simplify packaging. A preliminary refactoring which helps enable MR gimp!647
100 lines
3.3 KiB
Plaintext
100 lines
3.3 KiB
Plaintext
TinyScheme Extensions (TSX) 1.1 [September, 2002]
|
|
(c) 2002 Manuel Heras-Gilsanz (manuel@heras-gilsanz.com)
|
|
|
|
This software is subject to the license terms contained in the
|
|
LICENSE file.
|
|
|
|
Changelog:
|
|
1.1 (Sept. 2002) Updated to tinyscheme 1.31
|
|
1.0 (April 2002) First released version
|
|
|
|
|
|
WHAT IS TSX?
|
|
|
|
TinyScheme Extensions is a set of dynamic libraries incorporating
|
|
additional funcionality to TinyScheme, a lightweight
|
|
implementation of the Scheme programming language. TinyScheme
|
|
(http://tinyscheme.sourceforge.net) is maintained by D. Souflis
|
|
(dsouflis@acm.org), and is based on MiniSCHEME version 0.85k4.
|
|
|
|
Scheme is a very nice and powerful programming language, but the
|
|
basic language is very minimalistic in terms of library functions;
|
|
only basic file input / output functionality is specified.
|
|
Different implementations of the language (MIT Scheme, GUILE,
|
|
Bigloo...) provide their own extension libraries. TSX attempts to
|
|
provide commonly needed functions at a small cost in terms of
|
|
additional program footprint. The library is modularized, so that
|
|
it is possible (and easy!) to select desired functionality via
|
|
#defines in tsx.h.
|
|
|
|
|
|
INSTALLATION
|
|
|
|
TSX has been tested on GNU/Linux 2.4.2 with gcc 2.96 and
|
|
libc-2.2.2, with TinyScheme 1.31.
|
|
|
|
To install, copy the distribution file to the directory
|
|
where TinyScheme is installed (and where scheme.h lies),
|
|
and run make. If building succeeds, a file called tsx.so
|
|
should be created. This file can be loaded as a TinyScheme
|
|
extension with
|
|
|
|
(load-extension "tsx-1.0/tsx")
|
|
|
|
After loading TSX, you can make use of its functions.
|
|
To reduce footprint, you can choose the functionality which
|
|
will be included. To do so, have a look at tsx.h and
|
|
comment the #defines for unneeded modules.
|
|
|
|
If you get compiler errors, make sure you have enabled
|
|
dynamic modules in your tinyscheme runtime (define USE_DL
|
|
somewhere near the top in scheme.h).
|
|
|
|
|
|
SAMPLE APPLICATIONS
|
|
|
|
Three sample applications are distributed with TSX 1.0.
|
|
The code is not particularly elegant, nor written in proper
|
|
functional style, but is provided for illustration of the
|
|
implemented calls.
|
|
|
|
-smtp.scm
|
|
Sends an email to the user getting the username from
|
|
the USER shell variable, connecting to the SMTP port
|
|
on the local machine.
|
|
|
|
-listhome.scm
|
|
Provides a list of all the files on the user's home
|
|
directory (obtained with the HOME environment variable).
|
|
|
|
-srepl.scm
|
|
Provides a socket-based read-eval-print-loop. It listens
|
|
for connections on the 9000 port of the local machines,
|
|
and executes the commands received. To test it, run
|
|
|
|
telnet localhost 9000
|
|
|
|
after starting the sample application, and type Scheme
|
|
expressions. You will get the evaluations. To exit the
|
|
session, type "quit" and TinyScheme will exit, closing
|
|
the socket. The output of some functions will not
|
|
be the same as you would obtain on TinyScheme's
|
|
"command line", because standard output is not
|
|
redirected to the socket, but most commands work ok.
|
|
|
|
You should copy these applications to the directory where
|
|
TinyScheme is installed (i.e., where the "scheme" binary
|
|
file resides), and can be run with:
|
|
|
|
./scheme listhome.scm
|
|
./scheme smtp.scm
|
|
./scheme srepl.scm
|
|
|
|
|
|
TSX FUNCTIONS
|
|
|
|
The extension functions implemented by TinyScheme Extensions are
|
|
documented in the file "tsx-functions.txt".
|
|
|
|
END
|