Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
sunfish
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
10 ms
·
61.
▲
by
sunfish
10y ago
I've implemented the stack-machine validation rules, and they're very similar to the postorder AST validation rules. In some areas, they're actually simpler, because the stack-machine rules accept roughly a superset of the AS
62.
▲
by
sunfish
10y ago
The big news here is coordinated announcements from multiple browsers: https://blogs.windows.com/msedgedev/2016/10/31/webassembly-b... https://hacks.mozilla.org/2016/10/webass
63.
▲
by
sunfish
10y ago
wasm modules can include their own initializers now, so .mem files won't be needed. This is the Data Section in the WebAssembly docs. .wast is actually just a testing file format that's currently serving the purpose of a text form
64.
▲
by
sunfish
10y ago
WebAssembly modules can still import an external linear address space, but they can now also define their own linear address space, with their own initialization data included in the module file.
65.
▲
by
sunfish
10y ago
Indeed; WebAssembly as a whole is still being designed. For example, it doesn't have an official text format yet, and while there is a binary format implemented in multiple browsers now, it's still evolving. The TODOs mark places
66.
▲
WebAssembly Specification Prototype
(github.com)
179 points
by
sunfish
10y ago
|
107 comments
67.
▲
by
sunfish
10y ago
Nightly builds do include extra debugging instrumentation which makes them slower than released versions.
68.
▲
by
sunfish
10y ago
WebAssembly will support multiple-return functions, just not in the very first version.
69.
▲
by
sunfish
11y ago
Already on it :-). https://github.com/llvm-mirror/llvm/tree/master/lib/Target/W... (linked to the Github mirror because the LLVM viewvc is currently down)
70.
▲
by
sunfish
11y ago
Yes; the WebAssembly project has some ideas on this here: https://github.com/WebAssembly/design/blob/master/NonWeb.md
71.
▲
by
sunfish
11y ago
WebAssembly is "In Development" on WebKit's status page: https://webkit.org/status/#specification-webassembly
72.
▲
by
sunfish
11y ago
The big news here is coordinated announcements from multiple browsers: https://blogs.windows.com/msedgedev/2016/03/15/previewing-we... https://v8project.blogspot.com/2016/03/e
73.
▲
WebAssembly Preview Demo in Multiple Browsers
(webassembly.github.io)
6 points
by
sunfish
11y ago
|
0 comments
74.
▲
by
sunfish
11y ago
Thanks for the suggestions! FMA is definitely something we want to add. The question is what to do when hardware doesn't have FMA, as it's quite expensive to compute manually. Some applications would want to fall back to discrete
75.
▲
by
sunfish
11y ago
SIMD.js's shuffle instructions closely resemble LLVM's shuffle instructions, and LLVM also require shuffle indices to be constant, so this isn't restriction isn't unique to SIMD.js. Also, x86's shuffle situation is
76.
▲
by
sunfish
11y ago
It's not just SSE2; SIMD.js also includes things like Int32x4.mul, which is a little tricky without SSE4.1's pmulld. It's kind of a balancing act between several concerns. Also, it's a base, and we definitely plan to ite
77.
▲
by
sunfish
11y ago
You're right. There's enough diversity in SIMD instruction sets that no single rule seems sufficient for deciding what to include. Operations which are "fast" on all popular hardware are obviously great, but SIMD.js also
78.
▲
by
sunfish
11y ago
For SIMD types with elements other than Int8, in addition to the pshufb, there's also the cost of computing the pshufb byte indices. For additional context, the current version of SIMD.js is aimed at covering the basics that strike som
79.
▲
by
sunfish
11y ago
JS isn't just about interpreters these days, but at the same time, IoT isn't just about efficiency. It's also about integrating with ecosystems, so that each IoT device isn't an island of itself, but can join a bigger pi
80.
▲
by
sunfish
11y ago
Most SIMD hardware instruction sets don't support (dynamic) vector arguments to provide the indices for shuffling, so it wouldn't be fast if SIMD.js' API had it.
81.
▲
by
sunfish
11y ago
In most of those cases, the performance-sensitive game engine itself does not use GC; GC is used in the scripting language that implements the high-level game logic.
82.
▲
by
sunfish
11y ago
It is (though that's not the only thing it's designed for), but in a JS engine setting it only uses a few specific parts of the JS engine, such as the JIT backend to do the actual code generation work and interoperability with J
83.
▲
by
sunfish
11y ago
Yes: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/We...
84.
▲
by
sunfish
11y ago
I wish C/C++ had a labeled break construct, like JavaScript, Java, Rust, and other languages have. It's surprisingly powerful, while still remaining structured. I personally have enjoyed learning about it, and about just how rarel
85.
▲
by
sunfish
11y ago
The polyfill generates essentially the same asm.js code, so it runs at a similar speed. The slowdown is a translation delay at startup. On the other hand, WebAssembly code is smaller than asm.js code, so it downloads faster, so in some situ
86.
▲
by
sunfish
11y ago
Multiple things are happening in parallel here. On Emscripten's side, we're going to add a feature which translates Emscripten's asm.js output into WebAssembly, so that existing Emscripten users can easily use WebAssembly. Th
87.
▲
by
sunfish
11y ago
https://remysharp.com/2010/10/08/what-is-a-polyfill
88.
▲
by
sunfish
11y ago
Humans never chose to communicate via hex dumps either. We're making some concessions to hardware concerns here at the cost of human readability anyway, so one can debate whether endianness should also be considered that way. Protocol
89.
▲
by
sunfish
11y ago
"Allocated" is something that arbitrary functions like "malloc" can define for themselves. LLVM specifies what can be done with "allocated memory", and then it's up to the API and implementation of malloc
90.
▲
by
sunfish
11y ago
That's true for C, but not for LLVM inbounds.
More ›