Build the coordinate analysis of original: its UTF-8 encoding, the
byte-count-preserving analyzed surface, and one CharRun per code
point locating it in all three spaces.
An ALL-ASCII input takes the identity path. Nothing about the contract
changes there — the three spaces coincide, which is what the
byte-count-preserving rule above was chosen to guarantee — so the mapping is
arithmetic and the per-character CharRun array is deferred to its
first reader. The analyzer re-derived that map for every nested block body it
descended into, and pathresolve's own locate discards the coordinate
facts of a body anyway (they are properties of the root input): on a 60 KiB
document nested 64 deep it decoded 7.9 MiB and allocated a run object per
byte of it, a quarter of total analysis time (#322).
Build the coordinate analysis of
original: its UTF-8 encoding, the byte-count-preservinganalyzedsurface, and one CharRun per code point locating it in all three spaces.An ALL-ASCII input takes the identity path. Nothing about the contract changes there — the three spaces coincide, which is what the byte-count-preserving rule above was chosen to guarantee — so the mapping is arithmetic and the per-character CharRun array is deferred to its first reader. The analyzer re-derived that map for every nested block body it descended into, and
pathresolve's ownlocatediscards the coordinate facts of a body anyway (they are properties of the root input): on a 60 KiB document nested 64 deep it decoded 7.9 MiB and allocated a run object per byte of it, a quarter of total analysis time (#322).