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