From b6ed8805e4e1945ffe55e1dec00a646beb858553 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Fri, 13 Feb 2026 21:30:29 +0100 Subject: [PATCH] forge: lit (instead of comp) for moving top stack element to compile buffer --- forge/basic.frg | 7 +++++++ forge/forge.lisp | 4 ++-- test/test-forge.lisp | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 forge/basic.frg diff --git a/forge/basic.frg b/forge/basic.frg new file mode 100644 index 0000000..341696f --- /dev/null +++ b/forge/basic.frg @@ -0,0 +1,7 @@ +; basic.frg + +(dup mul) comp in square reg + +(comp in reg) comp in def reg + +(dup dup mul mul) def cube diff --git a/forge/forge.lisp b/forge/forge.lisp index b8f1df7..fd2b919 100644 --- a/forge/forge.lisp +++ b/forge/forge.lisp @@ -163,7 +163,7 @@ #:? #:?? #:ptr #:get #:put #:in #:next - #:call #:call-if #:call-while #:comp #:val + #:call #:call-if #:call-while #:lit #:val #:)) (in-package :sf-builtin) @@ -200,10 +200,10 @@ (f:reg 'in #'(lambda () (f:pushd (iter:next-value f:*input*)))) (f:reg 'next #'f:next) -(f:reg 'comp #'(lambda () (cons (f:popd) f::*buffer*))) (f:reg 'call #'(lambda () (f:call (f:popd)))) (f:reg 'call-if #'call-if) (f:reg 'call-while #'call-while) +(f:reg 'lit #'(lambda () (cons (f:popd) f::*buffer*))) (f:reg 'val #'(lambda () (f:pushd (list #'f:next (f:popd))))) (f:reg ' in ))) + (forge:exec-list '()))