Get working on OSX
[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   * alexandria
14   * babel
15   * cffi
16   * cl-charms
17   * cl-opengl
18   * cl-ppcre
19   * docgen
20   * ironclad
21   * mt19937
22   * nibbles
23   * trivial-features
24   * style-checker
25 * rlwrap
26
27 # Running as a program
28
29 bin/nl has been added for convenience to run the netlogo instance.  It boots up the ncurses command line with an opengl view.  Not very many commands are implemented, but it should alert you to that.  A good test is
30
31 ```
32 crt 10
33 ask turtles [ fd 1 ]
34 show random 5
35 ask turtles [ fd 5 ]
36 ```
37
38 # Running in a common lisp instance
39
40 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:
41
42 ```lisp
43 (asdf:load-system :clnl)
44 (clnl:run)
45 ```
46
47 ## Running on OSX
48
49 In order to run on OSX, you may have to build your own sbcl instance with threads enabled.
50
51 # Testing
52
53 If you'd like to see the tests go on your system, there's a number of utilities to look at:
54
55 * bin/test.lisp
56 * bin/diagnose-test
57 * bin/diagnose-view-test
58 * bin/test-mode