X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=macros.lisp;h=c83b3b64a19f9f9be26f9dd96daa9ed9213f6f6d;hp=bf2714b86d441eec6f9d0c4bbce5a64f7f539d73;hb=5f3fba52fd7c9984a7f797c4720ec93799d6d786;hpb=93ac7eed8f69f19013472f078b544be145619ff5 diff --git a/macros.lisp b/macros.lisp index bf2714b..c83b3b6 100644 --- a/macros.lisp +++ b/macros.lisp @@ -147,6 +147,15 @@ ,@body)) +(defmacro time-seconds (&body body) + (let ((t1 (gensym))) + `(let ((,t1 (get-internal-real-time))) + (values + (progn ,@body) + (coerce (/ (- (get-internal-real-time) ,t1) + internal-time-units-per-second) + 'double-float))))) + (defmacro time-iterations (n &body body) (let ((i (gensym)) (count (gensym))) @@ -254,3 +263,9 @@ (pprint exp))) (format t "~%~%") (values))) + +(defmacro defconst (symbol value &optional doc) + `(defconstant ,symbol (if (boundp ',symbol) + (symbol-value ',symbol) + ,value) + ,@(when doc (list doc))))