Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

Add ABCL MOP package.

latest commit cced2e55c3
Alessio Stalla alessiostalla authored February 09, 2010 Ramarren committed February 09, 2010
Octocat-spinner-32 Use Cases Use #+(or) to reliably comment out forms September 26, 2005
Octocat-spinner-32 cells-test Just trying to get a patch in for record-caller October 12, 2008
Octocat-spinner-32 doc *** empty log message *** November 30, 2007
Octocat-spinner-32 gui-geometry Just trying to get a patch in for record-caller October 12, 2008
Octocat-spinner-32 tutorial *** empty log message *** June 20, 2006
Octocat-spinner-32 utils-kt
Octocat-spinner-32 .cvsignore changed cvsignore May 21, 2008
Octocat-spinner-32 README.txt A slow tedious transition to LLGPL May 20, 2006
Octocat-spinner-32 cell-types.lisp Fix cell printing. January 19, 2010
Octocat-spinner-32 cells-manifesto.txt nothing special June 16, 2008
Octocat-spinner-32 cells-store.lisp added store-items to get an (a)list of all items May 15, 2008
Octocat-spinner-32 cells.asd Add ABCL MOP package. February 09, 2010
Octocat-spinner-32 cells.lisp Just trying to get a patch in for record-caller October 12, 2008
Octocat-spinner-32 cells.lpr Just trying to get a patch in for record-caller October 12, 2008
Octocat-spinner-32 constructors.lisp Just trying to get a patch in for record-caller October 12, 2008
Octocat-spinner-32 defmodel.lisp Ensure generic functions during compilation time as well. January 20, 2010
Octocat-spinner-32 defpackage.lisp Add ABCL MOP package. February 09, 2010
Octocat-spinner-32 family-values.lisp md-value -> value November 04, 2006
Octocat-spinner-32 family.lisp Check if relevant slots are bound when printing MODEL instances May 21, 2009
Octocat-spinner-32 fm-utilities.lisp Remove use excl package, fix mop::, some whitespace, remove dynamic-e… October 26, 2008
Octocat-spinner-32 initialize.lisp Just trying to get a patch in for record-caller October 12, 2008
Octocat-spinner-32 integrity.lisp Add ensure-generic-function to get rid of sbcl style warnings February 07, 2009
Octocat-spinner-32 link.lisp Just trying to get a patch in for record-caller October 12, 2008
Octocat-spinner-32 md-slot-value.lisp Just trying to get a patch in for record-caller October 12, 2008
Octocat-spinner-32 md-utilities.lisp Just trying to get a patch in for record-caller October 12, 2008
Octocat-spinner-32 model-object.lisp Just trying to get a patch in for record-caller October 12, 2008
Octocat-spinner-32 propagate.lisp
Octocat-spinner-32 slot-utilities.lisp Some interesting changes January 29, 2007
Octocat-spinner-32 synapse-types.lisp *** empty log message *** January 29, 2008
Octocat-spinner-32 synapse.lisp Mostly differentiating new *depender* from CAR of *call-stack* so we … March 15, 2008
Octocat-spinner-32 test-cc.lisp *** empty log message *** October 12, 2008
Octocat-spinner-32 test-cycle.lisp Add missing test files December 09, 2005
Octocat-spinner-32 test-ephemeral.lisp Add missing test files December 09, 2005
Octocat-spinner-32 test-propagation.lisp nothing special June 16, 2008
Octocat-spinner-32 test-synapse.lisp *** empty log message *** November 30, 2007
Octocat-spinner-32 test.lisp md-value -> value November 04, 2006
Octocat-spinner-32 trc-eko.lisp Just trying to get a patch in for record-caller October 12, 2008
Octocat-spinner-32 utils-kt.asd Add ABCL MOP package. February 09, 2010
Octocat-spinner-32 variables.lisp Some interesting changes January 29, 2007
README.txt
-*- text -*-

***** About Cells *****

(Installation instructions follow)

Cells is a mature, stable extension to CLOS that allows you to create
classes, the instances of which have slots whose values are determined
by a formula. Think of the slots as cells in a spreadsheet (get it?),
and you've got the right idea. You can use any arbitrary Common Lisp
expression to specify the value of a cell. The Cells system takes care
of tracking dependencies among cells, and propagating values. It is
distributed under an MIT-style license.

Documentation/support is in the form of:

   the cells-devel mailing list (users and developers both welcome)
   .\docs\01-cell-basics.lisp
   .\docs\motor-control.lisp ;; actually Bill Clementson's blog entry
   extensive examples in the Cells-test regression test suite 
   the companion Celtk module, which happens also to provide a substantial and 
        growing portable, native Common Lisp GUI. 

The above examples have all been tested against the current release of Cells.
Now in .\doc is cells-overview.pdf. That is pretty rough and obsolete in re the
code, but some of it might be enlightening.

Cells is written in portable ANSI Common Lisp.  It makes very
light use of the introspective portions of the MOP, and contains a few
workarounds for shortcomings in common implementations. 

Cells is known to currently work on the following Lisp implementations:

  * Allegro
  * SBCL
  * CLISP
  * LispWorks
  * OpenMCL

Partially supported are:

  * CMUCL
  * Corman Lisp
  * MCL

One of the Cells tests fails with CMUCL.  This appears to be caused by
a bug in CMUCL's  CLOS implementation, but has not been investigated in
great depth.

Cells is believed to work with Corman CL, but has not been recently
tested.  In the past, MCL was supported, but a it does not currently
pass the test suite.  Ressurecting full support for any of these
implementations should be easy.

Porting Cells to an unsupported but ANSI-conforming Lisp
implementation should be trivial: mostly a matter of determining the
package where the MOP lives.  In reality, however, you might have to
find workarounds for bugs in ANSI compliance.

***** Installation *****

[ Cells follows the usual convention for asdf and asdf-installable
  packages.  If you know what that means, that's all you need to
  know. ]

Installation is trivial for asdf-install users:

  (asdf-install:install :cells)

Users without asdf-install will need to download the distribution from
common-lisp.net.  If your implementation does not come with ASDF,
please complain to the implementor, then load the asdf.lisp file
included in the Cells distribution.

Unpack the distribution where you will.

Unix users: If you do not already have an asdf central registry,
create a directory calld asdf-registry under your home directory and
push this onto asdf:*central-registry*.  Create symlinks there to the
cells.asd and cells-test.asd files in the distribution.  Alternately,
follow the instructions for Windows users.

Windows and Classic Mac users: Push the directory where you unpacked
the Cells distribution onto asdf:*central-registry*.

You can now load Cells in the usual manner for asdf.

SLIME:

  ,load-system cells

SBCL:

  (require :cells)

Other systems:

  (asdf:oos 'asdf:load-op :cells)

You may wish to run the test suite.  To do so, use asdf to load the
:cells-test system.
Something went wrong with that request. Please try again.