990 |
(if (> (length args) 3) |
(if (> (length args) 3) |
991 |
(error "Too many args to make-module." args)) |
(error "Too many args to make-module." args)) |
992 |
|
|
993 |
(let ((size (parse-arg 0 1021)) |
(let ((size (parse-arg 0 31)) |
994 |
(uses (parse-arg 1 '())) |
(uses (parse-arg 1 '())) |
995 |
(binder (parse-arg 2 #f))) |
(binder (parse-arg 2 #f))) |
996 |
|
|
1003 |
(error |
(error |
1004 |
"Lazy-binder expected to be a procedure or #f." binder)) |
"Lazy-binder expected to be a procedure or #f." binder)) |
1005 |
|
|
1006 |
(let ((module (module-constructor (make-hash-table size) |
(let ((module (module-constructor (and (not (zero? size)) |
1007 |
|
(make-hash-table size)) |
1008 |
uses binder #f #f #f #f |
uses binder #f #f #f #f |
1009 |
'() |
'() |
1010 |
(make-weak-value-hash-table 31) |
(make-weak-value-hash-table 31) |
1903 |
|
|
1904 |
;;; {Defmacros} |
;;; {Defmacros} |
1905 |
;;; |
;;; |
1906 |
(define macro-table (make-weak-key-hash-table 523)) |
(define macro-table (make-weak-key-hash-table 61)) |
1907 |
(define xformer-table (make-weak-key-hash-table 523)) |
(define xformer-table (make-weak-key-hash-table 61)) |
1908 |
|
|
1909 |
(define (defmacro? m) (hashq-ref macro-table m)) |
(define (defmacro? m) (hashq-ref macro-table m)) |
1910 |
(define (assert-defmacro?! m) (hashq-set! macro-table m #t)) |
(define (assert-defmacro?! m) (hashq-set! macro-table m #t)) |