I think you’ll need `define-runtime-module-path` or `define-runtime-module-path-index` to alert the executable builder to the dynamic dependency.
On Sun, Nov 15, 2020 at 3:38 AM Dominik Pantůček < [email protected]> wrote: > > > > > Using ''sandbox as an argument to `namespace-require` to refer to a > > local module is something like passing 'x to `eval` to try to refer to > > a local variable `x`. The `namespace-require` procedure doesn't know > > where it's being called from, so it doesn't work. > > > > Try `quote-module-path`, which expands at compile time to effectively > > embed its context: > > > > #lang racket/base > > (require syntax/location) > > > > (module sandbox racket/base > > (provide #%app #%datum test) > > (define (test) (displayln 'test))) > > > > (parameterize ((current-namespace (make-base-empty-namespace))) > > (namespace-require (quote-module-path sandbox)) > > (eval '(test))) > > > > This is exactly what I was looking for! Thank you. It's a pity I didn't > ask in the past :) > > However, now I see a problem with creating executables with raco exe. > > MWE follows. > > ==== test-submod.rkt > #lang racket > > (require syntax/location) > > (module my-dsl racket/base > > (provide #%app my-proc) > > (define (my-proc) > (displayln "my-dsl/my-proc"))) > > (define (parse sexp) > (parameterize ((current-namespace (make-base-empty-namespace))) > (namespace-require (quote-module-path my-dsl)) > (eval sexp))) > > > (parse '(my-proc)) > ==== > > And then: > > $ ../racket-lang/racket/racket/bin/racket --version > Welcome to Racket v7.9.0.4 [cs]. > $ ../racket-lang/racket/racket/bin/racket test-submod.rkt > my-dsl/my-proc > $ ../racket-lang/racket/racket/bin/raco exe test-submod.rkt > $ ./test-submod > require: unknown module > module name: (submod '#%mzc:test-submod my-dsl) > context...: > .../TD4/test-submod.rkt:12:0: parse > body of '#%mzc:test-submod > $ > > When parsed, compiled and run using racket binary, it works as expected. > When parsed and compiled using raco exe, it succeeds without any error > and the resulting binary give aforementioned error. > > Any idea where did I get it wrong? > > > Dominik > > -- > 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]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/d357eb72-0647-d542-5148-852b9e62c2a2%40trustica.cz > . > -- -Philip -- 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]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/01000175cd1985dd-8b6d9cec-b745-4479-a3db-b092fd340434-000000%40email.amazonses.com.

