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.

Reply via email to