Move from github, collapse gltk and strictmath, add candle
[clnl] / README.md
index 9b39225d75bea0a03bfb3601d7c9bd76af350f3b..acb35a47b64b2c4a7ba4fac6c71584a5f28c681d 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,50 +1,88 @@
 # clnl
 
-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.
+This is an experiment at creating an alternate implementation of NetLogo in Common Lisp.
 
-See the [wiki](https://github.com/frankduncan/clnl/wiki) for more information at this time.
+# Using standalone executables
 
-# Building
+Find the latest version, [0.1.0](https://code.consxy.com/gitweb/gitweb.cgi/clnl/commit/v0.1.0) on the [releases page](https://consxy.com/clnl/releases):
+* [linux](https://consxy.com/clnl/releases/v0.1.0/clnl)
+* [windows](https://consxy.com/clnl/releases/v0.1.0/clnl.exe)
+* [mac](https://consxy.com/clnl/releases/v0.1.0/CLNL.dmg)
 
-If you'd like to build it, you're going to need a few things:
+# Running from source
 
+If you'd like to run it from source, you're going to need a few things:
+
+* A copy of the clnl source from the [releases page](https://consxy.com/frankduncan/clnl/releases), version [0.1.0](https://consxy.com/clnl/releases/v0.1.0/clnl_0.1.0.tar.gz)
 * An implementation of sbcl with threads enabled
-* The following common lisp libraries (included in deps/tarpit folder)
-  * cl-opengl
+* The following common lisp libraries (included in [deps/common-lisp](deps/common-lisp) folder)
   * alexandria
   * babel
   * cffi
+  * clnl-gltk
+  * cl-opengl
+  * cl-ppcre
   * ironclad
   * mt19937
   * nibbles
   * trivial-features
-  * style-checker
-  * docgen
-* rlwrap
+  * strictmath
+  * ieee-floats
 
-# Running
-
-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
+[bin/nl](bin/nl) and [bin/run.lisp](bin/run.lisp) have been added for convenience to run the netlogo instance.  Not very many commands are implemented, but it should alert you to that.  A good test is
 
 ```
 crt 10
 ask turtles [ fd 1 ]
 show random 5
+ask turtles [ fd 5 ]
 ```
 
+## Running on OSX
+
+In order to run on OSX, you may have to build your own sbcl instance with threads enabled.  See [bin/buildosxexec.sh](bin/buildosxexec.sh) for how it's done when releasing/testing.
+
+## Running on Windows
+
+In order to run on Windows, you will need to install a copy of 32bit sbcl with threads enabled, as well as putting a copy of freeglut in that directory.  See [bin/buildwindowsexec.sh](bin/buildwindowsexec.sh) for how it's done when releasing/testing.
+
+# Running in a common lisp instance
+
 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:
 
 ```lisp
 (asdf:load-system :clnl)
-(sb-thread:make-thread #'clnl-interface:run)
 (clnl:run)
 ```
 
-# Testing
+# strictmath
+
+Pure common lisp implentation of Java's StrictMath class.  StrictMath is based on the pure software math library fdlibm, and as such, this solution should be equivalent and portable.
+
+## Limitations
+
+In the true "scratch an itch" category of software development, this library only does things as strictly needed by clnl in order to be consistent with regard to the JVM implementation of NetLogo.  Only the following things are implemented and tested:
+
+* Double precision only
+* Bounded to [0,360] or [0,2pi] only
+* The following StrictMath methods
+  * sin
+  * cos
+  * abs
+  * toRadians
+
+Anything else that works can be considered a pleasant surprise.
+
+## License
+
+This library lifts substantially from the evita-common-lisp implementation, as is noted in the LICENSE file.  Outside of that, functions are attempted ports of fdlibm functions, in as close as possible to a line for line translation.  As such, the files are similarly bound by the licenses included therein.
+
+## Dependencies
+
+The following are depended on by strictmath
+
+* ieee-floats
 
-If you'd like to see the tests go on your system, there's a number of utilities to look at:
+# clnl-gltk
 
-* bin/test.lisp
-* bin/diagnose-test
-* bin/diagnose-view-test
-* bin/test-mode
+This is a small experiment in creating some of the underlying tools that allows CLNL to implement NetLogo UI functionality.