Thanks! With that approach, I can get it to build. -J
On Sun, Nov 25, 2012 at 10:11 PM, Robby Findler <ro...@eecs.northwestern.edu> wrote: > I'm not sure what that error message means, but I think I was thinking > of a different strategy. Something like this (but where you deal with > 'else' properly and write in '#%kernel (so you have to use the > expansion of log-info etc etc)), all staying in the same file. > > #lang racket > (provide (rename-out [new:case case])) > (define-syntax (new:case stx) > (with-syntax ([line (syntax-line stx)] > [fn (syntax-source stx)]) > (syntax-case stx () > [(_ exp [(d ...) exp ...]) > #'(let ([x exp]) > (check-em 'fn line x '(d ... ...)) > (case exp [(d ...) exp ...] ...))]))) > > (define (check-em file line val datums) > (for ([datum (in-list datums)]) > (unless (eq? (equal? datum val) > (eqv? datum val)) > (log-info > (format "found a difference in ~a:~a; ~s vs ~s" > file line datum val))))) > > Robby > > On Sun, Nov 25, 2012 at 8:57 PM, Jon Zeppieri <zeppi...@gmail.com> wrote: >> On Sun, Nov 25, 2012 at 7:49 PM, Jon Zeppieri <zeppi...@gmail.com> wrote: >>> >>> Looking back at the users thread, I see what you mean. I'll create a >>> branch that will do what you suggest: evaluate the expression both >>> ways, compare, and complain if the results differ. >>> >> >> This is not turning out to be as simple as expected. >> >> I created modules equal-case.rkt and eqv-case.rkt, and then a simple >> case macro in case.rkt that uses both. However, the build fails at: >> >> make xsrc/precomp.h >> env XFORM_PRECOMP=yes ../racketcgc -cqu ../../../racket/gc2/xform.rkt >> --setup . --cpp "gcc -E -I./.. -I../../../racket/gc2/../include -DOS_X >> -D_DARWIN_UNLIMITED_SELECT -pthread -fno-common " --keep-lines -o >> xsrc/precomp.h ../../../racket/gc2/precomp.c >> /Users/jaz/src/racket/collects/s-exp/lang/reader.rkt:1:36: >> syntax/module-reader: got two #:language keywords >> in: #:language >> context...: >> /Users/jaz/src/racket/collects/syntax/module-reader.rkt:19:14: loop >> /Users/jaz/src/racket/collects/syntax/module-reader.rkt:35:4: >> construct-reader >> standard-module-name-resolver >> standard-module-name-resolver >> standard-module-name-resolver >> /Users/jaz/src/racket/src/racket/gc2/xform.rkt:95:24 >> /Users/jaz/src/racket/src/racket/gc2/xform.rkt: [running body] >> make[4]: *** [xsrc/precomp.h] Error 1 >> make[3]: *** [all] Error 2 >> make[2]: *** [3m] Error 2 >> make[1]: *** [3m] Error 2 >> make: *** [all] Error 2 _________________________ Racket Developers list: http://lists.racket-lang.org/dev