checking: ex-6-4-macros.r6rs checking: checking: ok: is `(my-helpers id-stuff)' checking: (export ...) ok: one is `find-dup' ok: (export ...) count: 1 checking: (import ...) checking: checking: ok: is `(r6rs)' ok: one is `(r6rs)' ok: one is `(r6rs)' ok: (import ...) count: 1 ok: one is `(define (find-dup l) ...)' ok: rest forms count: 1 ok: syntax ok: known: defs ok: : (lambda (l) (and (pair? l) (let loop ((rest (cdr l))) (cond [ (null? rest) (find-dup (cdr l)) ] [ (bound-identifier=? (car l) (car rest)) (car rest) ] [else (loop (cdr rest)) ])))) ok: known: names ok: : find-dup checking: checking: ok: is `(my-helpers values-stuff)' checking: (export ...) ok: one is `mvlet' ok: (export ...) count: 1 checking: (import ...) checking: checking: ok: is `(r6rs)' ok: one is `(r6rs)' ok: one is `(r6rs)' checking: `for' checking: checking: ok: is `(my-helpers id-stuff)' ok: one is `(my-helpers id-stuff)' ok: one is `expand' ok: one is `(for (my-helpers id-stuff) expand)' ok: (import ...) count: 2 ok: one is `(define-syntax mvlet ...)' ok: rest forms count: 1 ok: syntax ok: known: defs ok: : (lambda (stx) (syntax-case stx () [ (_ [ (id ...) expr] body0 body ...) (not (find-dup (syntax (id ...)))) (syntax (call-with-values (lambda () expr) (lambda (id ...) body0 body ...))) ])) ok: known: names ok: : mvlet checking: checking: ok: is `(let-div)' checking: (export ...) ok: one is `let-div' ok: (export ...) count: 1 checking: (import ...) checking: checking: ok: is `(r6rs)' ok: one is `(r6rs)' ok: one is `(r6rs)' checking: checking: ok: is `(my-helpers values-stuff)' ok: one is `(my-helpers values-stuff)' ok: one is `(my-helpers values-stuff)' checking: checking: ok: is `(r6rs r5rs)' ok: one is `(r6rs r5rs)' ok: one is `(r6rs r5rs)' ok: (import ...) count: 3 ok: one is `(define (quotient+remainder n d) ...)' ok: one is `(define-syntax let-div ...)' ok: rest forms count: 2 ok: syntax ok: known: defs ok: : (lambda (n d) (let ([q (quotient n d) ]) (values q (- n (* q d))))) ok: : (syntax-rules () [ (_ n d (q r) body0 body ...) (mvlet [ (q r) (quotient+remainder n d) ] body0 body ...) ]) ok: known: names ok: : quotient+remainder ok: : let-div ok: ex-6-4-macros.r6rs checking: ex-6-4.r6rs checking: checking: ok: is `(stack)' checking: (export ...) ok: one is `make' ok: one is `push!' ok: one is `pop!' ok: one is `empty!' ok: (export ...) count: 4 checking: (import ...) checking: checking: ok: is `(r6rs)' ok: one is `(r6rs)' ok: one is `(r6rs)' ok: (import ...) count: 1 ok: one is `(define (make) ...)' ok: one is `(define (push! s v) ...)' ok: one is `(define (pop! s) ...)' ok: one is `(define (empty! s) ...)' ok: rest forms count: 4 ok: syntax ok: known: defs ok: : (lambda () (list (quote ()))) ok: : (lambda (s v) (set-car! s (cons v (car s)))) ok: : (lambda (s) (let ([v (caar s) ]) (set-car! s (cdar s)) v)) ok: : (lambda (s) (set-car! s (quote ()))) ok: known: names ok: : make ok: : push! ok: : pop! ok: : empty! checking: checking: ok: is `(balloons)' checking: (export ...) ok: one is `make' ok: one is `push' ok: one is `pop' ok: (export ...) count: 3 checking: (import ...) checking: checking: ok: is `(r6rs)' ok: one is `(r6rs)' ok: one is `(r6rs)' ok: (import ...) count: 1 ok: one is `(define (make w h) ...)' ok: one is `(define (push b amt) ...)' ok: one is `(define (pop b) ...)' ok: rest forms count: 3 ok: syntax ok: known: defs ok: : (lambda (w h) (cons w h)) ok: : (lambda (b amt) (cons (- (car b) amt) (+ (cdr b) amt))) ok: : (lambda (b) (display "Boom! ") (display (* (car b) (cdr b))) (newline)) ok: known: names ok: : make ok: : push ok: : pop checking: checking: ok: is `(party)' checking: (export ...) checking: (rename ( ) ...) checking: ( ) ok: ( ) is `(balloon:make make)' checking: ( ) ok: ( ) is `(balloon:push push)' ok: one is `(rename (balloon:make make) (balloon:push push))' ok: one is `push!' ok: one is `make-party' checking: (rename ( ) ...) checking: ( ) ok: ( ) is `(party-pop! pop!)' ok: one is `(rename (party-pop! pop!))' ok: (export ...) count: 4 checking: (import ...) checking: checking: ok: is `(r6rs)' ok: one is `(r6rs)' ok: one is `(r6rs)' checking: checking: checking: ok: is `(stack)' ok: one is `(stack)' ok: one is `(only (stack) make push! pop!)' ok: one is `(only (stack) make push! pop!)' checking: checking: checking: ok: is `(balloons)' ok: one is `(balloons)' ok: one is `(prefix (balloons) balloon:)' ok: one is `(prefix (balloons) balloon:)' ok: (import ...) count: 3 ok: one is `(define (make-party) ...)' ok: one is `(define (party-pop! p) ...)' ok: rest forms count: 2 ok: syntax ok: known: defs ok: : (lambda () (let ([s (make) ]) (push! s (balloon:make 10 10)) (push! s (balloon:make 12 9)) s)) ok: : (lambda (p) (balloon:pop (pop! p))) ok: known: names ok: : make-party ok: : party-pop! checking: checking: ok: is `(main)' checking: (export ...) ok: (export ...) count: 0 checking: (import ...) checking: checking: ok: is `(r6rs)' ok: one is `(r6rs)' ok: one is `(r6rs)' checking: checking: ok: is `(party)' ok: one is `(party)' ok: one is `(party)' ok: (import ...) count: 2 ok: one is `(define p ...)' ok: one is `(pop! p)' ok: one is `(push! p (push (make 5 5) 1))' ok: one is `(pop! p)' ok: rest forms count: 4 ok: syntax ok: known: defs ok: : (make-party) ok: known: names ok: : p ok: ex-6-4.r6rs checking: hello.r6rs checking: checking: checking: ok: is `(42 33 21)' ok: is `(foo bar zzz (42 33 21))' checking: (export ...) ok: one is `nothing' checking: (rename ( ) ...) checking: ( ) ok: ( ) is `(foo bar)' checking: ( ) ok: ( ) is `(xxx yy)' ok: one is `(rename (foo bar) (xxx yy))' ok: one is `is' ok: one is `actually' checking: (rename ( ) ...) checking: ( ) ok: ( ) is `(a b)' checking: ( ) ok: ( ) is `(c d)' ok: one is `(rename (a b) (c d))' ok: one is `here' ok: (export ...) count: 6 checking: (import ...) checking: `for' checking: checking: checking: ok: is `(sdl misc-utils)' ok: one is `(sdl misc-utils)' ok: one is `(prefix (sdl misc-utils) MISC:)' ok: one is `run' ok: one is `(for (prefix (sdl misc-utils) MISC:) run)' checking: checking: checking: ok: is `42' checking: checking: checking: ok: is `(<= 22)' checking: ok: is `(>= 44)' ok: is `(and (<= 22) (>= 44))' ok: is `(not (and (<= 22) (>= 44)))' ok: is `(not (and (<= 22) (>= 44)))' checking: checking: ok: is `(<= 22)' checking: ok: is `(>= 42)' ok: is `(or (<= 22) (>= 42))' ok: is `(or (<= 22) (>= 42))' ok: count: 3 ok: is `(ice-9 foo (42 (not (and (<= 22) (>= 44))) (or (<= 22) (>= 42))))' ok: one is `(ice-9 foo (42 (not (and (<= 22) (>= 44))) (or (<= 22) (>= 42))))' ok: one is `(ice-9 foo (42 (not (and (<= 22) (>= 44))) (or (<= 22) (>= 42))))' ok: (import ...) count: 2 ok: one is `(define ((a b) c) ...)' ok: one is `((a 10) 20)' ok: rest forms count: 2 ok: syntax ok: known: defs ok: : (lambda (b) (lambda (c) (+ b c))) ok: known: names ok: : a ok: hello.r6rs checking: hogwash.r6rs checking: checking: checking: ok: is `(42 33 21)' ok: is `(foo bar zzz (42 33 21))' checking: (export ...) ok: one is `nothing' checking: (rename ( ) ...) checking: ( ) ok: ( ) is `(foo bar)' ok: one is `(rename (foo bar))' ok: one is `is' ok: one is `actually' checking: (rename ( ) ...) checking: ( ) ok: ( ) is `(a b)' checking: ( ) ok: ( ) is `(c d)' ok: one is `(rename (a b) (c d))' ok: one is `here' ok: (export ...) count: 6 checking: (import ...) checking: checking: checking: ok: is `(foo bar baz)' ok: one is `(foo bar baz)' ok: one is `(prefix (foo bar baz) SDL:)' ok: one is `(prefix (foo bar baz) SDL:)' ok: (import ...) count: 1 ok: one is `(define (a b) ...)' ok: one is `(a 19)' hogwash.r6rs:16:3: bad `define' placement: `(define f ...)' (while checking ) (while checking hogwash.r6rs) ERROR: syntax error