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 racket-users+unsubscr...@googlegroups.com.
>> 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 racket-users+unsubscr...@googlegroups.com.
> 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 racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/8325d0ca-999c-e972-49c8-d6d46994069c%40sagegerard.com.

Reply via email to