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 |