From 22b93ef4f67146a69b2c705439e0e979a763e99d Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Wed, 30 Dec 2020 11:52:29 +0100 Subject: [PATCH] DRAFT boot-6: Define module-procedure. XXX Does this still work with primitive-load fix? * mes/module/mes/boot-6.mes (define-module): Also define module-procedure. --- mes/module/mes/boot-6.mes | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/mes/module/mes/boot-6.mes b/mes/module/mes/boot-6.mes index 6cb75b44..bf1bc6eb 100644 --- a/mes/module/mes/boot-6.mes +++ b/mes/module/mes/boot-6.mes @@ -2238,9 +2238,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")))) @@ -2250,6 +2258,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