blindglobe / common-lisp-stat

Common Lisp Statistics -- based on LispStat (Tierney) but updated for Common Lisp and incorporating lessons from R (http://www.r-project.org/)

This URL has Read+Write access

blindglobe (author)
Thu Oct 29 00:15:07 -0700 2009
commit  f4ca2a6ae52e1625938298f8ec762e88576b03cf
tree    f85a8c5394e27d6de74a67a3ab2c7844c9725db5
parent  782d8075fb9bb241246c561ed7c42fee5abdde82
name age message
file .gitignore Tue Oct 20 08:32:28 -0700 2009 better choice of ignored files (LaTeX droppings... [blindglobe]
file .gitmodules Thu May 15 22:54:03 -0700 2008 Redid ch-asdf and ch-util as submodules from Cy... [tony]
directory ASDF/ Thu May 15 23:24:38 -0700 2008 point from ASDF central directory to submodules... [tony]
directory Data/ Thu Sep 17 07:02:43 -0700 2009 working through an R-based example to verify th... [blindglobe]
directory Doc/ Thu Oct 29 00:14:51 -0700 2009 basic structure of the object model for statist... [blindglobe]
file LICENSE.mit Thu Sep 24 01:34:14 -0700 2009 started to clean up LICENSING. Need to consid... [blindglobe]
file Makefile Sun Nov 11 03:02:01 -0800 2007 Ignore local ASDF files to allow for custom set... [blindglobe]
file README Tue Jul 14 10:07:28 -0700 2009 Use CLS instead of LispStat to describe this sy... [blindglobe]
file TODO.lisp Loading commit data...
directory bin/ Mon Mar 23 09:50:19 -0700 2009 simple test of a start program not to use. Pro... [blindglobe]
directory bugs/ Sat Jul 18 02:50:42 -0700 2009 data refactoring -- creation and activities rel... [blindglobe]
file cls-system.mbd Thu May 14 23:02:56 -0700 2009 More mudballs cruft. Need to refactor, see dit... [blindglobe]
file cls.asd
directory examples/
directory external/ Sun Jun 01 23:39:35 -0700 2008 Update local CFFI to darcs from 1.6.08 [tony]
file lib-deps.txt Wed Oct 28 00:29:35 -0700 2009 here's what we currently require. Sigh. Signe... [blindglobe]
directory lib/ Sun Sep 21 11:12:34 -0700 2008 Brent Fulgham's changes to source commited afte... [blindglobe]
file lift-standard.config Thu Apr 02 07:03:28 -0700 2009 Use the right name. Signed-off-by: AJ Rossini ... [blindglobe]
file ls-demo-ls1.lisp Mon Aug 17 23:10:18 -0700 2009 moving from older dfref to the generic xref app... [blindglobe]
file ls-demo.lisp Wed Sep 23 07:20:49 -0700 2009 use conversion to get CSV into an array. More ... [blindglobe]
directory src/
file sysdef.mbd Thu May 14 23:02:19 -0700 2009 Want a mudballs loader, but this is BROKEN. Si... [blindglobe]
file test-style.css Wed Sep 17 11:06:08 -0700 2008 updated LIFT unit test structure, fixed rename ... [blindglobe]
file version.lisp-expr Sun Jan 28 09:48:28 -0800 2007 get the ASDF file in before continuing. Neede... [blindglobe]
README
-*- mode: text -*-

MOSTLY WRONG, NEEDS UPDATE.


(comment to save: (gensym) can make an NA entry).

For a fast start: 

You probably did:

    git clone git://repo.or.cz/CLS.git

or 

    git clone git://github.com/blindglobe/common-lisp-stat.git

(or perhaps:
    git clone http://repo.or.cz/w/CLS.git
)

and now you should:

    git submodules init
    git submodules update

to get the whole package.  However, not all submodules are attached
yet!  Will need to load 

Make the shared library liblispstat with an ANSI C compiler (only gcc
tested at this point):

       cd lib
       make

run a common lisp (SBCL, CMUCL, CLISP, CLOZURE-CL) starting in the
current directory.  Recent versions of CFFI and LIFT can be found in
the external/ subdirectory, and should be autoload-able, assuming that
you are using a Lisp implementation supporting ASDF.  (AJR-FIXME: need
to upload my GIT mirrors to repo.or.cz or similar, and have them
potentially available as submodules if needed)

(on Debian or similar systems: can use CLC (Common Lisp Controller) or
SBCL approaches, i.e.  ~/.clc/systems or ~/.sbcl/systems should
contain softlinks to the cls, cffi, and lift ASDF files
(i.e. cls.asd, cffi.asd, and lift.asd).  AJR-FIXME: There is
probably a similar incantation for other CL's, need to record that
here!).

Step through ls-demo.lisp for a range of examples of activities.
    

So basically ..   
  
1. change directory into the CommonLispStat working directory.
2. start your lisp
3. follow the commands in the ls-demo.lisp file, i.e.
 
   a. (asdf:oos 'asdf:load-op 'cls) ;; use ASDF to load lispstat
   b. (in-package :ls-user)
   c. (normal-rand 20)
   d. (setf mytest (normal-rand 20))
   e. ... (and so on) ...

   and see if they work (basic CFFI functionality for external C
   library, LIFT package for unit-testing framework to ensure run time
   stability).
  
4. Tell me ( mailto:blindglobe@gmail.com ) if there is any thing wrong
   (or if anything happens to work.

CMUCL and SBCL seem to work just fine at this stage.

CLISP is finicky regarding the problems that we have with CFFI
conversation.  In particular that we can not really do typing that we
need to take care of.   I think this is my problem, not someone
elses. 

Need to test ECL.  Clozure-CL seems to work.

===========

See Doc/README* for history and design considerations
See Doc/INSTALL for getting this to work and run

===========

Working on this with git:

    git clone git://repo.or.cz/CommonLispStat.git 
    cd CommonLispStat
    git submodules init
    git submodules update

will pull the whole repository, and create a "master" branch to work
on.  If you are making edits, Probably, you don't want to use the
master branch, but more to use a topic-centric branch, so you might:

    git checkout -b myTopicBranch

and then work on myTopicBranch, pulling back to the master branch when
needed by

    git checkout master
    git pull . myTopicBranch

(or
    git rebase myTopicBranch
)

of course, perhaps you want to contribute to the mob branch.   For
that, after cloning the repository as above, you would:

    git checkout -b mob remotes/origin/mob

(work, work, work... through a cycle of

         <edit>
   git add <files just edited>
   git commit -m "what I just did"

 ad-nauseum.  When ready to commit, then just:

     git push git+ssh://mob@repo.or.cz/srv/git/CommonLispStat.git mob:mob

)

and it'll be put on the mob branch, as a proposal for merging.

Another approach would be to pull from the topic branch into the mob
branch before uploading.   Will work on a formal example soon.

(the basic principle is that instead of the edit cycle on mob, do
something like:

  git checkout mob
  git pull . myTopicBranch   
  git push git+ssh://mob@repo.or.cz/srv/git/CommonLispStat.git mob:mob

)

Alternatively, one can work on the github repositories as well.  They
are a bit differently organized, and require one to get a github
account and work from there.  In that case, you'd need to D/L the
libraries. 

That gets a bit tricky, but see ./bin/GetRepos.sh for an example. 

===========

I've started putting examples of use in function documentation.   If
you are a lisp'er, you'll find this pendantic and insulting.  Many of
the uses are trivial.  However, this has been tested out on a number
of research statisticians (the primary user audience) and found
useful.

Still need to write the (run-doc-ex 'function-name)  function, which
would print out the example and run it live.  Hopefully with the same
results.  I've used XML markup for this, but for no particular reason,
we could have used SEXPs as well.   This is currently done by using an
<example> tag set, as in
    <example>
    (progn
       (example-code-for-function))
    </example>

===========