move things to (language tree-il primitives)
authorAndy Wingo <wingo@pobox.com>
Fri, 22 May 2009 14:07:41 +0000 (16:07 +0200)
committerAndy Wingo <wingo@pobox.com>
Fri, 22 May 2009 14:07:41 +0000 (16:07 +0200)
* module/language/tree-il/optimize.scm:
* module/language/tree-il/primitives.scm: Move primitive-related things
  to primitive.scm from inline.scm and optimize.scm.

* module/Makefile.am: Update for inventory changes.

module/Makefile.am
module/language/tree-il/optimize.scm
module/language/tree-il/primitives.scm [moved from module/language/tree-il/inline.scm with 76% similarity]

index 22a9562..35959e2 100644 (file)
@@ -72,7 +72,7 @@ SCHEME_LANG_SOURCES =                                         \
   language/scheme/inline.scm
 
 TREE_IL_LANG_SOURCES =                                         \
-  language/tree-il/inline.scm                                  \
+  language/tree-il/primitives.scm                              \
   language/tree-il/optimize.scm                                 \
   language/tree-il/analyze.scm                                 \
   language/tree-il/compile-glil.scm                            \
index 9ba384f..3a02e02 100644 (file)
 ;;; Code:
 
 (define-module (language tree-il optimize)
-  #:use-module (system base syntax)
   #:use-module (language tree-il)
-  #:use-module (language tree-il inline)
-  #:export (optimize! add-interesting-primitive!))
+  #:use-module (language tree-il primitives)
+  #:export (optimize!))
 
 (define (env-module e)
   (if e (car e) (current-module)))
 ;; * degenerate case optimizations
 ;; * "fixing letrec"
 
-(define *interesting-primitive-names* 
-  '(apply @apply
-    call-with-values @call-with-values
-    call-with-current-continuation @call-with-current-continuation
-    call/cc
-    values
-    eq? eqv? equal?
-    = < > <= >= zero?
-    + * - / 1- 1+ quotient remainder modulo
-    not
-    pair? null? list? acons cons cons*
-
-    list vector
-
-    car cdr
-    set-car! set-cdr!
-
-    caar cadr cdar cddr
-
-    caaar caadr cadar caddr cdaar cdadr cddar cdddr
-
-    caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr
-    cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr))
-
-(define (add-interesting-primitive! name)
-  (hashq-set! *interesting-primitive-vars*
-              (module-variable (current-module) name) name))
-
-(define *interesting-primitive-vars* (make-hash-table))
-
-(for-each add-interesting-primitive! *interesting-primitive-names*)
-
-(define (resolve-primitives! x mod)
-  (post-order!
-   (lambda (x)
-     (record-case x
-       ((<toplevel-ref> src name)
-        (and (hashq-ref *interesting-primitive-vars*
-                        (module-variable mod name))
-             (make-primitive-ref src name)))
-       ((<module-ref> src mod name public?)
-        ;; for the moment, we're disabling primitive resolution for
-        ;; public refs because resolve-interface can raise errors.
-        (let ((m (and (not public?) (resolve-module mod))))
-          (and m (hashq-ref *interesting-primitive-vars*
-                            (module-variable m name))
-               (make-primitive-ref src name))))
-       (else #f)))
-   x))
similarity index 76%
rename from module/language/tree-il/inline.scm
rename to module/language/tree-il/primitives.scm
index 5a8e2db..25fd8c7 100644 (file)
 
 ;;; Code:
 
-(define-module (language tree-il inline)
+(define-module (language tree-il primitives)
   #:use-module (system base syntax)
   #:use-module (language tree-il)
   #:use-module (srfi srfi-16)
-  #:export (expand-primitives!))
+  #:export (resolve-primitives! add-interesting-primitive!
+            expand-primitives!))
+
+(define *interesting-primitive-names* 
+  '(apply @apply
+    call-with-values @call-with-values
+    call-with-current-continuation @call-with-current-continuation
+    call/cc
+    values
+    eq? eqv? equal?
+    = < > <= >= zero?
+    + * - / 1- 1+ quotient remainder modulo
+    not
+    pair? null? list? acons cons cons*
+
+    list vector
+
+    car cdr
+    set-car! set-cdr!
+
+    caar cadr cdar cddr
+
+    caaar caadr cadar caddr cdaar cdadr cddar cdddr
+
+    caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr
+    cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr))
+
+(define (add-interesting-primitive! name)
+  (hashq-set! *interesting-primitive-vars*
+              (module-variable (current-module) name) name))
+
+(define *interesting-primitive-vars* (make-hash-table))
+
+(for-each add-interesting-primitive! *interesting-primitive-names*)
+
+(define (resolve-primitives! x mod)
+  (post-order!
+   (lambda (x)
+     (record-case x
+       ((<toplevel-ref> src name)
+        (and (hashq-ref *interesting-primitive-vars*
+                        (module-variable mod name))
+             (make-primitive-ref src name)))
+       ((<module-ref> src mod name public?)
+        ;; for the moment, we're disabling primitive resolution for
+        ;; public refs because resolve-interface can raise errors.
+        (let ((m (and (not public?) (resolve-module mod))))
+          (and m (hashq-ref *interesting-primitive-vars*
+                            (module-variable m name))
+               (make-primitive-ref src name))))
+       (else #f)))
+   x))
+
+\f
 
 (define *primitive-expand-table* (make-hash-table))