Add Readme
[clnl] / README.md
1 # clnl
2
3 This is an experiment at creating an alternate implementation of NetLogo mainly as an exercise for me so that I come to understand NetLogo better.  It is true for me that I only truly understand something when I can explain it to someone else without repetition.  In code, this manifests as expressing a program in another language.
4
5 See the [wiki](https://github.com/frankduncan/clnl/wiki) for more information at this time.
6
7 # Building
8
9 If you'd like to build it, you're going to need a few things:
10
11 * An implementation of sbcl with threads enabled
12 * The following common lisp libraries (included in deps/tarpit folder)
13   * cl-opengl
14   * alexandria
15   * babel
16   * cffi
17   * ironclad
18   * mt19937
19   * nibbles
20   * trivial-features
21 * rlwrap
22
23 # Running
24
25 bin/nl has been added for convenience to run the netlogo instance.  Currently it bombs if you try to do anything to expressive with it.  A good test is
26
27 ```
28 crt 10
29 ask turtles [ fd 1 ]
30 show random 5
31 ```
32
33 If you'd like to run using your own sbcl instance, you can attach the clnl.asd file wherever you link asd files, and then use:
34
35 ```lisp
36 (asdf:load-system :clnl)
37 (sb-thread:make-thread #'clnl-interface:run)
38 (clnl:run)
39 ```
40
41 # Testing
42
43 If you'd like to see the tests go on your system, there's a number of utilities to look at:
44
45 * bin/test.lisp
46 * bin/diagnose-test
47 * bin/diagnose-view-test
48 * bin/test-mode