redoing dev style to be more test centric, from lessons learned with lisp-matrix.
[CommonLispStat.git] / Doc / README
blobd6a1589c2656b9a7459b3e628c0f2a31b365d1a9
1  -*- mode: text -*-
4 Common Lisp Stat: 
6 After a few false starts, I (Tony Rossini) finally know how I want to
7 proceed.  First, we update CLS.  Then, continue with TSL.  Separation
8 is needed, so that we can make everything separate.
10 We are working with SBCL and CLISP implementations so as to keep a
11 wide range of target platforms as well as to maintain ANSI CL as close
12 as possible.  This challenges the system by targetting two more common
13 CL implementations (compiled, and byte-compiled).
16 Design: 
17 (see "orig file dependencies" below for original design docs through
18 code).
19 ------ 
21 lsobject :  package containing prototype object system
24 data : package from which all data objects are built.  data should
25        provide compound objects, pulling from all potential data
26        structures, so that 
28 optimization : maximization
30 linear-algebra : merges matrix data structures, numerical linear
31                  algebra work
33 <specialty routines>
34 regression
35 nonlin
36 glim
37 gee
38 bayes-regression
40 ls-user : 
49 ============
51 File Dependencies from 9 Feb 2007
53 Package lisp-stat-object-system
54    self contained
56 Package lisp-stat-fastmap
57    self contained, new.
59 Package lisp-stat-basics:
60    lsbasics
61    compound
62    lsmacros
63    dists
64    ladata
65    linalg
66    matrices
67    lsfloat
68    lsmath
69    lisp-stat-sequence
71  lisp-stat-matrix  (matrices)
72    lisp-stat-sequence (sequence)
74  lisp-stat-sequence (sequence)
75    lisp-stat-compound-data (compound)
77  lisp-stat-compound-data (compound)
78    common-lisp
79    lisp-stat-object-system (lsobject)
80    lisp-stat-fastmap
82 lisp-stat-fastmap
83    common-lisp   
87 ============
88 Original, dating to Oct 30, 1991.
90 This is Lisp-Stat 1.0 Alpha 1, a first attempt at producing a Common
91 Lisp version of Lisp-Stat. This version contains NO graphics, but
92 should implement all the non-graphical facilities of Lisp-Stat.  
94 The implementation uses C code from XLISP-STAT for linear algebra and
95 probability distributions, so this code is dependent an a CL's foreign
96 function interface. At this time, three CL's are supported: AKCL (at
97 least verision 1-600) for UNIX systems, Franz' Allegro CL for UNIX
98 systems, and Macintosh CL (version 2.0b1). Separate README files
99 describe each version
101 On A DEC 3100 or 5000 the AKCL version of Lisp-Stat runs about half as
102 fast as xlispstat on a standard battery of tests if xlispstat is given
103 an (expand 30) command. I seem to recall that on a sun3 this the AKCL
104 code and xlispstat code run at about the same speed. I have not yet
105 confirmed this. If so, then the relative performance of the AKCL
106 version to xlispstat may be quite hardware-dependent. The Allegro
107 version on a DEC 5000 is considerably slower and larger than the AKCL
108 version, but I have not yet figured out how to tune Allegro's memory
109 management. The Macintosh CL version seems to run at least as fast as
110 xlispstat on the Macintosh.
112 To port this code to another CL, you need to
114         Edit defsys.lsp to add any necessary definitions
116         Add a top level to lstoplevel.lsp (this is only needed if you
117         want to recover the history mechanism, which is broken by
118         shadowing *, etc.)
120         Write versions of the lisp and/or C glue files to interface to
121         the C code in lib.
123         Experiment with tuning the memory management to run reasonably
124         in statistical applications.
126 If you do port this code to another CL, please let me know so I can
127 add it to this distribution.
129 Luke Tierney
130 School of Statistics
131 University of Minnesota
132 Minneapolis, MN 55455
133 luke@umnstat.stat.umn.edu