X-Git-Url: https://git.hcoop.net/bpt/guile.git/blobdiff_plain/fbb857a472eb4e69c1cba05e86646b7004f32df6..997ed30070b0c6559abf6dc748a27ae286179dd4:/module/language/scheme/compile-tree-il.scm diff --git a/module/language/scheme/compile-tree-il.scm b/module/language/scheme/compile-tree-il.scm index 4ac33d77e..d9d2d7afc 100644 --- a/module/language/scheme/compile-tree-il.scm +++ b/module/language/scheme/compile-tree-il.scm @@ -1,6 +1,6 @@ ;;; Guile Scheme specification -;; Copyright (C) 2001 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc. ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -22,42 +22,12 @@ #:use-module (language tree-il) #:export (compile-tree-il)) -;;; environment := #f -;;; | MODULE -;;; | COMPILE-ENV -;;; compile-env := (MODULE LEXICALS . EXTERNALS) -(define (cenv-module env) - (cond ((not env) #f) - ((module? env) env) - ((and (pair? env) (module? (car env))) (car env)) - (else (error "bad environment" env)))) - -(define (cenv-lexicals env) - (cond ((not env) '()) - ((module? env) '()) - ((pair? env) (cadr env)) - (else (error "bad environment" env)))) - -(define (cenv-externals env) - (cond ((not env) '()) - ((module? env) '()) - ((pair? env) (cddr env)) - (else (error "bad environment" env)))) - -(define (make-cenv module lexicals externals) - (cons module (cons lexicals externals))) - -(define (location x) - (and (pair? x) - (let ((props (source-properties x))) - (and (not (null? props)) - props)))) +;;; environment := MODULE (define (compile-tree-il x e opts) (save-module-excursion (lambda () - (and=> (cenv-module e) set-current-module) - (let* ((x (sc-expand x 'c '(compile load eval))) - (cenv (make-cenv (current-module) - (cenv-lexicals e) (cenv-externals e)))) + (set-current-module e) + (let* ((x (macroexpand x 'c '(compile load eval))) + (cenv (current-module))) (values x cenv cenv)))))