Eliminate the remaining three compilers.
authorChris Hanson <org/chris-hanson/cph>
Mon, 12 Feb 2018 05:09:55 +0000 (21:09 -0800)
committerChris Hanson <org/chris-hanson/cph>
Mon, 12 Feb 2018 05:09:55 +0000 (21:09 -0800)
src/runtime/mit-syntax.scm
src/runtime/runtime.pkg
src/runtime/syntax-definitions.scm
src/runtime/syntax-items.scm

index b2c46eb96438ebe8eb868478b777abb2bea9ee07..a1890a4f6cb67da7bad2f0dd3b1c85830b859ea0 100644 (file)
@@ -59,13 +59,13 @@ USA.
 \f
 ;;;; Core primitives
 
-(define (compiler:lambda form senv hist)
+(define (classifier:lambda form senv hist)
   (syntax-check '(_ mit-bvl + form) form)
   (compile-lambda scode-lambda-name:unnamed
                  (cadr form)
                  form senv hist))
 
-(define (compiler:named-lambda form senv hist)
+(define (classifier:named-lambda form senv hist)
   (syntax-check '(_ (identifier . mit-bvl) + form) form)
   (compile-lambda (identifier->symbol (caadr form))
                  (cdadr form)
@@ -78,9 +78,9 @@ USA.
           (map-mit-lambda-list (lambda (identifier)
                                  (bind-variable identifier senv))
                                bvl)))
-      (output/lambda name
-                    bvl
-                    (compile-body-item (classify-body-cddr form senv hist))))))
+      (lambda-item name
+                  bvl
+                  (lambda () (classify-body-cddr form senv hist))))))
 
 (define (compile-body-item item)
   (output/body (compile-body-items (item->list item))))
@@ -126,9 +126,9 @@ USA.
          (else
           (syntax-error "Variable required in this context:" (cadr form))))))
 
-(define (compiler:delay form senv hist)
+(define (classifier:delay form senv hist)
   (syntax-check '(_ expression) form)
-  (output/delay (compile-expr-item (classify-form-cadr form senv hist))))
+  (delay-item (lambda () (classify-form-cadr form senv hist))))
 \f
 ;;;; Definitions
 
index 3273ca89a3fd7c7b75d499e6c7688c24c77da646..8ba7bb7a59df702d261a4a568bce66ac480242b3 100644 (file)
@@ -4581,20 +4581,20 @@ USA.
          classifier:begin
          classifier:declare
          classifier:define-syntax
+         classifier:delay
          classifier:er-macro-transformer
          classifier:if
+         classifier:lambda
          classifier:let-syntax
          classifier:letrec-syntax
+         classifier:named-lambda
          classifier:or
          classifier:quote
          classifier:quote-identifier
          classifier:rsc-macro-transformer
          classifier:sc-macro-transformer
          classifier:set!
-         classifier:the-environment
-         compiler:delay
-         compiler:lambda
-         compiler:named-lambda)
+         classifier:the-environment)
   (export (runtime mit-macros)
          keyword:access
          keyword:define
index 9b9147b9321b7fe04e8c4ef6a7836af760ee1548..cf8966a3b22d604a82eb067810405630c5283601 100644 (file)
@@ -32,11 +32,10 @@ USA.
 (add-boot-init!
  (lambda ()
 
-   (define (def name item)
-     (environment-define-macro system-global-environment name item))
-
    (define (define-classifier name classifier)
-     (def name (classifier-item classifier)))
+     (environment-define-macro system-global-environment
+                              name
+                              (classifier-item classifier)))
 
    (define-classifier 'begin classifier:begin)
    (define-classifier 'declare classifier:declare)
@@ -52,10 +51,6 @@ USA.
    (define-classifier 'sc-macro-transformer classifier:sc-macro-transformer)
    (define-classifier 'set! classifier:set!)
    (define-classifier 'the-environment classifier:the-environment)
-
-   (define (define-compiler name compiler)
-     (def name (compiler-item compiler)))
-
-   (define-compiler 'delay compiler:delay)
-   (define-compiler 'lambda compiler:lambda)
-   (define-compiler 'named-lambda compiler:named-lambda)))
\ No newline at end of file
+   (define-classifier 'delay classifier:delay)
+   (define-classifier 'lambda classifier:lambda)
+   (define-classifier 'named-lambda classifier:named-lambda)))
\ No newline at end of file
index b2bb81db870fad3e47adcd3b0dec9dfb420b9035..23cd6170f5519591f23145713dfff0f629cef985 100644 (file)
@@ -172,10 +172,10 @@ USA.
    (lambda ()
      (output/constant datum))))
 
-(define (lambda-item name bvl body-item)
+(define (lambda-item name bvl classify-body)
   (expr-item
    (lambda ()
-     (output/lambda name bvl (compile-expr-item body-item)))))
+     (output/lambda name bvl (compile-expr-item (classify-body))))))
 
 (define (let-item names value-items body-item)
   (expr-item
@@ -213,10 +213,10 @@ USA.
                               (compile-expr-item env-item)
                               (compile-expr-item rhs-item)))))
 
-(define (delay-item item)
+(define (delay-item classify)
   (expr-item
    (lambda ()
-     (output/delay (compile-expr-item item)))))
+     (output/delay (compile-expr-item (classify))))))
 
 (define (or-item items)
   (expr-item