Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
phickey
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
9 ms
·
61.
▲
by
phickey
4y ago
Yep that’s exactly the plan (I work on wasi and the component model and etc)
62.
▲
by
phickey
4y ago
I work on Wasi at Fastly, as part of the Bytecode Alliance. WASI development has indeed been quite slow. Most of our efforts for the past 2 years have been developing and implementing the Component Model proposal. Right now we are working o
63.
▲
by
phickey
4y ago
Wasm doesn’t yet have any sort of longjmp instructions. Stack switching is currently a proposal and the leading candidate is based on delimited continuations. Additionally, there are no wasm instructions that can manipulate the control stac
64.
▲
by
phickey
4y ago
I work on wit-bindgen. One major advantage of the WebAssembly VM is that we can trust the call stack, which gives cross-language calls optimization opportunities to skip serializarion or copies. This will be an even more important when we
65.
▲
by
phickey
4y ago
We worked with Igalia to upstream the SpiderMonkey patches required to build for wasm32-wasi. We point to a fixed version (see: https://github.com/fastly/spidermonkey-wasi-embedding ) which we haven't updated for a
66.
▲
by
phickey
4y ago
These are good questions! Here's some answers from the corner of the world I know best as a Wasmtime contributor at Fastly: 1. Spidermonkey.wasm is the basis of Fastly's JavaScript on Compute@Edge support. We have found it to be f
67.
▲
by
phickey
4y ago
The security properties are ultimately why we invested in WebAssembly. We (Fastly; the author is my colleague) run very large numbers of WebAssembly modules, all in the same process where the plaintext HTTP requests and responses from very
68.
▲
by
phickey
5y ago
Wasmtime is actively maintained, and owned by the Bytecode Alliance. I’m not sure what project you are thinking of but it’s not Wasmtime. (Disclosure: I am a Wasmtime maintainer)
69.
▲
by
phickey
7y ago
Its an evolving standard set of system interfaces. Right now it supports sandboxed access to the filesystem via a POSIX-like api, as well as other basic interfaces like argv, environment variables, random numbers, and timers. https:/&
70.
▲
by
phickey
7y ago
Nice comprehensive writeup. The next step, beyond the basic allocator provided, would be to use wasi-sdk ( https://github.com/cranestation/wasi-sdk ) which provides a full musl-based libc, targeting the WASI interfaces.
71.
▲
The lifecycle and performance of a Lucet (Fastly's native WASM engine) instance
(fastly.com)
11 points
by
phickey
7y ago
|
0 comments
72.
▲
by
phickey
8y ago
Instantiation takes under 50 microseconds (us) on the lab machine I tested on, and 65us on my colleague's laptop. Loading the code takes about that long as well (see thread: https://twitter.com/acfoltzer/status
73.
▲
by
phickey
8y ago
The lucet compiler and runtime each assume the other is implemented correctly, and its the job of some external system to make sure the runtime only loads code that came from the compiler. (We have infrastructure at Fastly that already does
74.
▲
by
phickey
8y ago
We started the codebase that became Lucet in July 2017. It went through a few fast iterations, and by Jan 2018 we had Cranelift running with AOT compilation. In the early days of Cranelift that meant adding support for position-independent
75.
▲
by
phickey
8y ago
Like Steve says, performance is a complicated thing to measure. For one view on it, Lucet ships with a suite of microbenchmarks that compare its execution of wasm with the same C code compiled natively. The `make bench` target runs these. T
76.
▲
by
phickey
8y ago
That is a good summary! Lucet's runtime has a C API as well. We haven't created bindings to languages beyond C and Rust, but it should be pretty straightforward using the C API.
77.
▲
by
phickey
8y ago
to answer the first question: It is 50us create a new instance from a loaded WebAssembly module. The module is compiled AOT into a shared object file, which is then loaded into the runtime using `dlopen`. We create instances from a region,
78.
▲
by
phickey
8y ago
You need to checkout submodules - $ git submodule init && git submodule update. Sorry, multiple people have reported this problem, and we're adding it to the docs right now!
79.
▲
by
phickey
8y ago
We hope so! Mozilla has been working on WASI support from Rust, and our team is working on supporting it from AssemblyScript as well: https://github.com/jedisct1/wasa .
80.
▲
by
phickey
8y ago
We're not quite there yet, but we're working on answering those questions right now. Stay tuned!
81.
▲
by
phickey
8y ago
I have not compared it to LuaJIT, but given that Lucet uses an AOT architecture, its hard to make a fair comparison. There is no GUI story yet, but Lucet provides a WASI ( https://wasi.dev ) implementation, so as that standard evo
82.
▲
by
phickey
8y ago
We have a security document that addresses the big picture, and this specific concern as well: https://github.com/fastly/lucet/blob/master/SECURITY.md#cave... For speculative execution, we don't ye
83.
▲
by
phickey
8y ago
At the moment, a lot of WASM tooling assumes instances interact with a JS engine. So, we aren't compatible with a bunch of existing tooling, like Rust's wasm-bindgen. We're working on our own tool to fill that hole in the eco
84.
▲
by
phickey
8y ago
Author here- happy to take questions.
85.
▲
by
phickey
8y ago
Fastly labs engineer here - happy to answer any questions about this!