mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
Adding include-shared-optionally.
This commit is contained in:
parent
ed4cef9294
commit
b6fb51f1f2
1 changed files with 6 additions and 1 deletions
|
@ -141,7 +141,7 @@
|
||||||
(let ((env (if (pair? o) (car o) (make-environment)))
|
(let ((env (if (pair? o) (car o) (make-environment)))
|
||||||
(meta (module-meta-data mod))
|
(meta (module-meta-data mod))
|
||||||
(dir (module-name-prefix name)))
|
(dir (module-name-prefix name)))
|
||||||
(define (load-modules files extension fold?)
|
(define (load-modules files extension fold? . o)
|
||||||
(for-each
|
(for-each
|
||||||
(lambda (f)
|
(lambda (f)
|
||||||
(let ((f (string-append dir f extension)))
|
(let ((f (string-append dir f extension)))
|
||||||
|
@ -154,6 +154,7 @@
|
||||||
(load in env)))
|
(load in env)))
|
||||||
(else
|
(else
|
||||||
(load path env)))))
|
(load path env)))))
|
||||||
|
((and (pair? o) (car o)) ((car o)))
|
||||||
(else (error "couldn't find include" f)))))
|
(else (error "couldn't find include" f)))))
|
||||||
files))
|
files))
|
||||||
;; catch cyclic references
|
;; catch cyclic references
|
||||||
|
@ -193,6 +194,9 @@
|
||||||
(load-modules (cdr x) "" #t))
|
(load-modules (cdr x) "" #t))
|
||||||
((include-shared)
|
((include-shared)
|
||||||
(load-modules (cdr x) *shared-object-extension* #f))
|
(load-modules (cdr x) *shared-object-extension* #f))
|
||||||
|
((include-shared-optionally)
|
||||||
|
(load-modules (list (cadr x)) *shared-object-extension* #f
|
||||||
|
(lambda () (load-modules (cddr x) "" #f))))
|
||||||
((body begin)
|
((body begin)
|
||||||
(for-each (lambda (expr) (eval expr env)) (cdr x)))
|
(for-each (lambda (expr) (eval expr env)) (cdr x)))
|
||||||
((error)
|
((error)
|
||||||
|
@ -366,6 +370,7 @@
|
||||||
(define-meta-primitive include)
|
(define-meta-primitive include)
|
||||||
(define-meta-primitive include-ci)
|
(define-meta-primitive include-ci)
|
||||||
(define-meta-primitive include-shared)
|
(define-meta-primitive include-shared)
|
||||||
|
(define-meta-primitive include-shared-optionally)
|
||||||
(define-meta-primitive body)
|
(define-meta-primitive body)
|
||||||
(define-meta-primitive begin)
|
(define-meta-primitive begin)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue