Fastly has a job opening in the UK, for Compute, Fastly's serverless Wasm compute platform, using Rust.
https://www.fastly.com/about/jobs/apply?gh_jid=7736653
Happy to answer/relay any questions!
Fastly has a job opening in the UK, for Compute, Fastly's serverless Wasm compute platform, using Rust.
https://www.fastly.com/about/jobs/apply?gh_jid=7736653
Happy to answer/relay any questions!
The reason `fsync` exists in Unix is for applications to avoid calling it.
Unix could have made filesystems sync automatically, but that would have a high cost, because it would end up doing a of needless work for temporary and intermediate data. Instead of having the filesystem abstraction convey the intent of data, Unix bubbles up the responsibility to call `fsync` to higher-level application code.
In this design, tools like `sed` aren't meant to call `fsync`. They operate near the level of the filesystem abstraction and don't have the information they'd need to decide when not to call it. A script might invoke `sed` a thousand times and then do a single `sync` at the end, avoiding much needless cost while still achieving the desired end result.
In contrast, `vim` does call `fsync`. The thing that makes `vim` different is that it knows a tiny bit about where it sits with respect to a human being's intent.
So the decision to use `fsync` isn't about not letting errors pass silently. It's about whether the code you're writing has a bigger-picture understanding of the data it's processing.
The thing that makes it tempting to add a random-number generator as a Wasm component builtin is that random numbers are inherently not virtualizable, for some common meanings of "virtualizable".
computers: don't confuse concurrency and parallelism!
- concurrency: non-intersecting lines of computation
- parallelism: multiple things happening at the same time
english: who's confusing what now?
- concurrency: multiple things happening at the same time
- paralleism: non-intersecting lines
Yes. Wit and the tooling have some maturing to do, but platform teams defining their own custom interfaces and worlds with Wit are an important part of the vision.
Web components are a different technology, but for Wasm components, yes, jco is a great place to start!
What's the question you've always wanted to ask about #WASI but never knew who or when or where to ask?
@ricochetcode@hachyderm.io made a great video with Luke Wagner about the history of WebAssembly going all the way back to the start of asm.js!
@sdeleuze The plan for Preview2 is, sockets can be marked nonblocking, and poll-oneoff can poll them. That's sufficient to do async I/O. To address scalability and composition, we'll do Preview3.
The slides for my #WASI Roadmap presentation to the WASI Subgroup earlier today are now up:
The super short version is:
- Preview1: Support existing users, portability
- Preview2: Rebase WASI on Wit
- Preview3: Level up Async: future and stream
- WASI 1.0: Standardization
In hardware designs, memory-mapped registers (MMRs) are widely used because they're a way to add I/O devices without making changes to the CPU.
Exposing these features to Wasm doesn't necessarily require them to be represented as memory-mapped at the Wasm level though. We can have imported host functions that do loads and stores to the desired hardware addresses.