X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fmain%2Fnvm%2Fbase.lisp;h=af87bc27e167f68c320a51009d59087bb22b60d6;hb=762ab38;hp=9d07e9b1280ff677b51faf1e65993f924c59cc80;hpb=9eef8ecae4fad1e01413807ebc80ae45b5990706;p=clnl diff --git a/src/main/nvm/base.lisp b/src/main/nvm/base.lisp index 9d07e9b..af87bc2 100644 --- a/src/main/nvm/base.lisp +++ b/src/main/nvm/base.lisp @@ -7,10 +7,28 @@ (defvar *myself* nil) (defvar *self* nil) (defvar *dimensions* nil) +(defvar *globals* nil) (defvar *topology* :torus) (defvar *ticks* nil) (defvar *breeds* nil) +(define-condition stop nil nil) + +(defmacro with-stop-handler (&rest forms) + "MACRO WITH-STOP-HANDLER &rest FORMS => HANDLED-FORM + +ARGUMENTS AND VALUES: + + FORMS: body to be handled + HANDLED-FORM: body with handling + +DESCRIPTION: + + WITH-STOP-HANDLER is a convenience macro to handle when + programs issue a stop condition. When one does, a simple + :stop is returned." + `(handler-case (progn ,@forms) (stop (s) (declare (ignore s)) :stop))) + (defstruct turtle who color heading xcor ycor (label "") (label-color 9.9d0) (size 1d0) shape) (defstruct patch color xcor ycor)