Thanks for the prompt reply!

> On Nov 17, 2019, at 11:15, Matthew Flatt <[email protected]> wrote:
> 
> Making mutual references work is the job of info-in and info-out files.
> Document A's info-out file is the info-in file for any document that
> needs to reference document A. Yes, you have to run to a fixed point
> where none of the info-out/info-in files change. That requires a fancy
> `make` rule, indeed. :)

Yes, perhaps I’ll try to avoid the need for recursive references for now. :) I 
do have two related followup questions, though. First, how does `raco setup` 
know what the dependencies are in the first place, so it knows what it needs to 
rerender? I’ve noticed it seems to do things in at least two passes—“running” 
the documentation before “rendering” it—is that somehow involved?

Second, I’d like to better understand how “tag prefixes” work, since they seem 
to be the mechanism by which tags from different documents are distinguished. 
What I don’t really understand is what the resolution logic actually is or 
where it happens. The documentation on tags says this:

> The prefix is used for reference outside the part, including the use of tags 
> in the part’s tags field. Typically, a document’s main part has a tag prefix 
> that applies to the whole document; references to sections and defined terms 
> within the document from other documents must include the prefix, while 
> references within the same document omit the prefix.


What part of the pipeline implements this prefix-sensitive lookup behavior? Is 
it the `resolve-get` family of functions, so I can just put things in the 
`tag-prefixes` field of a `part` during the collect phase and everything else 
will happen automatically? Or do I need to do something more myself? Also, I 
don’t completely understand the way the resolution works… is it possible for 
there to be some kind of “ambiguous match,” where two different tag definitions 
are equally-specific matches for a given reference? If so, what happens in that 
scenario? (And if not, why not?)

-- 
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/3C4C998F-F21B-46A0-909B-00598ADF3CEE%40gmail.com.

Reply via email to