1. Thanks for figuring this out! 2. I'm pushing a commit to utilize this.
3. I wanted to link to your post in my commit message -- but I can't. When I type this, your post isn't showing up in the Google Groups UI for this thread -- https://groups.google.com/forum/#!topic/racket-users/ANgDaNplOBc . John, is it stuck in moderation? On Mon, May 18, 2015 at 9:46 AM, Sam Tobin-Hochstadt <[email protected]> wrote: > I've now figured out what's going on here. The program in Greg's tests > already has lexical context for the `{0 1 2}`, so it uses the `#%app` from > that context, which gets the `racket` `#%app`. Normally, we'd just use > s-exps instead of syntax objects as input to `eval`, since they don't have > spurious lexical context, but that would lose the 'paren-shape property, > which is crucial here. The solution, taken from the implementation of > `racket/load`, is below: > > ``` > #lang racket > (require syntax/strip-context) > (current-namespace (make-base-namespace)) > (eval (namespace-syntax-introduce (strip-context #'(module m rackjure {0 1 > 2})))) > ``` > > Sam > > On Fri, May 15, 2015 at 3:47 PM Sam Tobin-Hochstadt <[email protected]> > wrote: >> >> It turns out that Greg's test was actually failing, but in a very strange >> way. Having looked at this a bunch now, the issue seems to be that: >> >> ``` >> (check-exn exn:fail:syntax? (λ () (eval #'(module m rackjure {0 1 2})))) >> ``` >> >> Doesn't work inside a module, but it does work at the repl or in >> `racket/load`. However, no namespace trickery that I've found will make it >> work in a module. >> >> However, changing the syntax error to something different, such as >> `(module m rackjure ())`, behaves as I would expect. Does `eval` + >> `quote-syntax` do something strange with {} properties on syntax objects? >> >> Sam >> >> On Fri, May 15, 2015 at 1:53 PM Greg Hendershott >> <[email protected]> wrote: >>> >>> This is OT wrt deps and doc, but: >>> >>> I don't understand this reported test failure for rackjure, on both >>> versions of Racket: >>> >>> test.rkt: raco test: non-empty stderr: >>> #"--------------------\nFAILURE\nname: check-exn\nlocation: >>> >>> (#<path:/home/racket/build-pkgs/user/.racket/6.1.1/pkgs/rackjure/rackjure/test.rkt> >>> 68 2 2223 186)\nexpression: (check-exn exn:fail:syntax? (thunk (eval >>> (syntax (module m rackjure (0 1 ... >>> >>> When I run the tests locally or on Travis CI, with `raco test -x .`, >>> all pass including this. >>> >>> The message seems to be complaining that stderr is non-blank. But the >>> test is check-exn. Is this an issue with the test environment not >>> handling check-exn (a successful check-exn will write to stderr)? >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Racket Users" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

