Code reformat - Macro for functions implement commands to return :undefined
authorFrank Duncan <frank@kank.net>
Mon, 30 May 2016 03:53:54 +0000 (22:53 -0500)
committerFrank Duncan <frank@kank.net>
Mon, 30 May 2016 03:59:29 +0000 (22:59 -0500)
.travis.yml
bin/buildtravisexec.sh
deps/common-lisp/docgen_0.2.tar.gz [deleted file]
deps/common-lisp/docgen_0.3.tar.gz [new file with mode: 0644]
src/main/main.lisp
src/main/nvm/base.lisp
src/main/nvm/controlflow.lisp
src/main/nvm/inout.lisp
src/main/nvm/nvm.lisp
src/main/nvm/turtles.lisp
src/main/nvm/world.lisp

index fa44e4a26ba2d8b20771665422c9f70ef9e984d9..d52b8009b71a0f8ecdf70081ac0727d346ad1cac 100644 (file)
@@ -6,7 +6,7 @@ addons:
 before_install:
   - export DISPLAY=:99.0
   - /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x24
-  - wget http://frank.kank.net/travissbcl/clnl/72aabe5/$(git rev-parse HEAD)/travissbcl
+  - wget http://frank.kank.net/travissbcl/clnl/31bdd7b/$(git rev-parse HEAD)/travissbcl
   - chmod +x travissbcl
 script:
   - ./travissbcl --script bin/all.lisp
index a7757e27e5acde44f37e87cd35469aac24ecb1cf..5f8b14b632d76f1f0db4de2390c671ba8cd32cf4 100755 (executable)
@@ -26,7 +26,7 @@ mkdir -p tmp/deps/
   tar zxf ../../deps/common-lisp/trivial-features_0.8.tar.gz &&
   tar zxf ../../deps/common-lisp/cl-charms-9bb94ef.tar.gz &&
   tar zxf ../../deps/common-lisp/style-checker_0.1.tar.gz &&
-  tar zxf ../../deps/common-lisp/docgen_0.2.tar.gz &&
+  tar zxf ../../deps/common-lisp/docgen_0.3.tar.gz &&
   tar zxf ../../deps/common-lisp/ieee-floats-92e481a.tar.gz &&
   tar zxf ../../deps/common-lisp/strictmath_0.1.tar.gz
 )
diff --git a/deps/common-lisp/docgen_0.2.tar.gz b/deps/common-lisp/docgen_0.2.tar.gz
deleted file mode 100644 (file)
index d1cc757..0000000
Binary files a/deps/common-lisp/docgen_0.2.tar.gz and /dev/null differ
diff --git a/deps/common-lisp/docgen_0.3.tar.gz b/deps/common-lisp/docgen_0.3.tar.gz
new file mode 100644 (file)
index 0000000..5833246
Binary files /dev/null and b/deps/common-lisp/docgen_0.3.tar.gz differ
index 5bb93610de52d79184902ca9325800131c1ac319..a226642c8e702b63cbabb49321e7108aed1cd6af 100644 (file)
@@ -126,7 +126,8 @@ DESCRIPTION:
           (if (getf prim :macro) ; The reason we do this is because with macros, we want to evaluate them in
                                  ; this scope while preserving them for the generational purposes below
            (append (list :macro (eval (getf prim :macro))) prim)
-           prim)) prims))))))
+           prim)) prims)))
+    :undefined)))
 
 (defun model->single-form-lisp (model &key (seed 15) initialize-interface netlogo-callback)
  (multiple-value-bind
index 7fec1df58b86f5cef20f5c37cd98b8fc093939da..1a80dc3fa87deea9f4bed2cb8432e232b4fed5e7 100644 (file)
@@ -38,6 +38,9 @@ DESCRIPTION:
    (stop (s) (declare (ignore s)) :stop)
    (death (d) (declare (ignore d)) :death)))
 
