verdor
This commit is contained in:
parent
26f73a46f8
commit
5256a336c9
10
boo.scm
10
boo.scm
|
@ -1,10 +1,12 @@
|
|||
(define-module (boo)
|
||||
#:use-module (ijs-9 receive)
|
||||
#:export (ZEE-MODULE
|
||||
bah))
|
||||
;;bah
|
||||
))
|
||||
|
||||
(define *************************en-deze-dan************************ 42)
|
||||
(define (*************************of-deze************************) 42)
|
||||
(export bah)
|
||||
(define bah "Bah!")
|
||||
(display "*ZZZZEEE* module boo\n")
|
||||
'ZZZEEE-MODULE
|
||||
|
@ -17,3 +19,9 @@
|
|||
;; (define (make-fluid x)
|
||||
;; (display "HAHA\n"))
|
||||
33
|
||||
|
||||
(define-public (foo-bar)
|
||||
"foo-bar\n")
|
||||
|
||||
(display (foo-bar))
|
||||
;;(export foo-bar)
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(mes-use-module (mes simple-format))
|
||||
|
||||
(define (module? x)
|
||||
(display "core:module?\n"))
|
||||
|
||||
|
@ -2359,22 +2361,22 @@
|
|||
;; as soon as guile supports hygienic macros.
|
||||
;;;;;;(define define-private define)
|
||||
|
||||
(defmacro define-public args
|
||||
(define (syntax)
|
||||
(error "bad syntax" (list 'define-public args)))
|
||||
(define (defined-name n)
|
||||
(cond
|
||||
((symbol? n) n)
|
||||
((pair? n) (defined-name (car n)))
|
||||
(else (syntax))))
|
||||
(cond
|
||||
((null? args)
|
||||
(syntax))
|
||||
(#t
|
||||
(let ((name (defined-name (car args))))
|
||||
`(begin
|
||||
(define-private ,@args)
|
||||
(eval-case ((load-toplevel) (export ,name))))))))
|
||||
;; (defmacro define-public args
|
||||
;; (define (syntax)
|
||||
;; (error "bad syntax" (list 'define-public args)))
|
||||
;; (define (defined-name n)
|
||||
;; (cond
|
||||
;; ((symbol? n) n)
|
||||
;; ((pair? n) (defined-name (car n)))
|
||||
;; (else (syntax))))
|
||||
;; (cond
|
||||
;; ((null? args)
|
||||
;; (syntax))
|
||||
;; (#t
|
||||
;; (let ((name (defined-name (car args))))
|
||||
;; `(begin
|
||||
;; (define-private ,@args)
|
||||
;; (eval-case ((load-toplevel) (export ,name))))))))
|
||||
|
||||
;; (defmacro defmacro-public args
|
||||
;; (define (syntax)
|
||||
|
@ -2392,6 +2394,24 @@
|
|||
;; (eval-case ((load-toplevel) (export-syntax ,name)))
|
||||
;; (defmacro ,@args))))))
|
||||
|
||||
(define-macro (define-public . args)
|
||||
(define (syntax)
|
||||
(error "bad syntax" (list 'define-public args)))
|
||||
(define (defined-name n)
|
||||
(define (syntax)
|
||||
(error "bad syntax" (list 'define-public args)))
|
||||
(cond
|
||||
((symbol? n) n)
|
||||
((pair? n) (defined-name (car n)))
|
||||
(else (syntax))))
|
||||
(cond
|
||||
((null? args)
|
||||
(syntax))
|
||||
(#t
|
||||
;;`(export ,(defined-name (car args)))
|
||||
(module-export! (guile:current-module) (list (defined-name (car args))))
|
||||
`(define ,@args))))
|
||||
|
||||
;; Export a local variable
|
||||
|
||||
;; This function is called from "modules.c". If you change it, be
|
||||
|
@ -2435,6 +2455,9 @@
|
|||
;; (else
|
||||
;; (error "export can only be used at the top level"))))
|
||||
|
||||
(define-macro (export . names)
|
||||
`(module-export! (guile:current-module) ',names))
|
||||
|
||||
;; (defmacro re-export names
|
||||
;; `(eval-case
|
||||
;; ((load-toplevel)
|
||||
|
@ -2751,3 +2774,7 @@
|
|||
(display "===> (ZEE)\n")
|
||||
(display (ZEE-MODULE))
|
||||
(display "\n")
|
||||
|
||||
(display "===> (foo-bar)\n")
|
||||
(display (foo-bar))
|
||||
(display "\n")
|
||||
|
|
Loading…
Reference in New Issue