diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/place.tl | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl index a61fb99b..48e4843c 100644 --- a/share/txr/stdlib/place.tl +++ b/share/txr/stdlib/place.tl @@ -795,6 +795,14 @@ (cons (op static-slot struct slot) (op static-slot-set struct slot @1)) :)) + ((type sym) + (if (eq type 'macro) + (let ((cell (gethash sys:top-mb sym))) + (unless cell + (sys:eval-err "unbound macro ~s" sym)) + (cons (op cdr) + (op sys:rplacd cell @1))) + :)) (else (let ((cell (gethash sys:top-fb sym))) (unless cell |