From 724ffd2e6fc84bab321d407846774b6aa583655e Mon Sep 17 00:00:00 2001 From: Minseong Jang Date: Tue, 25 Jan 2022 09:14:55 +0900 Subject: [PATCH] Replace failure with thiserror --- Cargo.lock | 125 +++++++++-------------------------------------- Cargo.toml | 2 +- src/ir/dtype.rs | 6 +-- src/ir/interp.rs | 17 +++---- 4 files changed, 33 insertions(+), 117 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c2ad1eb..1cdb8b1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,21 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "addr2line" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "atty" version = "0.2.14" @@ -34,33 +19,12 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" -[[package]] -name = "backtrace" -version = "0.3.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "cc" -version = "1.0.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" - [[package]] name = "cfg-if" version = "1.0.0" @@ -103,28 +67,6 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", - "failure_derive", -] - -[[package]] -name = "failure_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - [[package]] name = "fastrand" version = "1.6.0" @@ -145,12 +87,6 @@ dependencies = [ "wasi", ] -[[package]] -name = "gimli" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" - [[package]] name = "hashbrown" version = "0.11.2" @@ -211,7 +147,6 @@ name = "kecc" version = "0.1.0" dependencies = [ "clap", - "failure", "hexf-parse", "itertools", "lang-c", @@ -219,6 +154,7 @@ dependencies = [ "peg", "rand", "tempfile", + "thiserror", "wait-timeout", ] @@ -246,16 +182,6 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" -[[package]] -name = "miniz_oxide" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" -dependencies = [ - "adler", - "autocfg", -] - [[package]] name = "num-traits" version = "0.2.14" @@ -265,15 +191,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "object" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" -dependencies = [ - "memchr", -] - [[package]] name = "ordered-float" version = "2.10.0" @@ -425,12 +342,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "rustc-demangle" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" - [[package]] name = "strsim" version = "0.10.0" @@ -448,18 +359,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", -] - [[package]] name = "tempfile" version = "3.3.0" @@ -489,6 +388,26 @@ version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" +[[package]] +name = "thiserror" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "unicode-xid" version = "0.2.2" @@ -545,4 +464,4 @@ dependencies = [ name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" \ No newline at end of file +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/Cargo.toml b/Cargo.toml index b213128..c8fe9c7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,9 +30,9 @@ build-bin = ["clap"] [dependencies] clap = { version = "3.0.10", features = ["derive"], optional = true } +thiserror = "1.0.30" lang-c = "0.11.0" itertools = "0.10.3" -failure = "0.1.8" tempfile = "3.3.0" ordered-float = "2.10.0" hexf-parse = "0.2.1" diff --git a/src/ir/dtype.rs b/src/ir/dtype.rs index 35e1ae0..948ffab 100644 --- a/src/ir/dtype.rs +++ b/src/ir/dtype.rs @@ -1,11 +1,11 @@ use core::convert::TryFrom; use core::fmt; use core::ops::Deref; -use failure::Fail; use lang_c::ast; use lang_c::span::Node; use std::collections::{HashMap, HashSet}; use std::hash::Hash; +use thiserror::Error; use itertools::izip; @@ -13,10 +13,10 @@ use crate::ir::*; use crate::some_or; /// TODO(document) -#[derive(Debug, PartialEq, Fail)] +#[derive(Debug, PartialEq, Error)] pub enum DtypeError { /// For uncommon error - #[fail(display = "{}", message)] + #[error("{message}")] Misc { /// TODO(document) message: String, diff --git a/src/ir/interp.rs b/src/ir/interp.rs index 5c63fc0..3efbaa1 100644 --- a/src/ir/interp.rs +++ b/src/ir/interp.rs @@ -1,9 +1,9 @@ use core::fmt; use core::iter; use core::mem; -use failure::Fail; use ordered_float::OrderedFloat; use std::collections::HashMap; +use thiserror::Error; use itertools::izip; @@ -301,20 +301,17 @@ impl Value { } } -#[derive(Debug, PartialEq, Fail)] +#[derive(Debug, PartialEq, Error)] pub enum InterpreterError { - #[fail(display = "current block is unreachable")] + #[error("current block is unreachable")] Unreachable, - #[fail(display = "ir has no main function")] + #[error("ir has no main function")] NoMainFunction, - #[fail(display = "ir has no function definition of {} function", func_name)] + #[error("ir has no function definition of {} function", func_name)] NoFunctionDefinition { func_name: String }, - #[fail( - display = "ir has no structure definition of {} structure", - struct_name - )] + #[error("ir has no structure definition of {struct_name} structure")] NoStructureDefinition { struct_name: String }, - #[fail(display = "{}:{} / {}", func_name, pc, msg)] + #[error("{func_name}:{pc} / {msg}")] Misc { func_name: String, pc: Pc,