Skip to content

WIP: Port proofmode to use more efficient bytes type

Tej Chajed requested to merge tchajed/iris-coq:byte-strings into master

I started working on #317.

The proof mode and its tests pass, but heap lang is broken. There's one serious downside to the implementation: in order to get strings passed to tactics to parse as bytes, the default string interpretation has to be bytes, rather than carefully using the new bytes_scope where a proof mode string is expected. This breaks heap lang binders.

A more conservative implementation would continue to parse everything as strings but use bytes internally; this would incur the cost of some conversions whenever identifiers are first passed from the user, but terms would be more compact from then on.

This whole change only improves performance by making terms more compact, so it's somewhat unclear to me how worthwhile it is. One test I would do to evaluate this is to make identifiers much larger, say by just using long names, and see if that really hurts performance much.

Merge request reports