Merge branch 'master' into universal-compiled-info

This commit is contained in:
Syrus Akbary
2021-04-29 13:02:37 -07:00
11 changed files with 27 additions and 21 deletions

View File

@ -18,7 +18,6 @@ jobs:
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: "1.50"
override: true
- name: Install LLVM
shell: bash

View File

@ -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
View File

@ -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
View File

@ -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",

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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);
}
}
}

View File

@ -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]

View File

@ -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)
}
}

View File

@ -1 +1 @@
1.50
1.51