Stream: git-wasmtime

Topic: wasmtime / PR #1242 Yanix now returns io::Error directly


view this post on Zulip Wasmtime GitHub notifications bot (Mar 06 2020 at 13:06):

kubkon edited PR #1242 from yanix-io-error to master:

This PR may seem somewhat controversial at first, but hear me
out first. Currently, Yanix would return a custom error that's a
wrapper around three other error types returned by various entities
inside Rust's libstd. In particular, Yanix's error type would wrap
io::Error, num::TryFromIntError and ffi::NulError. It turns
out that there is a natural conversion between the first and the last
and provided by the standard library, i.e., From<ffi::NulError> for io::Error
is provided. So at the surface it may seem that only the first two
wrapped error types are worth keeping.

Digging a little bit deeper into libstd, num::TryFromIntError
is essentially speaking only a marker that the integral conversion
went wrong. The struct implementing this error stores a unit type,
and nothing more. It therefore seems like a waste to wrap this
particular error when we could unify everything under io::Error.
And so, whenever we perform an int conversion, I suggest we simply
remap the error to io::Error::from_raw_os_error(libc::EOVERFLOW)
since this carries a comparable amount of information.

As a result of completely discarding yanix::Error custom error type,
we are invariably simplifying yanix itself, but also allowing
wasi-common to simplify in several places as well.

I'm curious to see what you guys reckon!


Last updated: Nov 22 2024 at 17:03 UTC