diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e05f3efd6..f60bddabe 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -407,7 +407,7 @@ jobs: - uses: actions/checkout@v3 - uses: dtolnay/rust-toolchain@stable with: - target: wasm32-wasi + target: wasm32-wasip1 - uses: Swatinem/rust-cache@v2 - name: Setup Wasmer @@ -415,8 +415,8 @@ jobs: - name: Install clang run: sudo apt-get update && sudo apt-get install clang -y - name: build rustpython - run: cargo build --release --target wasm32-wasi --features freeze-stdlib,stdlib --verbose + run: cargo build --release --target wasm32-wasip1 --features freeze-stdlib,stdlib --verbose - name: run snippets - run: wasmer run --dir `pwd` target/wasm32-wasi/release/rustpython.wasm -- `pwd`/extra_tests/snippets/stdlib_random.py + run: wasmer run --dir `pwd` target/wasm32-wasip1/release/rustpython.wasm -- `pwd`/extra_tests/snippets/stdlib_random.py - name: run cpython unittest - run: wasmer run --dir `pwd` target/wasm32-wasi/release/rustpython.wasm -- `pwd`/Lib/test/test_int.py + run: wasmer run --dir `pwd` target/wasm32-wasip1/release/rustpython.wasm -- `pwd`/Lib/test/test_int.py diff --git a/Cargo.toml b/Cargo.toml index 35ff85758..e2dc581ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -105,7 +105,7 @@ members = [ version = "0.4.0" authors = ["RustPython Team"] edition = "2021" -rust-version = "1.82.0" +rust-version = "1.83.0" repository = "https://github.com/RustPython/RustPython" license = "MIT" diff --git a/README.md b/README.md index 96e201ac1..903e829b9 100644 --- a/README.md +++ b/README.md @@ -91,13 +91,13 @@ You can compile RustPython to a standalone WebAssembly WASI module so it can run Build ```bash -cargo build --target wasm32-wasi --no-default-features --features freeze-stdlib,stdlib --release +cargo build --target wasm32-wasip1 --no-default-features --features freeze-stdlib,stdlib --release ``` Run by wasmer ```bash -wasmer run --dir `pwd` -- target/wasm32-wasi/release/rustpython.wasm `pwd`/extra_tests/snippets/stdlib_random.py +wasmer run --dir `pwd` -- target/wasm32-wasip1/release/rustpython.wasm `pwd`/extra_tests/snippets/stdlib_random.py ``` Run by wapm @@ -114,10 +114,10 @@ $ wapm run rustpython You can build the WebAssembly WASI file with: ```bash -cargo build --release --target wasm32-wasi --features="freeze-stdlib" +cargo build --release --target wasm32-wasip1 --features="freeze-stdlib" ``` -> Note: we use the `freeze-stdlib` to include the standard library inside the binary. You also have to run once `rustup target add wasm32-wasi`. +> Note: we use the `freeze-stdlib` to include the standard library inside the binary. You also have to run once `rustup target add wasm32-wasip1`. ### JIT (Just in time) compiler diff --git a/common/src/boxvec.rs b/common/src/boxvec.rs index 50f9ab271..40856c672 100644 --- a/common/src/boxvec.rs +++ b/common/src/boxvec.rs @@ -1,5 +1,7 @@ //! An unresizable vector backed by a `Box<[T]>` +#![allow(clippy::needless_lifetimes)] + use std::{ borrow::{Borrow, BorrowMut}, cmp, fmt, diff --git a/common/src/linked_list.rs b/common/src/linked_list.rs index 3941d2c83..3040bab0b 100644 --- a/common/src/linked_list.rs +++ b/common/src/linked_list.rs @@ -293,7 +293,7 @@ impl LinkedList { } } -impl<'a, T, F> Iterator for DrainFilter<'a, T, F> +impl Iterator for DrainFilter<'_, T, F> where T: Link, F: FnMut(&mut T::Target) -> bool, diff --git a/common/src/lock/immutable_mutex.rs b/common/src/lock/immutable_mutex.rs index 3f5eba787..3001cc757 100644 --- a/common/src/lock/immutable_mutex.rs +++ b/common/src/lock/immutable_mutex.rs @@ -1,3 +1,5 @@ +#![allow(clippy::needless_lifetimes)] + use lock_api::{MutexGuard, RawMutex}; use std::{fmt, marker::PhantomData, ops::Deref}; diff --git a/common/src/lock/thread_mutex.rs b/common/src/lock/thread_mutex.rs index 1a5054264..a1e1ee8be 100644 --- a/common/src/lock/thread_mutex.rs +++ b/common/src/lock/thread_mutex.rs @@ -1,3 +1,5 @@ +#![allow(clippy::needless_lifetimes)] + use lock_api::{GetThreadId, GuardNoSend, RawMutex}; use std::{ cell::UnsafeCell, diff --git a/common/src/str.rs b/common/src/str.rs index 1606ebc07..3f9bf583b 100644 --- a/common/src/str.rs +++ b/common/src/str.rs @@ -334,9 +334,7 @@ macro_rules! ascii { ($x:expr $(,)?) => {{ let s = const { let s: &str = $x; - if !s.is_ascii() { - panic!("ascii!() argument is not an ascii string"); - } + assert!(s.is_ascii(), "ascii!() argument is not an ascii string"); s }; unsafe { $crate::vendored::ascii::AsciiStr::from_ascii_unchecked(s.as_bytes()) } diff --git a/jit/src/lib.rs b/jit/src/lib.rs index d982ce439..1d099635e 100644 --- a/jit/src/lib.rs +++ b/jit/src/lib.rs @@ -341,7 +341,7 @@ pub struct Args<'a> { code: &'a CompiledCode, } -impl<'a> Args<'a> { +impl Args<'_> { pub fn invoke(&self) -> Option { unsafe { self.code.invoke_raw(&self.cif_args) } } diff --git a/stdlib/src/posixsubprocess.rs b/stdlib/src/posixsubprocess.rs index 47e19d317..64e897b60 100644 --- a/stdlib/src/posixsubprocess.rs +++ b/stdlib/src/posixsubprocess.rs @@ -113,7 +113,7 @@ struct CharPtrSlice<'a> { slice: [*const libc::c_char], } -impl<'a> CharPtrSlice<'a> { +impl CharPtrSlice<'_> { fn as_ptr(&self) -> *const *const libc::c_char { self.slice.as_ptr() } diff --git a/vm/src/object/ext.rs b/vm/src/object/ext.rs index ec8b59bda..f7247bc5e 100644 --- a/vm/src/object/ext.rs +++ b/vm/src/object/ext.rs @@ -500,21 +500,21 @@ pub struct PyLease<'a, T: PyObjectPayload> { inner: PyRwLockReadGuard<'a, PyRef>, } -impl<'a, T: PyObjectPayload + PyPayload> PyLease<'a, T> { +impl PyLease<'_, T> { #[inline(always)] pub fn into_owned(self) -> PyRef { self.inner.clone() } } -impl<'a, T: PyObjectPayload + PyPayload> Borrow for PyLease<'a, T> { +impl Borrow for PyLease<'_, T> { #[inline(always)] fn borrow(&self) -> &PyObject { self.inner.as_ref() } } -impl<'a, T: PyObjectPayload + PyPayload> Deref for PyLease<'a, T> { +impl Deref for PyLease<'_, T> { type Target = PyRef; #[inline(always)] fn deref(&self) -> &Self::Target { @@ -522,7 +522,7 @@ impl<'a, T: PyObjectPayload + PyPayload> Deref for PyLease<'a, T> { } } -impl<'a, T> fmt::Display for PyLease<'a, T> +impl fmt::Display for PyLease<'_, T> where T: PyPayload + fmt::Display, { diff --git a/vm/src/ospath.rs b/vm/src/ospath.rs index ac574339f..fe26f227d 100644 --- a/vm/src/ospath.rs +++ b/vm/src/ospath.rs @@ -179,7 +179,7 @@ impl<'a> IOErrorBuilder<'a> { } } -impl<'a> ToPyException for IOErrorBuilder<'a> { +impl ToPyException for IOErrorBuilder<'_> { fn to_pyexception(&self, vm: &VirtualMachine) -> PyBaseExceptionRef { let excp = self.error.to_pyexception(vm); diff --git a/vm/src/protocol/iter.rs b/vm/src/protocol/iter.rs index 36952916c..d9c49ed15 100644 --- a/vm/src/protocol/iter.rs +++ b/vm/src/protocol/iter.rs @@ -229,7 +229,7 @@ where _phantom: std::marker::PhantomData, } -unsafe impl<'a, T, O> Traverse for PyIterIter<'a, T, O> +unsafe impl Traverse for PyIterIter<'_, T, O> where O: Traverse + Borrow, { @@ -252,7 +252,7 @@ where } } -impl<'a, T, O> Iterator for PyIterIter<'a, T, O> +impl Iterator for PyIterIter<'_, T, O> where T: TryFromObject, O: Borrow, diff --git a/vm/src/protocol/number.rs b/vm/src/protocol/number.rs index 92636dc11..01829bb55 100644 --- a/vm/src/protocol/number.rs +++ b/vm/src/protocol/number.rs @@ -432,7 +432,7 @@ unsafe impl Traverse for PyNumber<'_> { } } -impl<'a> Deref for PyNumber<'a> { +impl Deref for PyNumber<'_> { type Target = PyObject; fn deref(&self) -> &Self::Target { diff --git a/vm/src/recursion.rs b/vm/src/recursion.rs index c7b75e588..7392cca4d 100644 --- a/vm/src/recursion.rs +++ b/vm/src/recursion.rs @@ -23,7 +23,7 @@ impl<'vm> ReprGuard<'vm> { } } -impl<'vm> Drop for ReprGuard<'vm> { +impl Drop for ReprGuard<'_> { fn drop(&mut self) { self.vm.repr_guards.borrow_mut().remove(&self.id); } diff --git a/vm/src/stdlib/codecs.rs b/vm/src/stdlib/codecs.rs index b4051d5c4..71317bf48 100644 --- a/vm/src/stdlib/codecs.rs +++ b/vm/src/stdlib/codecs.rs @@ -107,7 +107,7 @@ mod _codecs { PyStr::is_ascii(self) } } - impl<'vm> encodings::ErrorHandler for ErrorsHandler<'vm> { + impl encodings::ErrorHandler for ErrorsHandler<'_> { type Error = PyBaseExceptionRef; type StrBuf = PyStrRef; type BytesBuf = PyBytesRef; diff --git a/vm/sre_engine/src/engine.rs b/vm/sre_engine/src/engine.rs index ca269c73d..77f4ccdf3 100644 --- a/vm/sre_engine/src/engine.rs +++ b/vm/sre_engine/src/engine.rs @@ -236,7 +236,7 @@ pub struct SearchIter<'a, S: StrDrive> { pub state: State, } -impl<'a, S: StrDrive> Iterator for SearchIter<'a, S> { +impl Iterator for SearchIter<'_, S> { type Item = (); fn next(&mut self) -> Option { diff --git a/vm/sre_engine/src/string.rs b/vm/sre_engine/src/string.rs index e3f14ef01..ca8b3179d 100644 --- a/vm/sre_engine/src/string.rs +++ b/vm/sre_engine/src/string.rs @@ -25,7 +25,7 @@ pub trait StrDrive: Copy { fn back_skip(cursor: &mut StringCursor, n: usize); } -impl<'a> StrDrive for &'a [u8] { +impl StrDrive for &[u8] { #[inline] fn count(&self) -> usize { self.len() diff --git a/wapm.toml b/wapm.toml index 07f07a3b0..22d8f1816 100644 --- a/wapm.toml +++ b/wapm.toml @@ -8,7 +8,7 @@ repository = "https://github.com/RustPython/RustPython" [[module]] name = "rustpython" -source = "target/wasm32-wasi/release/rustpython.wasm" +source = "target/wasm32-wasip1/release/rustpython.wasm" abi = "wasi" [[command]]