Live data from Hacker News

Brimstone: ES2025 JavaScript engine written in Rust

github.com

101–110 of 125 posts

Re: Brimstone: ES2025 JavaScript engine written in Rust

#101

Earlier quoted context omitted.

It carries some weight, very roughly in the direction of formal verification. Since (assuming there isn't any unsafe), a specific class of bugs are guaranteed to not happen. However, this repo seems like it uses quite a bit of unsafe, by their own admission.

There's a lot of unsafe in this at least. hard to be both safe and fast.

From the README:

> Compacting garbage collector, written in very unsafe Rust

Re: Brimstone: ES2025 JavaScript engine written in Rust

#102

Earlier quoted context omitted.

First time seeing a few of the engines listed here - based on this table I'm surprised Samsung's Escargot hasn't gotten more attention. LGPL, 100% ES2016+ compliance, top 10 perf ranking, 25% the size of V8 & only 318 Github stars. A quick HN search shows 0 comments for Escargot - is there some hidden problem with this engine not covered in this table?

Because it pretty much only makes sense for Samsung TVs and smart appliances since it scores 3% on the benchmarks vs V8. It's too big for most embedded devices, too slow for general computing, and if you can run something 25% the size of V8, you can probably just run V8. If for some reason that size and speed profile does fit your niche and you aren't Samsung wanting to use their own software, then Facebook's Hermes…

Escargot is more spec-compliant than Hermes though.

Sometimes you can't run V8 or any JIT engine because policy or politics, and it's nice to have options.

Re: Brimstone: ES2025 JavaScript engine written in Rust

#103
post #71

Earlier quoted context omitted.

Does that include emojis?

Emojis are complicated from a font rendering perspective. But from a string processing perspective, they're generally going to be among the simplest characters: they don't have a lot of complex properties with a lot of variation between individual characters. Compare something like the basic Latin characters, where the mappings for precomposed characters are going to vary wildly from 'a' to 'b' to 'c', etc., whereas…

Sorry, what? You mean, emoji composition rules are simpler than combining diacritics? https://blog.codepoints.net/emojis-under-the-hood.html

Re: Brimstone: ES2025 JavaScript engine written in Rust

#104
post #81

Earlier quoted context omitted.

Yeah, the majority of the difference is from the Unicode data for Intl along with probably the timezone data for Temporal.

Is it possible to build Boa without these APIs?

For the engine, the answer is yes, Intl and Temporal are feature flagged due to the dependencies. What I suspect they’re comparing above is the CLIs, which is completely different than the engine. I’d have to double check for the CLI. If I recall correctly, we include all features in the CLI by default.

Re: Brimstone: ES2025 JavaScript engine written in Rust

#105
post #99

Earlier quoted context omitted.

are you for real? Rust most definitely is not highly readable and the language reeks of complexity

It's comparable with Java. It's significantly easier to parse than C++.

Java doesn't have lifetimes. So no.

And C++ can only be beaten by the likes of K, J and brainfuck. Very low bar to clear.

Re: Brimstone: ES2025 JavaScript engine written in Rust

#106

Earlier quoted context omitted.

Go has probably more packages than Rust, but i rarely see Go projects that use as many as rust. In Go the usuals are depending on the app, possibly some db drivers, a simple router and maybe some crypto related thing. Most projects do fine with just the stdlib. In rust i tend to see 100 deps, and 1000 transient deps. Compile times are not in seconds, but minutes.

You can do that just fine in Rust too, for example the Makepad[1] developers take a pretty extreme non-invented-here stance, and builds a full UI toolkit with no external dependencies (and a major focus on clean-build compile times). However, it isn't really part of the Rust OSS culture to operate like that. The culture typically values safety over compile times, and prefers to lean on a deep stable of battle-hardene…

It's still hundreds of functionalities that they have to maintain themselves instead of leveraging a much more battle tested stdlib.

Re: Brimstone: ES2025 JavaScript engine written in Rust

#107

Earlier quoted context omitted.

Unicode is everywhere though. You'd think there'd be much greater availability of those tables and data and that people wouldn't need to bundle it in their executables.

Unfortunately operating systems don't make the raw unicode data available (they only offer APIs to query it in various ways). Until they do we all have to ship it seperately.

For some OSes like Windows, some relevant APIs can be indeed used to reconstruct those tables. I found that this is in fact viable for character encoding tables, only requiring a small table for fixes in most cases.

Re: Brimstone: ES2025 JavaScript engine written in Rust

#108

Why is stuff written in rust always promoted as "written in rust" like its some magic thing?

It’s a very Blub. Rust seems ok as a language, but some young uns moving from say JS/TS think it’s amazing because they haven’t used anything else.

Re: Brimstone: ES2025 JavaScript engine written in Rust

#109
post #85

Earlier quoted context omitted.

Agreed! FWIW, they are not even "complicated" from a font rendering perspective: they're simple non-combining characters and they are probably never used in ligatures either (though nothing really stops you; just like you can have locale-specific variants with locl tables). It's basically "draw whatever is in a font at this codepoint". Yes, if you want to call them out based on Unicode names, you need to have them in…

> they're simple non-combining characters Skin-tone emoji's are combined characters: base emoji + tone.

TIL, thanks for pointing it out.

Re: Brimstone: ES2025 JavaScript engine written in Rust

#110
post #103

Earlier quoted context omitted.

Emojis are complicated from a font rendering perspective. But from a string processing perspective, they're generally going to be among the simplest characters: they don't have a lot of complex properties with a lot of variation between individual characters. Compare something like the basic Latin characters, where the mappings for precomposed characters are going to vary wildly from 'a' to 'b' to 'c', etc., whereas…

Sorry, what? You mean, emoji composition rules are simpler than combining diacritics? https://blog.codepoints.net/emojis-under-the-hood.html

I was unaware of this: thanks for pointing it out!
Post reply on HN