This is XLISP-STAT 2.1 Release 3 for generic bsd systems (with simple
tektronix graphics from the gnuplot system), or X11.

XLISP-STAT is a statistical environment based on a dialect of the Lisp
language called XLISP. Originally developed for the Apple Macintosh,
XLISP-STAT is now also available for UNIX workstations using the X11
window system and for Microsoft Windows. To facilitate statistical
computations, standard Lisp functions for addition, logarithms, etc.,
have been modified to operate on lists and arrays of numbers, and a
number of basic statistical functions have been added.  Many of these
functions have been written in Lisp, and additional functions can be
added easily by a user.  Several basic forms of plots, including
histograms, scatterplots, rotatable plots and scatterplot matrices are
provided.  These plots support various forms of interactive
highlighting operations and can be linked so points highlighted in one
plot will be highlighted in all linked plots. Interactions with the
plots are controlled by the mouse, menus and dialog boxes. An
object-oriented programming system is used to allow menus, dialogs,
and the response to mouse actions to be customized.

Updates to this system will be posted periodically in the anonymous
ftp directory of umnstat.stat.umn.edu (128.101.51.1).

A tutorial introduction to the system is available. It is written
primarily for the Macintosh version, but the differences to the UNIX
version are minor; see below. The tutorial is available as a set of
LaTeX files in xlispstat.doc.tar.Z at the ftp address above.

For further information contact

		Luke Tierney
		School of Statistics
		University of Minnesota
		Minneapolis, Mn. 55455

		luke@umnstat.stat.umn.edu


			COPYRIGHT INFORMATION
				   
*******************************************************************************
* XLISP-STAT 2.1 Copyright (c) 1990, by Luke Tierney
* XLISP version 2.1, Copyright (c) 1989, by David Betz.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Luke Tierney and David Betz not be
* used in advertising or publicity pertaining to distribution of the software
* without specific, written prior permission.  Luke Tierney and David Betz
* make no representations about the suitability of this software for any
* purpose. It is provided "as is" without express or implied warranty.
*
* LUKE TIERNEY AND DAVID BETZ DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
* IN NO EVENT SHALL LUKE TIERNEY NOR DAVID BETZ BE LIABLE FOR ANY SPECIAL,
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
* 
* XLISP-STAT AUTHOR:
*               Luke Tierney
*               School of Statistics
*               University of Minnesota
*               Minneapolis, MN 55455
*               (612) 625-7843
* 
*       Email Address:
*               internet: luke@umnstat.stat.umn.edu
*
* XLISP AUTHOR:
*              David Betz
*              P.O. Box 144
*              Peterborough, NH 03458
*              (603) 924-4145
*******************************************************************************

(David Betz has kindly given his permission to remove the restriction
on commercial use from the copyright. The new copyright is adapted
from the copyright in winterp as distributed with X11 R4.)

				   
	   MAJOR DIFFERENCES BETWEEN UNIX AND MAC VERSIONS

Examples and sample data sets are located in a library directory. To
access them you can use the functions load-data and load-example. For
example, to load the data sets used in the tutorial technical report
type

	(load-data "tutorial")

The library directory is given by the variable *default-path*; data
and examples are in the subdirectories Data and Examples.

The UNIX xlispstat versions are designed to run on a standard
terminal.  This means parentheses matching is not available. If you
are a gnu emacs user you can set up gnu emacs to allow it to run
xlispstat for you.  The files my.emacs and xlispstat.el in the emacs
directory are examples of how to do this.

If you are a vi user you may want to use the -l option for editing
Lisp files.

The basic UNIX version includes some Tektronix graphics based on the
gnuplot routines. The functions plot-points and plot-lines should work
but all other high lever graphics functions will signal an error when
used in this system.  Low level graphics methods will probably result
in a crash.

The X11-based system should operate like the standard unix-based
system, with basic tektronix graphics, when not run under the
appropriate window manager (i. e. on a terminal with the DISPLAY
environment variable set).

Under X11 there is a close button and a menu button. For plot
interaction all mouse buttons are identical. To extend a selection
hold down the shift key as you click.

In the X11 version a "Save to File" is available in the plot menus.
This item brings up a dialog asking for a file name; if the ok button
is pressed an image of the plot is saved as a postscript file.  This
takes a while under X11 (20 - 30 seconds on a sun 3/50).

X11 scroll bars on plots (name-lists in particular) work like xterm
scroll bars.

X11 dialog sliders sliders look something like macintosh sliders.
Sliders and scroll bars are the only items that interpret different
mouse buttons differently, and thus the only point at which a
three-button mouse is assumed: In the body of a slider the left button
decreases by a page increment, the right button increases by a page
increment and the middle button drags the thumb around




			  X11 FEATURES/BUGS

Under X11 where plots and modeless dialogs show up on your screen, and
how large they end up being, is up to the window manager. Requests you
make may be honored under one manager but not under another.

Several options can be set using the X11 resource management
facilities.  Options controlling appearance are

xlisp*menu*titles:     on for a title on a menu, off otherwise
xlisp*menu*font:
xlisp*dialog*font:
xlisp*graph*font:

There are also a few options controlling performance. These are

xlisp*graph*fastlines:   on to use 0 width lines
xlisp*graph*fastsymbols: on to use DrawPoints instead of bitmaps
xlisp*graph*motionsync:  on to use XSync
xlisp*graph*icccm:       on to use (almost?) ICCCM-compliant dialogs
xlisp*graph*waitformap   on to wait for MapNotify event before drawing

By default all are on. (This default can be changed by editing the
include file StX11options.h.) That seems to give the best performance
on a DECstation 3100. It may not be the best choice on other
workstations.  You can also use the function x11-options to change
these five options within lisp. The fastlines option will not take
effect immediately when changes this way but will affect the next plot
created. The other two options do take effect immediately.

The only way to set the display to be used is to set the DISPLAY
environment variable before starting up xlispstat.

On some color or greyscale X11 implementations you may get X errors
when you exit from xlispstat. I *think* this is due to a bug in the
X11 server. Try defining the variable SERVER_COLOR_FREE_PROBLEM by
uncommenting its define line in StX11options.h.


	    FOREIGN FUNCTIONS, DYNAMIC AND STATIC LOADING

Foreign function calling is supported on some UNIX systems. The basic
calling conventions are similar to those in New S and are described in
an appendix to the XLISP-STAT tutorial. To enable foreign function
calling define

FOREIGN_FLAG = -DFOREIGNCALL
FOREIGN_FILE = <system>-foreign.h

where <system> is appropriate for your system. On all supported
systems listed in the machines directory the configure script shold
sutomatically set things up for dynamic loading. If your system is not
supported, you may be able to adapt one of the existing ones.

At present there is no simple support for users to do static loading,
like in New S. Instead, you can use the EXTRAOBJS and EXTRALIBS
variables in the Makefile. If static loading is important, adding the
S-like facility for user loading should be quite easy.

This (and the use of IEEE arithmetic in printing) is the only aspect
of XLISP-STAT on UNIX systems that involves serious machine
dependencies. If you can live without foreign function calling you can
ignore the machines directory.
