boot-6: Define module-procedure.

* mes/module/mes/boot-6.mes (define-module): Also define
module-procedure.
This commit is contained in:
Jan (janneke) Nieuwenhuizen 2020-12-30 11:52:29 +01:00
parent f994be1dc1
commit 1897f3a39d
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
1 changed files with 17 additions and 3 deletions

View File

@ -2286,9 +2286,17 @@
;; `(eval-case
;; ((load-toplevel)
;; (let ((m (process-define-module
;; (list ,@(compile-define-module-args args)))))
;; (set-current-module m)
;; m))
;; (list ,@(compile-define-module-args args)))))
;; (when (> %debug 3)
;; (format (current-error-port) "define-module: name=~s\n" m))
;; (set-current-module m)
;; ;; XXX For Mes -- how/where does Guile define this 'module-procedure?
;; ,(let ((module (and (pair? args) (car args))))
;; `(when ,(and (pair? module)
;; (= 1 (length module))
;; (symbol? (car module)))
;; (define (,(car module) . arguments) (main (command-line)))))
;; m))
;; (else
;; (error "define-module can only be used at the top level"))))
@ -2298,6 +2306,12 @@
(when (> %debug 3)
(format (current-error-port) "define-module: name=~s" m))
(set-current-module m)
;; XXX For Mes -- how/where does Guile define this 'module-procedure?
,(let ((module (and (pair? args) (car args))))
`(when ,(and (pair? module)
(= 1 (length module))
(symbol? (car module)))
(define (,(car module) . arguments) (main (command-line)))))
m))
;; The guts of the use-modules macro. Add the interfaces of the named