diff --git a/forge/forge.lisp b/forge/forge.lisp index e2aa204..a054b7d 100644 --- a/forge/forge.lisp +++ b/forge/forge.lisp @@ -17,7 +17,10 @@ (funcall (find-symbol (symbol-name x) :scopes/forge) fe) (pushd fe x)))) -(defmacro data-stack (fe) +(defun data-stack (fe) + (elt fe 0)) + +(defmacro data-stack! (fe) `(elt ,fe 0)) ; forge primitives @@ -28,8 +31,8 @@ ; internal definitions (defun popd (fe) - (pop (data-stack fe))) + (pop (data-stack! fe))) (defun pushd (fe v) - (push v (data-stack fe))) + (push v (data-stack! fe))) diff --git a/testing.lisp b/testing.lisp index 9f3a8b4..babcc40 100644 --- a/testing.lisp +++ b/testing.lisp @@ -12,8 +12,11 @@ (vector nil)) (defun assert-eq (tst have wanted) - (push (equalp have wanted) (result tst))) + (push (equalp have wanted) (result! tst))) -(defmacro result (tst) +(defun result (tst) + (elt tst 0)) + +(defmacro result! (tst) `(elt ,tst 0))