Optimize Pretty for infinite ribbon case
For a long time we have known that
Pretty is less than optimal for code generation purposes as we incur some cost due to its layout functionality (which is unnecessary when, e.g., producing assembler for
We should fix this.
One tricky issue is that of the strict length field in the
Beside constructor. @mpickering has recently been working on shrinking the
FastString representation and consequently removing its cached length. This would be fine except it means that codegen performance regresses since it must walk every
FastString we print to compute its length when building a
Beside node. This is wasted effort in the case of codegen.