No worries. Thank you for the help as always. On 4/16/21 2:11 PM, Matthew Flatt wrote: > Yes, attaching a module instances doesn't `require` it anywhere. > > (Sorry --- I didn't look at your program closely enough to work out > whether you meant to require it, start out with a non-empty namespace, > or something else.) > > At Fri, 16 Apr 2021 18:02:47 +0000, Sage Gerard wrote: >> Yes. The error changed to "hello: unbound identifier, also no #%app ..." >> for me, so I also had to add `(namespace-require (quote-module-path >> restricted) ns)` to get it working. >> >> Were you expecting that I had to do that too? The docs for the >> `make-base-*-namespace` procedures make it sound like attaching is >> sufficient. >> >> >> On 4/16/21 1:51 PM, Matthew Flatt wrote: >>> The name `'restricted` is allowed as a shorthand in `require` because >>> `require` knows what module it's in. The `namespace-attach-module` >>> function does not try to infer a module context from the namespace >>> argument; it uses the namespace argument only for its registry. So, you >>> need to use the full name of the submodule. >>> >>> The `quote-module-path` form expands to a full name using its syntactic >>> context (i.e., the enclsoing module's name), so >>> >>> (namespace-attach-module (namespace-anchor->namespace a) >>> (quote-module-path restricted) >>> ns) >>> >>> is probably what you want. >>> >>> >>> At Fri, 16 Apr 2021 17:29:28 +0000, Sage Gerard wrote: >>>> Why does this raise "namespace-attach-module: module not declared (in >>>> the source namespace)"? >>>> >>>> I expected that the `restricted` submodule would be both declared and >>>> instantiated by the time control reached `namespace-attach-module`. >>>> >>>> (module anon racket/base >>>> (module restricted racket/base >>>> (provide #%app #%datum #%top hello) >>>> (define (hello h) h)) >>>> (require 'restricted) >>>> (define ns (make-empty-namespace)) >>>> (define-namespace-anchor a) >>>> (namespace-attach-module (namespace-anchor->namespace a) ''restricted >>>> ns) >>>> (displayln (eval '(hello "world") ns))) >>>> >>>> -- >>>> ~slg >> -- >> ~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 [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/racket-users/e11dff02-0a27-06bd-9b4c-128f15e65 >> 849%40sagegerard.com. > -- > 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/20210416121152.2b0%40sirmail.smtps.cs.utah.edu.
-- ~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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/8325d0ca-999c-e972-49c8-d6d46994069c%40sagegerard.com.

