Coder Social home page Coder Social logo

tinyscheme-tsx's Introduction

TinyScheme Extensions (TSX) 1.1  [September, 2002]
(c) 2002 Manuel Heras-Gilsanz ([email protected])

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
([email protected]), 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 runned 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

tinyscheme-tsx's People

Contributors

notetiene avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.