Skip to content

Commit 48781cd

Browse files
josephlrnewpavlov
authored andcommitted
wasi: Update and Fix Travis failures (#126)
1 parent d661aa7 commit 48781cd

File tree

4 files changed

+15
-16
lines changed

4 files changed

+15
-16
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ matrix:
5151
- gunzip cargo-web.gz
5252
- chmod +x cargo-web
5353
# Get wasmtime
54-
- export VERSION=v0.3.0 # Pin version for stability
54+
- export VERSION=v0.8.0 # Pin version for stability
5555
- wget -O wasmtime.tar.xz https://github.com/CraneStation/wasmtime/releases/download/$VERSION/wasmtime-$VERSION-x86_64-linux.tar.xz
5656
- tar -xf wasmtime.tar.xz --strip-components=1
5757
# Get wasm-bindgen-test-runner which matches our wasm-bindgen version

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ core = { version = "1.0", optional = true, package = "rustc-std-workspace-core"
2626
libc = { version = "0.2.64", default-features = false }
2727

2828
[target.'cfg(target_os = "wasi")'.dependencies]
29-
wasi = "0.7"
29+
wasi = "0.9"
3030

3131
[target.wasm32-unknown-unknown.dependencies]
3232
wasm-bindgen = { version = "0.2.29", optional = true }

src/error.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ impl Error {
6262

6363
cfg_if! {
6464
if #[cfg(unix)] {
65-
fn os_err_desc(errno: i32, buf: &mut [u8]) -> Option<&str> {
65+
fn os_err(errno: i32, buf: &mut [u8]) -> Option<&str> {
6666
let buf_ptr = buf.as_mut_ptr() as *mut libc::c_char;
6767
if unsafe { libc::strerror_r(errno, buf_ptr, buf.len()) } != 0 {
6868
return None;
@@ -74,12 +74,11 @@ cfg_if! {
7474
core::str::from_utf8(&buf[..idx]).ok()
7575
}
7676
} else if #[cfg(target_os = "wasi")] {
77-
fn os_err_desc(errno: i32, _buf: &mut [u8]) -> Option<&str> {
78-
core::num::NonZeroU16::new(errno as u16)
79-
.and_then(wasi::wasi_unstable::error_str)
77+
fn os_err(errno: i32, _buf: &mut [u8]) -> Option<wasi::Error> {
78+
wasi::Error::from_raw_error(errno as _)
8079
}
8180
} else {
82-
fn os_err_desc(_errno: i32, _buf: &mut [u8]) -> Option<&str> {
81+
fn os_err(_errno: i32, _buf: &mut [u8]) -> Option<&str> {
8382
None
8483
}
8584
}
@@ -91,8 +90,8 @@ impl fmt::Debug for Error {
9190
if let Some(errno) = self.raw_os_error() {
9291
dbg.field("os_error", &errno);
9392
let mut buf = [0u8; 128];
94-
if let Some(desc) = os_err_desc(errno, &mut buf) {
95-
dbg.field("description", &desc);
93+
if let Some(err) = os_err(errno, &mut buf) {
94+
dbg.field("description", &err);
9695
}
9796
} else if let Some(desc) = internal_desc(*self) {
9897
dbg.field("internal_code", &self.0.get());
@@ -108,8 +107,8 @@ impl fmt::Display for Error {
108107
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
109108
if let Some(errno) = self.raw_os_error() {
110109
let mut buf = [0u8; 128];
111-
match os_err_desc(errno, &mut buf) {
112-
Some(desc) => f.write_str(desc),
110+
match os_err(errno, &mut buf) {
111+
Some(err) => err.fmt(f),
113112
None => write!(f, "OS Error: {}", errno),
114113
}
115114
} else if let Some(desc) = internal_desc(*self) {

src/wasi.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88

99
//! Implementation for WASI
1010
use crate::Error;
11-
use core::num;
12-
use wasi::wasi_unstable::random_get;
11+
use core::num::NonZeroU32;
12+
use wasi::random_get;
1313

1414
pub fn getrandom_inner(dest: &mut [u8]) -> Result<(), Error> {
15-
random_get(dest).map_err(|e: num::NonZeroU16| {
16-
// convert wasi's NonZeroU16 error into getrandom's NonZeroU32 error
17-
num::NonZeroU32::new(e.get() as u32).unwrap().into()
15+
unsafe { random_get(dest.as_mut_ptr(), dest.len()) }.map_err(|e: wasi::Error| {
16+
// convert wasi's Error into getrandom's NonZeroU32 error
17+
NonZeroU32::new(e.raw_error() as u32).unwrap().into()
1818
})
1919
}

0 commit comments

Comments
 (0)