From 0bc1e272243f5cadcc8a81d77469b064b3e420fe Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Wed, 5 Oct 2011 20:52:14 +0900 Subject: [PATCH] implementing environment --- lib/meta.scm | 12 +++++++++++- lib/scheme/eval.sld | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/meta.scm b/lib/meta.scm index 6d9a20c1..5daaa596 100644 --- a/lib/meta.scm +++ b/lib/meta.scm @@ -134,6 +134,16 @@ (module-meta-data mod)) env)) +(define (environment . ls) + (let ((env (make-environment))) + (for-each + (lambda (m) + (let* ((mod2-name+imports (resolve-import m)) + (mod2 (load-module (car mod2-name+imports)))) + (%import env (module-env mod2) (cdr mod2-name+imports) #t))) + ls) + env)) + (define (load-module name) (let ((mod (find-module name))) (if (and mod (not (module-env mod))) @@ -188,7 +198,7 @@ (define *modules* (list (cons '(scheme) (make-module #f (interaction-environment) '((include "init.scm")))) - (cons '(config) (make-module #f (current-environment) '())) + (cons '(meta) (make-module #f (current-environment) '())) (cons '(srfi 0) (make-module (list 'cond-expand) (current-environment) (list (list 'export 'cond-expand)))))) diff --git a/lib/scheme/eval.sld b/lib/scheme/eval.sld index 9f31253e..df607b97 100644 --- a/lib/scheme/eval.sld +++ b/lib/scheme/eval.sld @@ -1,4 +1,4 @@ (define-library (scheme eval) - (import (scheme)) + (import (scheme) (meta)) (export eval environment null-environment scheme-report-environment))