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:
parent
c2d822de19
commit
ea3ca4e4d0
2 changed files with 11 additions and 11 deletions
|
@ -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 ...))
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue