On Aug 15, 2015, at 8:21 PM, Matthew Butterick <m...@mbtype.com> wrote:
> Of your suggestions, I couldn't get `syntax-local-introduce` to work, but > `datum->syntax` did. That made the macro-introduced identifier accessible at > the REPL. Thanks. > > However, I also wanted to set up the #lang so that DrRacket would > automatically print the value of `id` when it ran the file. I noticed I could > do this by introducing a `(module+ test ...)` in the #lang itself that prints > `id` (because by default, DrRacket automatically runs test submodules). Thus > obviating the need for a wrapper module. I think a better way of doing that would be using a runtime-config module as in: http://docs.racket-lang.org/guide/module-runtime-config.html Or I think you can also do that with a #%configure-runtime sudmodule (or something like that)? > On Aug 15, 2015, at 5:08 PM, Matthew Butterick <m...@mbtype.com> wrote: > >> Probably the wiser option. I'll see if I can adapt that solution. >> >> >> On Aug 15, 2015, at 4:31 PM, Alexander D. Knauth <alexan...@knauth.org> >> wrote: >> >>> What kind of funny stuff? >>> By the way, this sounds sort of like this >>> http://www.mail-archive.com/racket-users@googlegroups.com/msg28020.html >>> Solution: >>> http://www.mail-archive.com/racket-users@googlegroups.com/msg28031.html >>> >>> Although it could be a completely different problem, I don't know. >>> >>> On Aug 15, 2015, at 6:22 PM, Matthew Butterick <m...@mbtype.com> wrote: >>> >>>> I have a #lang that does some funny stuff with #%module-begin (maybe too >>>> funny), the result being that when I run it in DrRacket, the `provide`d >>>> identifiers aren't visible at the top level: >>>> >>>> (module my-lang-module my-lang >>>> ... >>>> (define id 42) >>>> (provide id)) >>>> >>>>> id >>>> id : undefined; >>>> cannot reference undefined identifier >>>> >>>> >>>> I've found a simple cure (maybe too simple) whereby I wrap my-lang-module >>>> with the usual racket/base module, which satisfies DrRacket: >>>> >>>> >>>> (module repl-wrapper racket/base >>>> (module my-lang-module my-lang >>>> ... >>>> (define id 42) >>>> (provide id)) >>>> (require 'my-lang-module) >>>> (provide (all-from-out 'my-lang-module)) >>>> >>>>> id >>>> 42 >>>> >>>> >>>> Question: is there an approved way to make this #lang-wrapping happen for >>>> the REPL, and only for the REPL? AFAICT `#%top-interaction` is not the >>>> cure, because it wraps the commands coming off the REPL (as opposed to the >>>> code in the definitions window). >>>> >>>> -- >>>> 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 racket-users+unsubscr...@googlegroups.com. >>>> 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 racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.