;; 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) )