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