How do I properly set current-module-name-resolver for a process?
Sage Gerard <sage-nnKKxiom5Z1/[email protected]> Tue, 19 May 2020 20:10:01 +0000
| Newsgroups | gmane.comp.lang.racket.user,gmane.lisp.scheme.plt |
|---|---|
| Message-ID | <_cvEcFutv9gqlkwOX38uKhLoY-7MWpo24yP9DQLV-ml9bRLjiCG1aZmmIj5p3zeYxjyfPt0f65dei4MJcSUsuWX5lDcBSsO6QEW2wBlvFzI=@sagegerard.com> |
I'm trying to figure out how to set current-module-name-resolver in advance of all other code for a process. I'm guessing this would require a custom launcher that does (for example) `racket -l foo/replace-resolver bar.rkt`.
In that sense, I expect that a `replace-resolver` of the form below wouldn't work because it runs at phase 0, after the expander resolved everything for `bar.rkt`.
How do I do what I mean here across all phases, for all uses of (dynamic-|local-)require everywhere in my program?
(let ([old (current-module-name-resolver)])
(current-module-name-resolver
(case-lambda
[(declared-module-name src-namespace)
(old declared-module-name src-namespace)]
[(module-path source-module stx should-load?)
(old (maybe-rewrite-module-path module-path source-module)
source-module
stx
should-load?)
r])))
~slg
--
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+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/_cvEcFutv9gqlkwOX38uKhLoY-7MWpo24yP9DQLV-ml9bRLjiCG1aZmmIj5p3zeYxjyfPt0f65dei4MJcSUsuWX5lDcBSsO6QEW2wBlvFzI%3D%40sagegerard.com.