diff --git a/forge/forge.lisp b/forge/forge.lisp index 64efe69..6dd6356 100644 --- a/forge/forge.lisp +++ b/forge/forge.lisp @@ -111,10 +111,8 @@ (comp-item (gethash w (comp-words))))) (defun setup-builtins () - (reg + (pushd (+ (popd) (popd)))) (reg * (pushd (* (popd) (popd)))) - (reg dup (pushd (car (dstack)))) (reg swap (let ((a (popd)) (b (popd))) (pushd a) (pushd b))) @@ -127,12 +125,6 @@ (register-comp-word 'quote #'do-quote) (register-comp-word 'comp #'do-comp) - (register-comp-word 'def - #'(lambda () - (let* ((name (read-next)) - (code (comp (read-next)))) - (register name #'(lambda () (call code)))))) - (activate-package :sf-user)) ;;; compiler, interpreter diff --git a/test/test-forge.lisp b/test/test-forge.lisp index b9fd889..73819e8 100644 --- a/test/test-forge.lisp +++ b/test/test-forge.lisp @@ -34,8 +34,9 @@ (== (car (forge:dstack)) 6)) (deftest test-def () - ;(forge:exec-str "def square (dup *)") - (forge:exec-str "(dup *) quote square reg") + (forge:exec-str "(comp quote defer reg) quote def regc") + ;(forge:exec-str "(dup *) quote square reg") + (forge:exec-str "(dup *) def square") (forge:exec-str "7 square") (== (car (forge:dstack)) 49))