Improve some docs and misc code segments

This commit is contained in:
Mark McCaskey
2020-01-31 15:42:18 -08:00
parent a01fd4cafb
commit 929825cba1
6 changed files with 21 additions and 14 deletions

View File

@ -1,7 +1,8 @@
//! Code for dealing with LLVM and VM intrinsics. //! Code for dealing with [LLVM][llvm-intrinsics] and VM intrinsics.
//! //!
//! Intrinsics are built-in operations. LLVM intrinsics are used to precisely //! VM intrinsics are used to interact with the host VM.
//! compute values. VM intrinsics are used to interact with the host VM. //!
//! [llvm-intrinsics]: https://llvm.org/docs/LangRef.html#intrinsic-functions
use inkwell::{ use inkwell::{
attributes::{Attribute, AttributeLoc}, attributes::{Attribute, AttributeLoc},

View File

@ -1,5 +1,5 @@
//! The global module contains the implementation data structures and helper functions used to //! The global module contains data structures and helper functions used to
//! manipulate and access a wasm globals. //! manipulate and access Wasm globals.
use crate::{ use crate::{
export::Export, export::Export,
import::IsExport, import::IsExport,
@ -11,7 +11,7 @@ use std::{
sync::{Arc, Mutex}, sync::{Arc, Mutex},
}; };
/// Container with a descriptor and a reference to a global value. /// A handle to a Wasm Global
pub struct Global { pub struct Global {
desc: GlobalDescriptor, desc: GlobalDescriptor,
storage: Arc<Mutex<vm::LocalGlobal>>, storage: Arc<Mutex<vm::LocalGlobal>>,

View File

@ -1,15 +1,15 @@
//! Wasmer Runtime Core Library //! Wasmer Runtime Core Library
//! //!
//! The runtime core library provides common data structures which are shared by compiler backends //! This crate provides common data structures which are shared by compiler backends
//! to implement a Web Assembly runtime. //! to implement a WebAssembly runtime.
//! //!
//! The runtime core also provides an API for users who use wasmer as an embedded wasm runtime which //! This crate also provides an API for users who use wasmer as an embedded wasm runtime which
//! allows operations like compiling, instantiating, providing imports, access exports, memories, //! allows operations like compiling, instantiating, providing imports, access exports, memories,
//! and tables for example. //! and tables for example.
//! //!
//! The runtime core library is recommended to be used by only power users who wish to customize the //! Most wasmer users should prefer the API which is re-exported by the `wasmer-runtime`
//! wasmer runtime. Most wasmer users should prefer the API which is re-exported by the wasmer //! library by default. This crate provides additional APIs which may be useful to users
//! runtime library which provides common defaults and a friendly API. //! that wish to customize the wasmer runtime.
//! //!
#![deny( #![deny(

View File

@ -88,7 +88,7 @@ impl Instance for LocalInstance {
} }
} }
let offset = self.offsets[id]; let offset = self.offsets[id];
let addr: *const u8 = unsafe { self.code.as_ptr().offset(offset as isize) }; let addr: *const u8 = unsafe { self.code.as_ptr().add(offset) };
use std::mem::transmute; use std::mem::transmute;
Ok(unsafe { Ok(unsafe {
match args_u64.len() { match args_u64.len() {

View File

@ -658,7 +658,7 @@ macro_rules! impl_traits {
Rets: WasmTypeList, Rets: WasmTypeList,
{ {
/// Call the typed func and return results. /// Call the typed func and return results.
#[allow(non_snake_case)] #[allow(non_snake_case, clippy::too_many_arguments)]
pub fn call(&self, $( $x: $x, )* ) -> Result<Rets, RuntimeError> { pub fn call(&self, $( $x: $x, )* ) -> Result<Rets, RuntimeError> {
#[allow(unused_parens)] #[allow(unused_parens)]
unsafe { unsafe {

View File

@ -1,3 +1,7 @@
//! Macros to simplify some common WASI-specific tasks.
/// Like the `try!` macro or `?` syntax: returns the value if the computation
/// succeeded or returns the error value.
macro_rules! wasi_try { macro_rules! wasi_try {
($expr:expr) => {{ ($expr:expr) => {{
let res: Result<_, crate::syscalls::types::__wasi_errno_t> = $expr; let res: Result<_, crate::syscalls::types::__wasi_errno_t> = $expr;
@ -18,6 +22,8 @@ macro_rules! wasi_try {
}}; }};
} }
/// Reads a string from Wasm memory and returns the invalid argument error
/// code if it fails.
macro_rules! get_input_str { macro_rules! get_input_str {
($memory:expr, $data:expr, $len:expr) => {{ ($memory:expr, $data:expr, $len:expr) => {{
wasi_try!($data.get_utf8_string($memory, $len), __WASI_EINVAL) wasi_try!($data.get_utf8_string($memory, $len), __WASI_EINVAL)