This PR improves pretty printing of level metavariables: they now print with a per-definition index rather than their per-module internal identifiers. Furthermore, `+` is printed uniformly in level expressions with surrounding spaces. **Breaking metaprogramming change:** level pretty printing should use `delabLevel` or `MessageData.ofLevel`; functions such as `format` or `toString` do not have access to the indices, since they are stored in the current metacontext. Absent index information, metavariables print with the raw internal identifier as `?_mvar.nnn`. **Note:** The heartbeat counter also increases quicker due to counting allocations that record level metavariable indices. In some tests we needed to increase `maxHeartbeats` by 20–50% to compensate, without a corresponding slowdown.
8 lines
132 B
Text
8 lines
132 B
Text
"max (max (max (w + 2) (x + 4)) (y + 2)) (z + 5)"
|
|
"x"
|
|
"x"
|
|
"1"
|
|
"x + 1"
|
|
"x + 1"
|
|
"x + 1"
|
|
"#[0, 0, 1, x, x, x + 1, x + 2, y, z, z + 2]"
|