author | Alan Dipert
<alan@dipert.org> 2020-06-20 04:38:39 UTC |
committer | Alan Dipert
<alan@dipert.org> 2020-06-20 04:38:39 UTC |
parent | 5eabef94c972a196b3fdefbf5983247d703bd767 |
boot.lisp | +16 | -0 |
jacl-tests.lisp | +8 | -0 |
diff --git a/boot.lisp b/boot.lisp index 5c12307..c18febf 100644 --- a/boot.lisp +++ b/boot.lisp @@ -65,6 +65,22 @@ (defmacro progn (&rest forms) `(jacl:%progn ,@forms)) +(%export 'prog1) +(defmacro prog1 (first-form &rest forms) + (let ((ret (gensym))) + `(let ((,ret ,first-form)) + ,@forms + ,ret))) + +(%export 'prog2) +(defmacro prog2 (first-form second-form &rest forms) + (let ((ret (gensym))) + `(progn + ,first-form + (let ((,ret ,second-form)) + ,@forms + ,ret)))) + (%export 'when) (defmacro when (test &rest forms) `(if ,test (progn ,@forms))) diff --git a/jacl-tests.lisp b/jacl-tests.lisp index bc37106..df8425c 100644 --- a/jacl-tests.lisp +++ b/jacl-tests.lisp @@ -193,6 +193,14 @@ (defun now () (\. (%js "performance") (|now|))) +;; (defmacro with-profile (memo &rest body) +;; (let ((memo# (gensym))) +;; `(let ((,memo# (\. ,memo (|toString|)))) +;; (\. (%js "console") (|profile| ,memo#)) +;; (prog1 (progn ,@body) +;; ) +;; ))) + (defmacro time (memo &rest body) (let ((start (gensym)) (ret (gensym)))