Avoid recursive invocation of C1EXPR by allowing the C1 processors to act like macros, returning new forms to be processed. Remove also the CATCH for compiler errors, since we now rely on conditions for signal handling.

This commit is contained in:
Juan Jose Garcia Ripoll 2011-12-27 12:36:52 +01:00
parent 24c0b37d9a
commit c2e2171dc0
15 changed files with 128 additions and 129 deletions

View file

@ -47,14 +47,14 @@
(unwind-exit new-destination)))
(defun c1innermost-stack-frame (args)
(c1expr `(c-inline () () :object ,+ecl-stack-frame-variable+
:one-liner t :side-effects nil)))
`(c-inline () () :object ,+ecl-stack-frame-variable+
:one-liner t :side-effects nil))
(defun c1stack-push (args)
(c1expr `(progn
(c-inline ,args (t t) :void "ecl_stack_frame_push(#0,#1)"
:one-liner t :side-effects t)
1)))
`(progn
(c-inline ,args (t t) :void "ecl_stack_frame_push(#0,#1)"
:one-liner t :side-effects t)
1))
(defun c1stack-push-values (args)
(let ((frame-var (pop args))
@ -71,11 +71,11 @@
(c2expr push-statement))
(defun c1stack-pop (args)
(c1expr `(c-inline ,args (t) (values &rest t)
"cl_env_copy->values[0]=ecl_stack_frame_pop_values(#0);"
:one-liner nil :side-effects t)))
`(c-inline ,args (t) (values &rest t)
"cl_env_copy->values[0]=ecl_stack_frame_pop_values(#0);"
:one-liner nil :side-effects t))
(defun c1apply-from-stack-frame (args)
(c1expr `(c-inline ,args (t t) (values &rest t)
"cl_env_copy->values[0]=ecl_apply_from_stack_frame(#0,#1);"
:one-liner nil :side-effects t)))
`(c-inline ,args (t t) (values &rest t)
"cl_env_copy->values[0]=ecl_apply_from_stack_frame(#0,#1);"
:one-liner nil :side-effects t))