mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-09 18:52:55 -08:00
Fix DEFINE-COMPILER-MACRO behavior: supersedes regular macros on compile time unless NOTINLINE.
This commit is contained in:
parent
91643a7c13
commit
031a2edb76
2 changed files with 10 additions and 2 deletions
|
|
@ -55,14 +55,15 @@
|
|||
((and (setq fd (get-sysprop fname 'C1CONDITIONAL))
|
||||
(inline-possible fname)
|
||||
(funcall fd args)))
|
||||
((setq fd (macro-function fname))
|
||||
(c1expr (cmp-expand-macro fd fname args)))
|
||||
((and (setq fd (compiler-macro-function fname))
|
||||
(inline-possible fname)
|
||||
(let ((success nil))
|
||||
(multiple-value-setq (fd success)
|
||||
(cmp-expand-compiler-macro fd fname args))
|
||||
success))
|
||||
(c1expr fd))
|
||||
((setq fd (macro-function fname))
|
||||
(c1expr (cmp-expand-macro fd fname args)))
|
||||
((and (setq fd (get-sysprop fname 'SYS::STRUCTURE-ACCESS))
|
||||
(inline-possible fname)
|
||||
;;; Structure hack.
|
||||
|
|
|
|||
|
|
@ -40,6 +40,13 @@
|
|||
((setq fd (get-sysprop fun 'T1))
|
||||
(funcall fd args))
|
||||
((get-sysprop fun 'C1) (t1ordinary form))
|
||||
((and (setq fd (compiler-macro-function fun))
|
||||
(inline-possible fun)
|
||||
(let ((success nil))
|
||||
(multiple-value-setq (fd success)
|
||||
(cmp-expand-compiler-macro fd fun args))
|
||||
success))
|
||||
(t1expr* fd))
|
||||
((setq fd (macro-function fun))
|
||||
(t1expr* (cmp-expand-macro fd fun (cdr form))))
|
||||
((and (setq fd (assoc fun *funs*))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue