mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
deprecate process-define-module
* module/ice-9/boot-9.scm: * module/ice-9/deprecated.scm (process-define-module): Deprecate.
This commit is contained in:
parent
cd8c35193c
commit
402c35ac81
2 changed files with 103 additions and 102 deletions
|
@ -2435,107 +2435,6 @@ If there is no handler at all, Guile prints an error and then exits."
|
|||
(run-hook module-defined-hook module)
|
||||
module))
|
||||
|
||||
(define (process-define-module args)
|
||||
(define (missing kw)
|
||||
(error "missing argument to define-module keyword" kw))
|
||||
(define (unrecognized arg)
|
||||
(error "unrecognized define-module argument" arg))
|
||||
|
||||
(let ((name (car args))
|
||||
(filename #f)
|
||||
(pure? #f)
|
||||
(version #f)
|
||||
(system? #f)
|
||||
(duplicates '())
|
||||
(transformer #f))
|
||||
(let loop ((kws (cdr args))
|
||||
(imports '())
|
||||
(exports '())
|
||||
(re-exports '())
|
||||
(replacements '())
|
||||
(autoloads '()))
|
||||
(if (null? kws)
|
||||
(define-module* name
|
||||
#:filename filename #:pure pure? #:version version
|
||||
#:duplicates duplicates #:transformer transformer
|
||||
#:imports (reverse! imports)
|
||||
#:exports exports
|
||||
#:re-exports re-exports
|
||||
#:replacements replacements
|
||||
#:autoloads autoloads)
|
||||
(case (car kws)
|
||||
((#:use-module #:use-syntax)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(cond
|
||||
((equal? (cadr kws) '(ice-9 syncase))
|
||||
(issue-deprecation-warning
|
||||
"(ice-9 syncase) is deprecated. Support for syntax-case is now in Guile core.")
|
||||
(loop (cddr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
(else
|
||||
(let ((iface-spec (cadr kws)))
|
||||
(if (eq? (car kws) #:use-syntax)
|
||||
(set! transformer iface-spec))
|
||||
(loop (cddr kws)
|
||||
(cons iface-spec imports) exports re-exports
|
||||
replacements autoloads)))))
|
||||
((#:autoload)
|
||||
(or (and (pair? (cdr kws)) (pair? (cddr kws)))
|
||||
(missing (car kws)))
|
||||
(let ((name (cadr kws))
|
||||
(bindings (caddr kws)))
|
||||
(loop (cdddr kws)
|
||||
imports exports re-exports
|
||||
replacements (cons* name bindings autoloads))))
|
||||
((#:no-backtrace)
|
||||
;; FIXME: deprecate?
|
||||
(set! system? #t)
|
||||
(loop (cdr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
((#:pure)
|
||||
(set! pure? #t)
|
||||
(loop (cdr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
((#:version)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(set! version (cadr kws))
|
||||
(loop (cddr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
((#:duplicates)
|
||||
(if (not (pair? (cdr kws)))
|
||||
(missing (car kws)))
|
||||
(set! duplicates (cadr kws))
|
||||
(loop (cddr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
((#:export #:export-syntax)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(loop (cddr kws)
|
||||
imports (append exports (cadr kws)) re-exports
|
||||
replacements autoloads))
|
||||
((#:re-export #:re-export-syntax)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(loop (cddr kws)
|
||||
imports exports (append re-exports (cadr kws))
|
||||
replacements autoloads))
|
||||
((#:replace #:replace-syntax)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(loop (cddr kws)
|
||||
imports exports re-exports
|
||||
(append replacements (cadr kws)) autoloads))
|
||||
((#:filename)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(set! filename (cadr kws))
|
||||
(loop (cddr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
(else
|
||||
(unrecognized kws)))))))
|
||||
|
||||
;; `module-defined-hook' is a hook that is run whenever a new module
|
||||
;; is defined. Its members are called with one argument, the new
|
||||
;; module.
|
||||
|
|
|
@ -66,7 +66,8 @@
|
|||
named-module-use!
|
||||
top-repl
|
||||
turn-on-debugging
|
||||
read-hash-procedures))
|
||||
read-hash-procedures
|
||||
process-define-module))
|
||||
|
||||
|
||||
;;;; Deprecated definitions.
|
||||
|
@ -697,3 +698,104 @@ it.")
|
|||
((set! _ expr)
|
||||
(begin (read-hash-procedures-warning)
|
||||
(fluid-set! %read-hash-procedures expr)))))
|
||||
|
||||
(define (process-define-module args)
|
||||
(define (missing kw)
|
||||
(error "missing argument to define-module keyword" kw))
|
||||
(define (unrecognized arg)
|
||||
(error "unrecognized define-module argument" arg))
|
||||
|
||||
(let ((name (car args))
|
||||
(filename #f)
|
||||
(pure? #f)
|
||||
(version #f)
|
||||
(system? #f)
|
||||
(duplicates '())
|
||||
(transformer #f))
|
||||
(let loop ((kws (cdr args))
|
||||
(imports '())
|
||||
(exports '())
|
||||
(re-exports '())
|
||||
(replacements '())
|
||||
(autoloads '()))
|
||||
(if (null? kws)
|
||||
(define-module* name
|
||||
#:filename filename #:pure pure? #:version version
|
||||
#:duplicates duplicates #:transformer transformer
|
||||
#:imports (reverse! imports)
|
||||
#:exports exports
|
||||
#:re-exports re-exports
|
||||
#:replacements replacements
|
||||
#:autoloads autoloads)
|
||||
(case (car kws)
|
||||
((#:use-module #:use-syntax)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(cond
|
||||
((equal? (cadr kws) '(ice-9 syncase))
|
||||
(issue-deprecation-warning
|
||||
"(ice-9 syncase) is deprecated. Support for syntax-case is now in Guile core.")
|
||||
(loop (cddr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
(else
|
||||
(let ((iface-spec (cadr kws)))
|
||||
(if (eq? (car kws) #:use-syntax)
|
||||
(set! transformer iface-spec))
|
||||
(loop (cddr kws)
|
||||
(cons iface-spec imports) exports re-exports
|
||||
replacements autoloads)))))
|
||||
((#:autoload)
|
||||
(or (and (pair? (cdr kws)) (pair? (cddr kws)))
|
||||
(missing (car kws)))
|
||||
(let ((name (cadr kws))
|
||||
(bindings (caddr kws)))
|
||||
(loop (cdddr kws)
|
||||
imports exports re-exports
|
||||
replacements (cons* name bindings autoloads))))
|
||||
((#:no-backtrace)
|
||||
;; FIXME: deprecate?
|
||||
(set! system? #t)
|
||||
(loop (cdr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
((#:pure)
|
||||
(set! pure? #t)
|
||||
(loop (cdr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
((#:version)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(set! version (cadr kws))
|
||||
(loop (cddr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
((#:duplicates)
|
||||
(if (not (pair? (cdr kws)))
|
||||
(missing (car kws)))
|
||||
(set! duplicates (cadr kws))
|
||||
(loop (cddr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
((#:export #:export-syntax)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(loop (cddr kws)
|
||||
imports (append exports (cadr kws)) re-exports
|
||||
replacements autoloads))
|
||||
((#:re-export #:re-export-syntax)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(loop (cddr kws)
|
||||
imports exports (append re-exports (cadr kws))
|
||||
replacements autoloads))
|
||||
((#:replace #:replace-syntax)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(loop (cddr kws)
|
||||
imports exports re-exports
|
||||
(append replacements (cadr kws)) autoloads))
|
||||
((#:filename)
|
||||
(or (pair? (cdr kws))
|
||||
(missing (car kws)))
|
||||
(set! filename (cadr kws))
|
||||
(loop (cddr kws)
|
||||
imports exports re-exports replacements autoloads))
|
||||
(else
|
||||
(unrecognized kws)))))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue