Posts made by admin
An Introduction to WebAssembly with C++ — Part I
WebAssembly is a technology that was designed collaboratively for engineers from the major web browsers.
Read the full article: https://medium.com/@cchaconsartori/introduction-to-webassembly-with-c-part-i-64bcfad7ecb4
Creating WebAssembly-powered library for modern web
This article tells about my first practical experience with WebAssembly and few useful technics which I’ve obtained while creating vmsg library.
Read the full article: https://hackernoon.com/creating-webassembly-powered-library-for-modern-web-846da334f8fc
Rust Contracts and WebAssembly
Cyber•Fund is introducing a series of publications that provide an overview of some of the best speaker topics we’ve hosted at our meetups. Nikolay Volf — lead software developer (Rust) — spoke about how WebAssembly is considered to be a major game changer for the world wide web. He believes that because “WebAssembly and Rust are based on the same principles, it is advisable to bundle them together.”
Read the full article: https://blog.cyber.fund/rust-contracts-and-webassembly-4b6cff87582f
On the fly WebP decoding using WASM and a Service Worker
For the people who know me, I have been super excited by the recent developments on the web platform, such as modules, service workers and now even Web Assembly!
RE: HOWTO: WebAssembly Source Maps to C/C++ with Firefox
@kyo You can comment on the YouTube
Current state of compiling TypeScript to WebAssembly
WebAssembly (wasm) is an emerging standard – the future is coming. The support in browsers is already growing – what we still need is lowering the entry barrier for us, developers. Luckily, that is soon to be changed. I want to present you with a quick overview of something, that quite struck me – compiling TypeScript to WebAssembly. How is that possible? How close is it to be usable in production? Let’s find out!
Read the full article: https://wanago.io/2018/02/19/current-state-compiling-typescript-webassembly/
How WebAssembly May Reinvent How We Write and Ship Code on the Web
Binary encoded assembly is a really good description of WebAssembly language. Don’t expect anything fancy like a for-loop — it’s a lot lower level than that. It’s an efficient and fast stack machine that is safe, open and debuggable. It’s web tech! It is not some separate thing; this upholds all the values of the web. And this is REAL. A lot of people don’t realize this but WebAssembly is in your browser now. It’s in Firefox, it’s in Chrome. It’s in Safari, in Edge. And it is in Node.js. Download the latest version of node, type webassembly in, hit enter, you’re going to see there is an object there.
WebAssembly Studio - an online IDE for writing wasm with C and Rust
HOWTO: WebAssembly Source Maps to C/C++ with Firefox
How to set breakpoints and step through your original source files throughout the runtime execution of your WASM binary.
Using Firefox Quantum Beta Developer Edition on Windows 10. (Doesn't work in Chome AFAICT at time of writing)
Compiled with Visual Studio 2017 Community Edition, Emscripten 1.37.0, SDL2.0.6, and ANGLE-bf90b60.
WAVM: WebAssembly Virtual Machine
This is a standalone VM for WebAssembly. It can load both the standard binary format, and the text format defined by the WebAssembly reference interpreter. For the text format, it can load both the standard stack machine syntax and the old-fashioned AST syntax used by the reference interpreter, and all of the testing commands.
Emscripten is a compiler toolchain for asm.js and WebAssembly which lets you run C and C++ on the web at near-native speed.
Emscripten output sizes have decreased a lot recently, especially for smaller programs
V8 release v6.5: Streaming compilation for WebAssembly code
he WebAssembly API provides a special function to support streaming compilation in combination with the fetch() API:
const module = await WebAssembly.compileStreaming(fetch('foo.wasm'));
This API has been available since V8 v6.1 and Chrome 61, although the initial implementation didn’t actually use streaming compilation. However, with V8 v6.5 and Chrome 65 we take advantage of this API and compile WebAssembly modules already while we are still downloading the module bytes. As soon as we download all bytes of a single function, we pass the function to a background thread to compile it.
Apple broke WebAssembly and are leaving it broken
The Spectre security vulnerability has left many companies scrambing to mitigate it. Along with other browser vendors, Apple worked quickly to add some mitigations to Safari and issued iOS 11.2.2 to patch it.
Unfortunately they also completely broke WebAssembly on iOS. As in, WebAssembly no longer works, period. According to this, the issue is memory reads from non-zero locations return zero. This amounts to "memory reads don't work". Obviously if a program can't read memory, the program is unlikely to work. So it's pretty broken. Strangely this only affects iOS and not Safari on macOS.
Apple rushed out a follow-up patch with iOS 11.2.5. I expected them to have fixed this rather glaring error in this patch. Unfortunately no, it's still broken. When will it be fixed? I don't know; Apple don't discuss their plans publicly. The best guess I've had is in this WebKit bug of "spring". That could mean WebAssembly is enabled but non-functioning in a major browser for a month or more.
Read the full article: https://www.scirra.com/blog/218/apple-broke-webassembly-and-are-leaving-it-broken
Hacker's Guide to WebAssembly by vigneshwer dhinakaran
Want to know how WebAssembly work? Why is WebAssembly so fast? How to build web apps using C/C++/Rust? In this talk we’ll look at history, basics, applications and deep dive into the core concepts of WebAssembly with help of live demos and coding.
react-rust: WebAssembly Modules in React Apps via Rust
We're going to use Rust, Cargo Web and Stdweb to provide WebAssembly Modules, then use them in react-static.
Today Wasm runs just 20% slower than native code execution. This is, by all means, an astonishing result. It’s a format that’s compiled into a sandbox environment and runs within a whole lot of constraints to make sure it has no security vulnerabilities or is very hardened against them. The slowdown is minimal compared to truly native code. What’s more, it will be even faster in the future.
Making WebAssembly even faster: Firefox’s new streaming and tiering compiler
People call WebAssembly a game changer because it makes it possible to run code on the web faster. Some of these speedups are already present, and some are yet to come.
One of these speedups is streaming compilation, where the browser compiles the code while the code is still being downloaded. Up until now, this was just a potential future speedup. But with the release of Firefox 58 next week, it becomes a reality.
Firefox 58 also includes a new 2-tiered compiler. The new baseline compiler compiles code 10–15 times faster than the optimizing compiler.
Combined, these two changes mean we compile code faster than it comes in from the network.
WebAssembly — Web Workers
WebAssembly modules can be loaded in either the UI thread or in a Web Worker. You would then take the compiled module and pass that to another thread, or even another window, by using the postMessage method.
Read the full article: https://firstname.lastname@example.org/webassembly-web-workers-f2ba637c3e4a
WebAssembly — Caching to HTML5 IndexedDB
WebAssembly modules were created with the ability to cache the compiled module in mind but the trick is that the caching is something that needs to be done explicitly by us.
Read the full article: https://email@example.com/webassembly-caching-to-html5-indexeddb-c9029eaa55a1
WebAssembly, the journey — JIT Compilers
Read the full article: https://hackernoon.com/webassembly-the-journey-jit-compilers-dfa4081a6ffb
WebAssembly — Caching when using Emscripten
In our first article about WebAssembly, An Introduction to WebAssembly, we allowed Emscripten to handle all of the plumbing for us, including the HTML, so that we could get a feel for what was possible with WebAssembly modules by jumping right into some code.
Read the full article: https://firstname.lastname@example.org/webassembly-caching-when-using-emscripten-3cd2052110f1
WebAssembly: Swift, C#, Java and Oxygene in the Browser
Over the past few weekly builds, we've been rolling out support for WebAssembly, our next major compiler target for Elements.
Read the full article: https://blogs.remobjects.com/2018/01/12/webassembly-swift-c-java-and-oxygene-in-the-browser/
Xi Editor: A modern editor with a backend written in Rust.
The xi editor project is an attempt to build a high quality text editor, using modern software engineering techniques. It is initially built for Mac OS X, using Cocoa for the user interface. There are also frontends for other operating systems available from third-party developers.
WebAssembly — WasmFiddle and Inline WebAssembly Modules
WasmFiddle also allows you to download the wasm file or simply view the file’s text format or binary representation in the bottom-left pane.
The binary representation from WasmFiddle offers an interesting option when it comes instantiating WebAssembly modules. With the array that you’re given, you can bypass the fetch of the wasm file and instantiate a WebAssembly module directly with the array.
Read the full article: https://blog.dovico.com/webassembly-wasmfiddle-and-inline-webassembly-modules-97cf07f6ed4b