1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-04 14:20:26 +02:00

* boot-9.scm (use-syntax): Turned into a macro inorder to be

similar in use to `use-modules'.
Example: (use-syntax (ice-9 syncase)) will 1. load the module
(ice-9 syncase), and, 2. install the procedure `syncase' as eval
transformer.
(internal-use-syntax): New procedure.
(process-define-module): Use `internal-use-syntax'.
This commit is contained in:
Mikael Djurfeldt 1998-06-07 10:29:40 +00:00
parent 6dabf6a95c
commit cf26610900
2 changed files with 23 additions and 8 deletions

View file

@ -1,3 +1,13 @@
1998-06-07 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
* boot-9.scm (use-syntax): Turned into a macro inorder to be
similar in use to `use-modules'.
Example: (use-syntax (ice-9 syncase)) will 1. load the module
(ice-9 syncase), and, 2. install the procedure `syncase' as eval
transformer.
(internal-use-syntax): New procedure.
(process-define-module): Use `internal-use-syntax'.
1998-05-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
* Makefile.am (ice9_sources): Add emacs.scm.

View file

@ -1861,6 +1861,10 @@
(define %autoloader-developer-mode #t)
(define (internal-use-syntax transformer)
(set-module-transformer! (current-module) transformer)
(set! scm:eval-transformer transformer))
(define (process-define-module args)
(let* ((module-id (car args))
(module (resolve-module module-id #f))
@ -1893,11 +1897,9 @@
(if (not interface)
(error "missing interface for use-module" used-module))
(if (eq? keyword 'use-syntax)
(let ((transformer (module-ref interface
(car (last-pair used-name))
(internal-use-syntax
(module-ref interface (car (last-pair used-name))
#f)))
(set-module-transformer! module transformer)
(set! scm:eval-transformer transformer)))
(loop (cddr kws) (cons interface reversed-interfaces)))))
(else
(error "unrecognized defmodule argument" kws))))))
@ -2717,9 +2719,12 @@
(defmacro use-modules modules
`(process-use-modules ',modules))
(define (use-syntax transformer)
(set-module-transformer! (current-module) transformer)
(set! scm:eval-transformer transformer))
(defmacro use-syntax (spec)
(if (pair? spec)
`(begin
(process-use-modules ',(list spec))
(internal-use-syntax ,(car (last-pair spec))))
`(internal-use-syntax ,spec)))
(define define-private define)