This turned out to be a bad idea. The thing is that some resources need
to be referred to in multiple ways -- for example, different texts in
links of different kinds, or using the URL directly in some cases. The
existence of `get-resource-path' is a witness for this problem, since it
was used for such cases -- this function is removed as well.
There's no point in trying to generalize this here: instead, go back to
a simpler system where a resource always returns its URL (with an
optional argument to get an absolute URL). When a `referrer'
functionality is needed, build it on top of that, in a place where it
makes more sense. (That is, in a specific code for generating content,
where there could be a decision that resources have plain links and also
a very short link for use in navbars.) Otherwise, it's usually simpler
to just define resources and referrers separately (as different
bindings, the latter uses the former).
Rename `read-intern-literal' to `datum-intern-literal'.
Interning is needed only in `read-syntax' or `datum->syntax' to
set up the invariants that the bytecode compiler needs for cross-module
optimization. When `read'ing numbers from a data file, meanwhile,
interning slows things down a lot and doesn't seem worthwhile.
The value isn't used; a 'dep tag is ony to establish
dependencies, and the relevant value is with a 'form or
'def tag. Avoiding the extra value saves another 5% in
cross-reference files.
This change saves a small amount of space in cross-reference files
and some space in loaded cross-reference information.
It also saves work converting strings to mutable on deserialize,
although the performance difference seems negligible.
In @defform*[#:id x1 [(qqq x1)]], for example, `#:id x1' needs to
calcel the default treatment of `x1' within `(qqq x1)' as
a metavariable, while treating `qqq' as a meta-variable.
instead of copying the file into place. This makes Lion's Preview happier (specifically
it now recognizes the file as a revision of the old one and updates itself instead of
treating it as a new file and opening a second window)
Related to the already fixed PR 12114 and PR 12133, which motivated the
error, and a few additional typos of the same kind.
(Note that it uses the symbols, but that's how they'll render anyway.)
For example, if you make a multi-column table with a
`racketblock' in each column, then the columns size
to fit the code --- instead of forcing the table width
to match the page width and forcing each column to take
an equal share width.