+(defmacro defcommand (name args docstring &rest body)
+ `(defun ,name ,args ,docstring ,@body :undefined))
+
 (defstruct turtle who breed color heading xcor ycor (label "") label-color size shape own-vars)
 (defstruct patch color xcor ycor own-vars turtles)
 
index a1df63b1194a03f2df7f10f467b3321e632daeea..b4368fdec25e4f6d2373951b68f6faa810686bdb 100644 (file)
@@ -1,14 +1,14 @@
 (in-package #:clnl-nvm)
 
-(defun ask (agent-or-agentset fn)
+(defcommand ask (agent-or-agentset fn)
  "ASK AGENT-OR-AGENTSET FN => RESULT
 
   AGENT-OR-AGENTSET: AGENT | AGENTSET
+  RESULT: :undefined
 
 ARGUMENTS AND VALUES:
 
   FN: a function, run on each agent
-  RESULT: undefined, commands don't return
   AGENT: a NetLogo agent
   AGENTSET: a NetLogo agentset
 
@@ -35,12 +35,10 @@ DESCRIPTION:
   (t
    (error "Ask requires an agentset or agent but got: ~A" agent-or-agentset))))
 
-(defun stop ()
+(defcommand stop ()
  "STOP => RESULT
 
-ARGUMENTS AND VALUES:
-
-  RESULT: undefined
+  RESULT: :undefined
 
 DESCRIPTION:
 
index 7a78cf2614033af96e94ccf082627ffeb4b147ac..b8f88d46747fb70dd7983b8173b56f636a010e26 100644 (file)
@@ -80,13 +80,14 @@ DESCRIPTION:
     "\"end1\",\"end2\",\"color\",\"label\",\"label-color\",\"hidden?\",\"breed\",\"thickness\",\"shape\",\"tie-mode\""
     ""))))
 
-(defun show (value)
+(defcommand show (value)
  "SHOW VALUE => RESULT
 
+  RESULT: :undefined
+
 ARGUMENTS AND VALUES:
 
   VALUE: a NetLogo value
-  RESULT: undefined
 
 DESCRIPTION:
 
index 7927909859eed04ba570018eb03a133c8003aef3..e3f582d878639ee59551ae342fd30891cad65186 100644 (file)
@@ -76,7 +76,7 @@ DESCRIPTION:
      ((= i (length copy)) (incf i) (car (last copy)))
      (t (let ((result agent)) (fetch) result)))))))
 
-(defun create-world (&key dims globals turtles-own-vars patches-own-vars breeds)
+(defcommand create-world (&key dims globals turtles-own-vars patches-own-vars breeds)
  "CREATE-WORLD &key DIMS GLOBALS TURTLES-OWN-VARS PATCHES-OWN-VARS BREEDS => RESULT
 
   DIMS: (:xmin XMIN :xmax XMAX :ymin YMIN :ymax YMAX)
@@ -84,11 +84,11 @@ DESCRIPTION:
   TURTLES-OWN-VARS: TURTLES-OWN-VAR*
   PATCHES-OWN-VARS: PATCHES-OWN-VAR*
   BREEDS: BREED*
+  RESULT: :undefined
   GLOBAL: (GLOBAL-NAME GLOBAL-ACCESS-FUNC)
 
 ARGUMENTS AND VALUES:
 
-  RESULT: undefined
   XMIN: An integer representing the minimum patch coord in X
   XMAX: An integer representing the maximum patch coord in X
   YMIN: An integer representing the minimum patch coord in Y
index cdaa2c730d9058088de57dae709dfbe464f48af3..49c183486747b6fbd1ed90afacb04fc5e808abe4 100644 (file)
@@ -1,14 +1,15 @@
 (in-package #:clnl-nvm)
 
-(defun create-turtles (n &optional breed fn)
+(defcommand create-turtles (n &optional breed fn)
  "CREATE-TURTLES N &optional BREED FN => RESULT
 
+  RESULT: :undefined
+
 ARGUMENTS AND VALUES:
 
   N: an integer, the numbers of turtles to create
   BREED: a breed
   FN: A function, applied to each turtle after creation
-  RESULT: undefined
 
 DESCRIPTION:
 
@@ -24,12 +25,10 @@ DESCRIPTION:
   ((new-turtles (loop :repeat n :collect (create-turtle breed))))
   (when fn (ask (list->agentset new-turtles :turtles) fn))))
 
-(defun die ()
+(defcommand die ()
  "DIE => RESULT
 
-ARGUMENTS AND VALUES:
-
-  RESULT: undefined, commands don't return
+  RESULT: :undefined
 
 DESCRIPTION:
 
@@ -51,14 +50,15 @@ DESCRIPTION:
   (setf (patch-turtles patch) (remove *self* (patch-turtles patch))))
  (error (make-condition 'death)))
 
-(defun hatch (n &optional fn)
+(defcommand hatch (n &optional fn)
  "HATCH N &optional FN => RESULT
 
+  RESULT: :undefined
+
 ARGUMENTS AND VALUES:
 
   N: an integer, the numbers of turtles to hatch
   FN: A function, applied to each turtle after creation
-  RESULT: undefined
 
 DESCRIPTION:
 
@@ -73,13 +73,14 @@ DESCRIPTION:
   ((new-turtles (loop :repeat n :collect (create-turtle nil *self*))))
   (when fn (ask (list->agentset new-turtles :turtles) fn))))
 
-(defun forward (n)
+(defcommand forward (n)
  "FORWARD N => RESULT
 
+  RESULT: :undefined
+
 ARGUMENTS AND VALUES:
 
   N: a double, the amount the turtle moves forward
-  RESULT: undefined
 
 DESCRIPTION:
 
@@ -153,14 +154,15 @@ DESCRIPTION:
    (max (+ (max-pycor) 0.5d0)))
   (+ min (clnl-random:next-double (- max min)))))
 
-(defun set-default-shape (breed shape)
+(defcommand set-default-shape (breed shape)
  "SET-DEFAULT-SHAPE BREED SHAPE => RESULT
 
+  RESULT: :undefined
+
 ARGUMENTS AND VALUES:
 
   BREED: a valid breed
   SHAPE: a string
-  RESULT: undefined
 
 DESCRIPTION:
 
@@ -173,14 +175,15 @@ DESCRIPTION:
  (when (not (breed-p breed)) (error "Need a valid breed"))
  (setf (breed-default-shape breed) shape))
 
-(defun setxy (x y)
+(defcommand setxy (x y)
  "SETXY X Y => RESULT
 
+  RESULT: :undefined
+
 ARGUMENTS AND VALUES:
 
   X: a double
   Y: a double
-  RESULT: undefined
 
 DESCRIPTION:
 
@@ -212,13 +215,14 @@ DESCRIPTION:
    (if breed (remove breed patch-turtles :key #'turtle-breed :test-not #'eql) patch-turtles)
    (or breed :turtles))))
 
-(defun turn-right (n)
+(defcommand turn-right (n)
  "TURN-RIGHT N => RESULT
 
+  RESULT: :undefined
+
 ARGUMENTS AND VALUES:
 
   N: a double, the amount the turtle turns
-  RESULT: undefined
 
 DESCRIPTION:
 
@@ -234,13 +238,14 @@ DESCRIPTION:
     ((>= new-heading 360) (mod new-heading 360))
     (t new-heading)))))
 
-(defun turn-left (n)
+(defcommand turn-left (n)
  "TURN-LEFT N => RESULT
 
+  RESULT: :undefined
+
 ARGUMENTS AND VALUES:
 
   N: a double, the amount the turtle turns
-  RESULT: undefined
 
 DESCRIPTION:
 
index 6dfa2148e73942107e71cb7ac5ae7dd467e9526f..5bac9b4b6e9972482fe9483a4833b47c9572fe76 100644 (file)
 (defun clear-ticks ()
  (setf *ticks* nil))
 
-(defun clear-all ()
+(defcommand clear-all ()
  "CLEAR-ALL => RESULT
 
-ARGUMENTS AND VALUES:
-
-  RESULT: undefined
+  RESULT: :undefined
 
 DESCRIPTION:
 
@@ -35,12 +33,10 @@ DESCRIPTION:
  (clear-patches)
  (clear-ticks))
 
-(defun display ()
+(defcommand display ()
  "DISPLAY => RESULT
 
-ARGUMENTS AND VALUES:
-
-  RESULT: undefined
+  RESULT: :undefined
 
 DESCRIPTION:
 
@@ -50,12 +46,10 @@ DESCRIPTION:
   See http://ccl.northwestern.edu/netlogo/docs/dictionary.html#display"
  nil)
 
-(defun reset-ticks ()
+(defcommand reset-ticks ()
  "RESET-TICKS => RESULT
 
-ARGUMENTS AND VALUES:
-
-  RESULT: undefined
+  RESULT: :undefined
 
 DESCRIPTION:
 
@@ -64,12 +58,10 @@ DESCRIPTION:
   See http://ccl.northwestern.edu/netlogo/docs/dictionary.html#reset-ticks"
  (setf *ticks* 0d0))
 
-(defun tick ()
+(defcommand tick ()
  "RESET-TICKS => RESULT
 
-ARGUMENTS AND VALUES:
-
-  RESULT: undefined
+  RESULT: :undefined
 
 DESCRIPTION: