There were several issues with ISLE's existing error reporting implementation. - When using Miette for more readable error reports, it would panic if errors were reported from multiple files in the same run. - Miette is pretty heavy-weight for what we're doing, with a lot of dependencies. - The `Error::Errors` enum variant led to normalization steps in many places, to avoid using that variant to represent a single error. This commit: - replaces Miette with codespan-reporting - gets rid of a bunch of cargo-vet exemptions - replaces the `Error::Errors` variant with a new `Errors` type - removes source info from `Error` variants so they're easy to construct - adds source info only when formatting `Errors` - formats `Errors` with a custom `Debug` impl - shares common code between ISLE's callers, islec and cranelift-codegen - includes a source snippet even with fancy-errors disabled I tried to make this a series of smaller commits but I couldn't find any good split points; everything was too entangled with everything else.
13 lines
346 B
TOML
13 lines
346 B
TOML
[package]
|
|
name = "islec"
|
|
version = "0.1.0"
|
|
authors = ["The Cranelift Project Developers"]
|
|
edition.workspace = true
|
|
license = "Apache-2.0 WITH LLVM-exception"
|
|
publish = false
|
|
|
|
[dependencies]
|
|
cranelift-isle = { version = "*", path = "../isle/", features = ["fancy-errors", "logging"] }
|
|
env_logger = { workspace = true }
|
|
clap = { workspace = true }
|