diff --git a/compiler-testing.scm b/compiler-testing.scm new file mode 100644 index 00000000..4073fc71 --- /dev/null +++ b/compiler-testing.scm @@ -0,0 +1,48 @@ +;; Another temporary test file +(import (scheme base) (scheme write)) + +(define (bbs-lbl-counter bbs) (vector-ref bbs 0)) +(define label-limit 9999) +(define (bbs-new-lbl! bbs) ((bbs-lbl-counter bbs))) +(define (queue-empty) (cons '() '())) +(define (make-bbs) + (vector (make-counter 1 label-limit bbs-limit-err) (queue-empty) '())) +(define (make-counter next limit limit-error) + (lambda () + (if (< next limit) + (let ((result next)) (set! next (+ next 1)) result) + (limit-error)))) +(define (bbs-limit-err) + (error "procedure is too long [too many labels]")) + +(let* ( + (bbs (make-bbs)) + (lbl1 (bbs-new-lbl! bbs)) + (lbl2 (bbs-new-lbl! bbs)) + ) +; (let* ((p-bbs *bbs*) +; (p-bb *bb*) +; (p-proc-queue proc-queue) +; (p-known-procs known-procs) +; (p-context (current-context)) +; (bbs (make-bbs)) +; (lbl1 (bbs-new-lbl! bbs)) +; (lbl2 (bbs-new-lbl! bbs)) +; (context (entry-context node '())) +; (frame (context->frame +; context +; (set-union (free-variables (prc-body node)) ret-var-set))) +; (bb1 (make-bb (make-label-entry +; lbl1 +; (length (prc-parms node)) +; (prc-min node) +; (prc-rest node) +; #f +; frame +; (source-comment node)) +; bbs)) +; (bb2 (make-bb (make-label-simple lbl2 frame (source-comment node)) +; bbs))) +(write `(DEBUG bbs ,bbs)) +(newline) +)