mirror of
https://github.com/mii443/wasmer.git
synced 2025-08-22 16:35:33 +00:00
Merge branch 'master' into universal-compiled-info
This commit is contained in:
1
.github/workflows/documentation.yaml
vendored
1
.github/workflows/documentation.yaml
vendored
@ -18,7 +18,6 @@ jobs:
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: "1.50"
|
||||
override: true
|
||||
- name: Install LLVM
|
||||
shell: bash
|
||||
|
1
.github/workflows/lint.yaml
vendored
1
.github/workflows/lint.yaml
vendored
@ -19,7 +19,6 @@ jobs:
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
profile: minimal
|
||||
toolchain: "1.50"
|
||||
override: true
|
||||
components: rustfmt, clippy
|
||||
- name: Install LLVM (Linux)
|
||||
|
8
Cargo.lock
generated
8
Cargo.lock
generated
@ -1723,9 +1723,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rkyv"
|
||||
version = "0.4.3"
|
||||
version = "0.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "70de01b38fe7baba4ecdd33b777096d2b326993d8ea99bc5b6ede691883d3010"
|
||||
checksum = "0d683f1540522e9ad21b786d534b274ff49b0e974bf3af31d7a930a6c3e3599d"
|
||||
dependencies = [
|
||||
"memoffset",
|
||||
"ptr_meta",
|
||||
@ -1735,9 +1735,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rkyv_derive"
|
||||
version = "0.4.0"
|
||||
version = "0.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "95a169f6bc5a81033e86ed39d0f4150e2608160b73d2b93c6e8e6a3efa873f14"
|
||||
checksum = "c848da2aad0c8395f7986a717b8f28a8fc05dd94463d949673803f4955d9f73a"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
8
fuzz/Cargo.lock
generated
8
fuzz/Cargo.lock
generated
@ -844,9 +844,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rkyv"
|
||||
version = "0.4.3"
|
||||
version = "0.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "70de01b38fe7baba4ecdd33b777096d2b326993d8ea99bc5b6ede691883d3010"
|
||||
checksum = "0d683f1540522e9ad21b786d534b274ff49b0e974bf3af31d7a930a6c3e3599d"
|
||||
dependencies = [
|
||||
"memoffset",
|
||||
"ptr_meta",
|
||||
@ -856,9 +856,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rkyv_derive"
|
||||
version = "0.4.0"
|
||||
version = "0.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "95a169f6bc5a81033e86ed39d0f4150e2608160b73d2b93c6e8e6a3efa873f14"
|
||||
checksum = "c848da2aad0c8395f7986a717b8f28a8fc05dd94463d949673803f4955d9f73a"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
@ -21,7 +21,7 @@ serde = { version = "1.0", features = ["derive"], optional = true }
|
||||
thiserror = "1.0"
|
||||
serde_bytes = { version = "0.11", optional = true }
|
||||
smallvec = "1.6"
|
||||
rkyv = { version = "0.4.3", optional = true }
|
||||
rkyv = { version = "0.6", optional = true }
|
||||
loupe = "0.1"
|
||||
|
||||
[features]
|
||||
|
@ -23,7 +23,7 @@ leb128 = "0.2"
|
||||
libloading = "0.7"
|
||||
tempfile = "3.1"
|
||||
which = "4.0"
|
||||
rkyv = "0.4.3"
|
||||
rkyv = "0.6"
|
||||
loupe = "0.1"
|
||||
|
||||
[features]
|
||||
|
@ -14,7 +14,7 @@ edition = "2018"
|
||||
serde = { version = "1.0", features = ["derive"], optional = true, default-features = false }
|
||||
thiserror = "1.0"
|
||||
indexmap = { version = "1.4", features = ["serde-1"] }
|
||||
rkyv = { version = "0.4.3", optional = true }
|
||||
rkyv = { version = "0.6", optional = true }
|
||||
loupe = "0.1"
|
||||
|
||||
[features]
|
||||
|
@ -2,7 +2,6 @@ use crate::entity::{EntityRef, PrimaryMap, SecondaryMap};
|
||||
use indexmap::IndexMap;
|
||||
|
||||
use rkyv::{
|
||||
offset_of,
|
||||
ser::Serializer,
|
||||
std_impl::{ArchivedVec, VecResolver},
|
||||
Archive, Archived, Deserialize, DeserializeUnsized, Fallible, MetadataResolver, Serialize,
|
||||
@ -12,7 +11,7 @@ use rkyv::{
|
||||
use core::{hash::Hash, marker::PhantomData};
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
use std::{collections::HashMap, hash::Hash, marker::PhantomData};
|
||||
use std::{collections::HashMap, hash::Hash, marker::PhantomData, mem::MaybeUninit};
|
||||
|
||||
/// PrimaryMap after archive
|
||||
pub struct ArchivedPrimaryMap<K: EntityRef, V>(ArchivedVec<V>, PhantomData<K>);
|
||||
@ -24,8 +23,15 @@ where
|
||||
type Archived = ArchivedPrimaryMap<K::Archived, V::Archived>;
|
||||
type Resolver = VecResolver<MetadataResolver<[V]>>;
|
||||
|
||||
fn resolve(&self, pos: usize, resolver: Self::Resolver) -> Self::Archived {
|
||||
ArchivedPrimaryMap(Vec::resolve(&self.elems, pos, resolver), PhantomData)
|
||||
fn resolve(&self, pos: usize, resolver: Self::Resolver, out: &mut MaybeUninit<Self::Archived>) {
|
||||
let mut vec = MaybeUninit::uninit();
|
||||
Vec::resolve(&self.elems, pos, resolver, &mut vec);
|
||||
// This is correct because the `resolve` method can never fail [citation needed]
|
||||
let vec = unsafe { vec.assume_init() };
|
||||
let archived_primary_map = ArchivedPrimaryMap(vec, PhantomData);
|
||||
unsafe {
|
||||
out.as_mut_ptr().write(archived_primary_map);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ more-asserts = "0.2"
|
||||
cfg-if = "0.1"
|
||||
backtrace = "0.3"
|
||||
serde = { version = "1.0", features = ["derive", "rc"] }
|
||||
rkyv = { version = "0.4.3", optional = true}
|
||||
rkyv = { version = "0.6", optional = true}
|
||||
loupe = { version = "0.1", features = ["enable-indexmap"] }
|
||||
|
||||
[target.'cfg(target_os = "windows")'.dependencies]
|
||||
|
@ -15,6 +15,8 @@ use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashMap;
|
||||
use std::fmt;
|
||||
use std::iter::ExactSizeIterator;
|
||||
#[cfg(feature = "enable-rkyv")]
|
||||
use std::mem::MaybeUninit;
|
||||
use std::sync::atomic::{AtomicUsize, Ordering::SeqCst};
|
||||
use std::sync::Arc;
|
||||
use wasmer_types::entity::{EntityRef, PrimaryMap};
|
||||
@ -224,8 +226,8 @@ impl Archive for ModuleInfo {
|
||||
type Archived = <ArchivableModuleInfo as Archive>::Archived;
|
||||
type Resolver = <ArchivableModuleInfo as Archive>::Resolver;
|
||||
|
||||
fn resolve(&self, pos: usize, resolver: Self::Resolver) -> Self::Archived {
|
||||
ArchivableModuleInfo::from(self).resolve(pos, resolver)
|
||||
fn resolve(&self, pos: usize, resolver: Self::Resolver, out: &mut MaybeUninit<Self::Archived>) {
|
||||
ArchivableModuleInfo::from(self).resolve(pos, resolver, out)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1 +1 @@
|
||||
1.50
|
||||
1.51
|
||||
|
Reference in New Issue
Block a user