diff options
author | Andy Wingo <wingo@pobox.com> | 2009-05-20 17:41:21 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-05-20 17:41:21 +0200 |
commit | 68623e8e7883077dbb26521fe6d9c185df3138ce (patch) | |
tree | 495d844a4a72b9a25b334cd2ae85e782619ed7b0 | |
parent | 9806a548fe1a9cca0f82ef4f2f08fbcba5eccfaa (diff) | |
download | guile-68623e8e7883077dbb26521fe6d9c185df3138ce.tar.gz |
remove compile-time-environment
* module/ice-9/boot-9.scm (guile-user): Move the `compile' autoload to
the guile-user module. Remove reference to compile-time-environment.
* module/language/scheme/compile-ghil.scm:
* module/language/tree-il/compile-glil.scm:
* module/language/tree-il/optimize.scm:
* module/system/base/compile.scm:
* test-suite/tests/compiler.test: Remove definition of and references to
compile-time-environment. While I do think that recompilation based on
a lexical environment can be useful, I think it needs to be implemented
differently. So for now we've lost nothing if we take it away, as it
doesn't work with syncase anyway.
-rw-r--r-- | module/ice-9/boot-9.scm | 16 | ||||
-rw-r--r-- | module/language/scheme/compile-ghil.scm | 10 | ||||
-rw-r--r-- | module/language/tree-il/compile-glil.scm | 1 | ||||
-rw-r--r-- | module/language/tree-il/optimize.scm | 1 | ||||
-rw-r--r-- | module/system/base/compile.scm | 9 | ||||
-rw-r--r-- | test-suite/tests/compiler.test | 43 |
6 files changed, 7 insertions, 73 deletions
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm index cdd840f14..6666f80b4 100644 --- a/module/ice-9/boot-9.scm +++ b/module/ice-9/boot-9.scm @@ -3009,19 +3009,6 @@ module '(ice-9 q) '(make-q q-length))}." -;;; {Compiler interface} -;;; -;;; The full compiler interface can be found in (system). Here we put a -;;; few useful procedures into the global namespace. - -(module-autoload! the-scm-module - '(system base compile) - '(compile - compile-time-environment)) - - - - ;;; {Parameters} ;;; @@ -3448,6 +3435,7 @@ module '(ice-9 q) '(make-q q-length))}." ;; (module-eval-closure (current-module)))) ;; (deannotate/source-properties (sc-expand (annotate exp))))) -(define-module (guile-user)) +(define-module (guile-user) + #:autoload (system base compile) (compile)) ;;; boot-9.scm ends here diff --git a/module/language/scheme/compile-ghil.scm b/module/language/scheme/compile-ghil.scm index 370488c05..8d8332c34 100644 --- a/module/language/scheme/compile-ghil.scm +++ b/module/language/scheme/compile-ghil.scm @@ -414,16 +414,6 @@ (,args (-> (values (map retrans args))))) -(define-scheme-translator compile-time-environment - ;; (compile-time-environment) - ;; => (MODULE LEXICALS . EXTERNALS) - (() - (-> (inline 'cons - (list (retrans '(current-module)) - (-> (inline 'cons - (list (-> (reified-env)) - (-> (inline 'externals '())))))))))) - (define (lookup-apply-transformer proc) (cond ((eq? proc values) (lambda (e l args) diff --git a/module/language/tree-il/compile-glil.scm b/module/language/tree-il/compile-glil.scm index c1e4cd883..226b7d402 100644 --- a/module/language/tree-il/compile-glil.scm +++ b/module/language/tree-il/compile-glil.scm @@ -31,7 +31,6 @@ ;;; TODO: ;; ;; call-with-values -> mv-bind -;; compile-time-environment ;; basic degenerate-case reduction ;; allocation: diff --git a/module/language/tree-il/optimize.scm b/module/language/tree-il/optimize.scm index c8c23c636..4f177a979 100644 --- a/module/language/tree-il/optimize.scm +++ b/module/language/tree-il/optimize.scm @@ -46,7 +46,6 @@ call-with-values @call-with-values call-with-current-continuation @call-with-current-continuation values - ;; compile-time-environment eq? eqv? equal? = < > <= >= zero? + * - / 1- 1+ quotient remainder modulo diff --git a/module/system/base/compile.scm b/module/system/base/compile.scm index 7d54947e3..d0ebde040 100644 --- a/module/system/base/compile.scm +++ b/module/system/base/compile.scm @@ -29,7 +29,7 @@ #:export (syntax-error *current-language* compiled-file-name compile-file compile-and-load - compile compile-time-environment + compile decompile) #:export-syntax (call-with-compile-error-catch)) @@ -152,13 +152,6 @@ (receive (x e new-cenv) ((car passes) x e opts) (lp (cdr passes) x e (if first? new-cenv cenv) #f))))) -(define (compile-time-environment) - "A special function known to the compiler that, when compiled, will -return a representation of the lexical environment in place at compile -time. Useful for supporting some forms of dynamic compilation. Returns -#f if called from the interpreter." - #f) - (define (find-language-joint from to) (let lp ((in (reverse (or (lookup-compilation-order from to) (error "no way to compile" from "to" to)))) diff --git a/test-suite/tests/compiler.test b/test-suite/tests/compiler.test index d83167f34..7324d7795 100644 --- a/test-suite/tests/compiler.test +++ b/test-suite/tests/compiler.test @@ -18,45 +18,10 @@ (define-module (test-suite tests compiler) :use-module (test-suite lib) :use-module (test-suite guile-test) - :use-module (system vm program)) + :use-module (system base compile)) -(with-test-prefix "environments" +(with-test-prefix "basic" - (pass-if "compile-time-environment in evaluator" - (eq? (primitive-eval '(compile-time-environment)) #f)) - - (pass-if "compile-time-environment in compiler" - (equal? (compile '(compile-time-environment)) - (cons (current-module) - (cons '() '())))) - - (let ((env (compile - '(let ((x 0)) (set! x 1) (compile-time-environment))))) - (pass-if "compile-time-environment in compiler, heap-allocated var" - (equal? env - (cons (current-module) - (cons '((x . 0)) '(1))))) - - ;; fixme: compiling with #t or module - (pass-if "recompiling with environment" - (equal? ((compile '(lambda () x) #:env env)) - 1)) - - (pass-if "recompiling with environment/2" - (equal? ((compile '(lambda () (set! x (1+ x)) x) #:env env)) - 2)) - - (pass-if "recompiling with environment/3" - (equal? ((compile '(lambda () x) #:env env)) - 2)) - ) - - (pass-if "compile environment is #f" - (equal? ((compile '(lambda () 10))) - 10)) - - (pass-if "compile environment is a module" - (equal? ((compile '(lambda () 10) #:env (current-module))) - 10)) - )
\ No newline at end of file + (pass-if "compile to value" + (equal? (compile 1) 1))) |