[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 02/10: Remove compilation order cache
From: |
Andy Wingo |
Subject: |
[Guile-commits] 02/10: Remove compilation order cache |
Date: |
Fri, 8 May 2020 11:13:41 -0400 (EDT) |
wingo pushed a commit to branch master
in repository guile.
commit f38735ffc63a3c7c51529b2ea963fb7fb665b2aa
Author: Andy Wingo <address@hidden>
AuthorDate: Thu May 7 21:16:13 2020 +0200
Remove compilation order cache
* module/system/base/language.scm (define-language): Remove
invalidate-compilation-cache! call.
(invalidate-compilation-cache!): Deprecate.
(*decompilation-cache*, *compilation-cache*): Remove.
(lookup-compilation-order, lookup-decompilation-order): Don't use a
cache.
(*current-language*): Only define this when deprecation is enabled.
---
module/system/base/language.scm | 41 +++++++++++++----------------------------
1 file changed, 13 insertions(+), 28 deletions(-)
diff --git a/module/system/base/language.scm b/module/system/base/language.scm
index 5d927e0..51725c1 100644
--- a/module/system/base/language.scm
+++ b/module/system/base/language.scm
@@ -29,9 +29,7 @@
language-make-default-environment
lookup-compilation-order lookup-decompilation-order
- invalidate-compilation-cache! default-environment
-
- *current-language*)
+ default-environment)
#:re-export (current-language))
@@ -53,10 +51,8 @@
(for-humans? #t)
(make-default-environment make-fresh-user-module))
-(define-macro (define-language name . spec)
- `(begin
- (invalidate-compilation-cache!)
- (define ,name (make-language #:name ',name ,@spec))))
+(define-syntax-rule (define-language name . spec)
+ (define name (make-language #:name 'name . spec)))
(define (lookup-language name)
(let ((m (resolve-module `(language ,name spec))))
@@ -64,12 +60,11 @@
(module-ref m name)
(error "no such language" name))))
-(define *compilation-cache* '())
-(define *decompilation-cache* '())
-
-(define (invalidate-compilation-cache!)
- (set! *decompilation-cache* '())
- (set! *compilation-cache* '()))
+(begin-deprecated
+ (define-public (invalidate-compilation-cache!)
+ (issue-deprecation-warning
+ "invalidate-compilation-cache is deprecated; recompile your modules")
+ (values)))
(define (compute-translation-order from to language-translators)
(cond
@@ -87,22 +82,11 @@
(language-translators from))))))))
(define (lookup-compilation-order from to)
- (let ((key (cons from to)))
- (or (assoc-ref *compilation-cache* key)
- (let ((order (compute-translation-order from to language-compilers)))
- (set! *compilation-cache*
- (acons key order *compilation-cache*))
- order))))
+ (compute-translation-order from to language-compilers))
(define (lookup-decompilation-order from to)
- (let ((key (cons from to)))
- (or (assoc-ref *decompilation-cache* key)
- ;; trickery!
- (let ((order (and=>
- (compute-translation-order to from language-decompilers)
- reverse!)))
- (set! *decompilation-cache* (acons key order *decompilation-cache*))
- order))))
+ (and=> (compute-translation-order to from language-decompilers)
+ reverse!))
(define (default-environment lang)
"Return the default compilation environment for source language LANG."
@@ -116,4 +100,5 @@
;;;
;; Deprecated; use current-language instead.
-(define *current-language* (parameter-fluid current-language))
+(begin-deprecated
+ (define-public *current-language* (parameter-fluid current-language)))
- [Guile-commits] branch master updated (728de16 -> 4311dc9), Andy Wingo, 2020/05/08
- [Guile-commits] 06/10: Add #:optimization-level, #:warning-level compile keyword args, Andy Wingo, 2020/05/08
- [Guile-commits] 09/10: Warning and optimization levels always small integers, Andy Wingo, 2020/05/08
- [Guile-commits] 08/10: Wire up simplified warning levels in "guild compile", Andy Wingo, 2020/05/08
- [Guile-commits] 02/10: Remove compilation order cache,
Andy Wingo <=
- [Guile-commits] 01/10: Update (system base compile) header, Andy Wingo, 2020/05/08
- [Guile-commits] 04/10: Use more `match' in (system base compile), Andy Wingo, 2020/05/08
- [Guile-commits] 05/10: Rework compile-fold, Andy Wingo, 2020/05/08
- [Guile-commits] 10/10: Define new "lowering" phase in compiler, Andy Wingo, 2020/05/08
- [Guile-commits] 07/10: Add language-specific analysis pass to compiler infrastructure, Andy Wingo, 2020/05/08
- [Guile-commits] 03/10: Slight (system base compile) refactor, Andy Wingo, 2020/05/08