1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 22:31:12 +02:00

syntax-parameterize, not fluid-let-syntax

* module/ice-9/psyntax.scm (syntax-parameterize): Rename from
  fluid-let-syntax.

* module/ice-9/boot-9.scm (define-inlinable): Use syntax-parameterize
  (and define-syntax-parameter).
This commit is contained in:
Andy Wingo 2011-11-05 13:53:33 +01:00
parent c2d822de19
commit ea3ca4e4d0
2 changed files with 11 additions and 11 deletions

View file

@ -3663,13 +3663,13 @@ module '(ice-9 q) '(make-q q-length))}."
((args ...) (generate-temporaries #'(formals ...)))) ((args ...) (generate-temporaries #'(formals ...))))
#`(begin #`(begin
(define (proc-name formals ...) (define (proc-name formals ...)
(fluid-let-syntax ((name (identifier-syntax proc-name))) (syntax-parameterize ((name (identifier-syntax proc-name)))
body ...)) body ...))
(define-syntax name (define-syntax-parameter name
(lambda (x) (lambda (x)
(syntax-case x () (syntax-case x ()
((_ args ...) ((_ args ...)
#'((fluid-let-syntax ((name (identifier-syntax proc-name))) #'((syntax-parameterize ((name (identifier-syntax proc-name)))
(lambda (formals ...) (lambda (formals ...)
body ...)) body ...))
args ...)) args ...))

View file

@ -51,7 +51,7 @@
;;; bound-identifier=? ;;; bound-identifier=?
;;; datum->syntax ;;; datum->syntax
;;; define-syntax ;;; define-syntax
;;; fluid-let-syntax ;;; syntax-parameterize
;;; free-identifier=? ;;; free-identifier=?
;;; generate-temporaries ;;; generate-temporaries
;;; identifier? ;;; identifier?
@ -791,13 +791,13 @@
;; Returns four values: binding type, binding value, the module (for ;; Returns four values: binding type, binding value, the module (for
;; resolving toplevel vars), and the name (for possible overriding ;; resolving toplevel vars), and the name (for possible overriding
;; by fluid-let-syntax). ;; by syntax-parameterize).
(define (resolve-identifier id w r mod) (define (resolve-identifier id w r mod)
(define (resolve-global var mod) (define (resolve-global var mod)
;; `var' is probably a global, but we check the environment ;; `var' is probably a global, but we check the environment
;; first anyway because a temporary binding may have been ;; first anyway because a temporary binding may have been
;; established by `fluid-let-syntax'. FIXME: overriding a ;; established by `syntax-parameterize'. FIXME: overriding a
;; toplevel via fluid-let-syntax using just a symbolic name ;; toplevel via syntax-parameterize using just a symbolic name
;; (without a module) does not make sense. ;; (without a module) does not make sense.
(let ((b (or (assq-ref r var) (let ((b (or (assq-ref r var)
(get-global-definition-hook var mod) (get-global-definition-hook var mod)
@ -812,7 +812,7 @@
(let ((n (id-var-name id w))) (let ((n (id-var-name id w)))
(cond (cond
((syntax-object? n) ((syntax-object? n)
;; Recursing allows fluid-let-syntax to override ;; Recursing allows syntax-parameterize to override
;; macro-introduced bindings, I think. ;; macro-introduced bindings, I think.
(resolve-identifier n w r mod)) (resolve-identifier n w r mod))
((symbol? n) ((symbol? n)
@ -1810,7 +1810,7 @@
(global-extend 'local-syntax 'let-syntax #f) (global-extend 'local-syntax 'let-syntax #f)
(global-extend (global-extend
'core 'fluid-let-syntax 'core 'syntax-parameterize
(lambda (e r w s mod) (lambda (e r w s mod)
(syntax-case e () (syntax-case e ()
((_ ((var val) ...) e1 e2 ...) ((_ ((var val) ...) e1 e2 ...)
@ -1822,7 +1822,7 @@
(lambda (type value mod name) (lambda (type value mod name)
(case type (case type
((displaced-lexical) ((displaced-lexical)
(syntax-violation 'fluid-let-syntax (syntax-violation 'syntax-parameterize
"identifier out of context" "identifier out of context"
e e
(source-wrap x w s mod))) (source-wrap x w s mod)))
@ -1840,7 +1840,7 @@
(extend-env names bindings r) (extend-env names bindings r)
w w
mod))) mod)))
(_ (syntax-violation 'fluid-let-syntax "bad syntax" (_ (syntax-violation 'syntax-parameterize "bad syntax"
(source-wrap e w s mod)))))) (source-wrap e w s mod))))))
(global-extend 'core 'quote (global-extend 'core 'quote