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
 |