aboutsummaryrefslogtreecommitdiff
path: root/module/c/eval/environment.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/c/eval/environment.scm')
-rw-r--r--module/c/eval/environment.scm34
1 files changed, 0 insertions, 34 deletions
diff --git a/module/c/eval/environment.scm b/module/c/eval/environment.scm
deleted file mode 100644
index 12eefaf7..00000000
--- a/module/c/eval/environment.scm
+++ /dev/null
@@ -1,34 +0,0 @@
-(define-module (c eval environment)
- :use-module (srfi srfi-1)
- :export (make-environment
- env-set! env-ref push-frame! pop-frame!))
-
-(define (make-frame)
- (make-hash-table))
-
-(define (make-environment)
- (list (make-frame)))
-
-;; Returns an updated environment, linear update
-(define (env-set! env key value)
- ;; get handle to differentiate #f
- ;; (even though #f should never be stored since it's not a C value)
- (cond ((find (lambda (frame) (hashq-get-handle frame key)) env)
- => (lambda (frame) (hashq-set! frame key value)))
- (else (hashq-set! (car env) key value)))
- env)
-
-(define (env-ref env key)
- (cond ((null? env)
- (scm-error 'misc-error "env-ref"
- "~s unbound"
- (list key)
- #f))
- ((hashq-get-handle (car env) key) => cdr)
- (else (env-ref (cdr env) key))))
-
-(define (push-frame! environment)
- (cons (make-frame) environment))
-
-(define (pop-frame! environment)
- (cdr environment))