In #4143 we made ISLE compilation part of the normal build flow again, to avoid the issues with the checked-in source. To make this acceptably fast, we cut down dependencies of the ISLE compiler, so the "fancy" error printing is now optional. When not included, it just prints error messages to stderr in a list. However, this did not include file locations. It might be nice to have this without enabling the "fancy printing" and waiting for that to build. Fortunately most of the plumbing for this was already present (we had it at one point before switching to miette). This PR adds back locations to the basic error output. It now looks like: ``` Error building ISLE files: ISLE errors: src/isa/aarch64/inst.isle:1:1: parse error: Unexpected token Symbol("asdf") ```
ISLE: Instruction Selection / Lowering Expressions
ISLE is a domain specific language (DSL) for instruction selection and lowering
clif instructions to vcode's MachInsts in Cranelift.
ISLE is a statically-typed term-rewriting language. You define rewriting rules
that map input terms (clif instructions) into output terms (MachInsts). These
rules get compiled down into Rust source test that uses a tree of match
expressions that is as good or better than what you would have written by hand.