Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
nteon
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
6 ms
·
1.
▲
by
nteon
11mo ago
the downside is that the go runtime doesn't expect memory reads to page fault, so you may end up with stalls/latency/under-utilization if part of your dataset is paged out (like if you have a large cdb file w/ random acc
2.
▲
by
nteon
3y ago
In Go, overflow is not checked, but it is well-defined in the spec including `programs may rely on "wrap around"`: https://go.dev/ref/spec#Integer_overflow
3.
▲
by
nteon
3y ago
you are right -- EROI and emissions are different. If you add in things like carbon capture, emissions go down but energy-in goes up. Would it make sense to extract and refine gasoline with net-0 emissions if it took more energy than you
4.
▲
by
nteon
4y ago
Yes they did. Here is one such demo: https://leaky.page/
5.
▲
by
nteon
5y ago
How did you get COOP/COEP in Github pages? A quick search just now suggested it might be possible with a Service Worker[0], with the caveat that it may only work on _second_ load. 0 - https://dev.to/stefnotch/enab
6.
▲
by
nteon
5y ago
I think there is a straightforward path to having Browsix generically support the WebAssembly WASI system interface[0] -- any toolchain that emitted binaries targeting that would then work in Browsix without e.g. Emscripting needing to know
7.
▲
by
nteon
5y ago
I'm one of the authors - its so exciting to see continued interest here! The biggest problem with Browsix today stems from Spectre mitigations: Shared Array Buffers aren't enabled by default in browsers, and static hosting sites l
8.
▲
by
nteon
5y ago
That's pretty right, with the addition that other things can target Browsix (like the gopherjs toolchain). Emscripten provides default implementations of a bunch of syscalls (and even a way to embed a file system), and we override tho
9.
▲
by
nteon
5y ago
(author here) Without something like Browsix you have to make a choice: find a JavaScript library or implement the functionality you want to run client side, or run existing Unix programs and libraries (that expect a filesystem, to be able
10.
▲
by
nteon
5y ago
(one of the authors here) it was written in Typescript from the start! Typescript eliminated a bunch of type confusion errors when developing the kernel, although the need to marshal data across a MessagePort means we have to do some casti
11.
▲
by
nteon
6y ago
(444) 444-4444 also works
12.
▲
by
nteon
6y ago
Can you compare `tcmalloc` to e.g. tcmalloc dynamically loaded, or jemalloc specified with Bazel's malloc option? It is unclear from the post whether the wins are improvements from the internal Google improvements to tcmalloc post-gpe
13.
▲
by
nteon
7y ago
WASI provides a cross platform definition of "system calls" ( https://github.com/WebAssembly/WASI/blob/master/design/WASI-... ), so that you could write a program, compile it for wasm+wasi
14.
▲
by
nteon
7y ago
(I'm one of the authors of Not So Fast) In the paper we build on previous work from our group, Browsix ( https://browsix.org ) to provide a similar level of abstractions to WASI (the syscall layer). We've talked about
15.
▲
by
nteon
8y ago
Well, there are 2 sides to increasing page sizes. If you can fit more objects on a page, there is a higher chance of collision at a given occupancy %, reducing the effectiveness of meshing. On the other hand, it means that very low occupa
16.
▲
by
nteon
8y ago
This sounds right - that line was written before Rust used the system allocator by default. Will update, although I'm still itching to write a GlobalAlloc implementation.
17.
▲
by
nteon
8y ago
Hi! I'm one of the authors -- thanks so much! We thought similarly about cache performance, but weren't able to find specific examples (most of the slow benchmarks we dug into were due to unoptimized allocator performance rather
18.
▲
by
nteon
8y ago
It isn't the only way to handle concurrency, but they are the only primitives that can be used to port existing code (C/C++/Rust/etc) into the browser sandbox without killing performance, or introducing crazier and unsou
19.
▲
by
nteon
9y ago
GopherJS is _not_ an emulator. Saying that it emulates a 32-bit environment means that `int` (which is architecture-specific in Go) is 4 bytes (compared to 8-bytes on amd64), and means that int64 is supported and does what you expect. As a
20.
▲
by
nteon
9y ago
Please take a look at the contributions in the paper at the end of the introduction. The JVM uses operating system abstractions (like a file system, threads, and synchronous APIs) that were non-existent in the browser when the paper were p
21.
▲
by
nteon
9y ago
Doppio relies heavily on the Javascript object model, the asm.js subset of Javascript isn't very relevant.
22.
▲
by
nteon
9y ago
yes -- it implements Java objects on top of Javascript objects.
23.
▲
by
nteon
10y ago
I think the most compelling use case is running legacy code in the browser (and in applications like Atom and Visual Studio Code) - like our Latex example. Another good use case are command line tools like graphviz. Someone wrote a wrapper
24.
▲
by
nteon
10y ago
JSLinux is a tremendous feat of engineering. If you want to run realistic programs in the browser (and not just technology demos), WebAssembly, asm.js, and compilation to JavaScript in general is the way to go. WebAssembly can easily execu
25.
▲
by
nteon
10y ago
Yes! GopherJS has been amazing to work with. The majority of our changes ( https://github.com/bpowers/browsix-gopherjs ) amount to an alternative implementation of the compiler/natives/syscall package (we star
26.
▲
by
nteon
10y ago
That was our first shell we used for debugging before we had emscripten working. The shell currently used in the demo is dash, compiled with emscripten: https://github.com/plasma-umass/browsix/blob/master/
27.
▲
by
nteon
10y ago
The shell is dash, compiled from C. We run each command as dash -c "$COMMAND" Processes can change their current directory (We support the chdir(2) system call), but the way the shell demo is currently implemented no state is ret
28.
▲
by
nteon
10y ago
We already work with asm.js, and I've gotten some WebAssembly prototypes running under Browsix as well. Browsix is nicely orthogonal to those projects -- WebAssembly lets you compile existing C/C++/Rust code to run in the br
29.
▲
by
nteon
10y ago
That example is actually running dash - the Debian Almquist shell. The weirdness (and reason that cd + setting variables doesn't work) is because whenever you type a command in, it executes: $ dash -c '$COMMAND' Rather than h
30.
▲
by
nteon
10y ago
Hi - main author here. Browsix is not an interpreter. Browsix provides a shared kernel and primitives like system calls to _existing_ interpreters and runtimes that target JavaScript. For example, we extended both the GopherJS and Emscript
More ›