You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hoice's error-handling is based on error-chain and has several issues as far as Hoice is concerned.
The main problem is that error-chain erases errors, i.e.rsmt2's errors become dyn std::error::Error and it is not possible to know what the error is anymore.
(One very bad way is to check their description, but it's way too ugly to consider.)
This becomes bad because in some cases (pre-processing is the main example), it is convenient for hoice to encode the fact that a/some clause(s) are unsat/unknown as an Error. This leads to either contrived error-handling or bad behavior, such as #36.
I think hoice should have its own custom error-handling approach, which is actually not that hard to do. It could even be (mostly) compatible with error-chain's API. This custom approach should allow to
chain errors in a similar fashion to error-chain,
access the actual root (original) error without any type erasure.
The text was updated successfully, but these errors were encountered:
Hoice's error-handling is based on
error-chain
and has several issues as far as Hoice is concerned.The main problem is that
error-chain
erases errors, i.e.rsmt2
's errors becomedyn std::error::Error
and it is not possible to know what the error is anymore.(One very bad way is to check their description, but it's way too ugly to consider.)
This becomes bad because in some cases (pre-processing is the main example), it is convenient for hoice to encode the fact that a/some clause(s) are unsat/unknown as an
Err
or. This leads to either contrived error-handling or bad behavior, such as #36.I think hoice should have its own custom error-handling approach, which is actually not that hard to do. It could even be (mostly) compatible with
error-chain
's API. This custom approach should allow toerror-chain
,The text was updated successfully, but these errors were encountered: