Live data from Hacker News

How Stylo Brought Rust and Servo to Firefox

bholley.net

101–110 of 199 posts

Re: How Stylo Brought Rust and Servo to Firefox

#101

FF has for me crashed more times in the last week than in the previous year. - Multiple installs on different Linux systems. The last crash was with a clean profile. And then there's the disappearing dev tools - that's fun. EDIT: I hope that there is something weird with my systems. But I fear that the rush to push this out might have been a little hasty. EDIT EDIT Apart from the crashes the new FF has been nice. I'v…

I have been using Firefox for several months, using Windows 10, and several GNU/Linux distributions, different hardware, etc., and have never experienced a crash. It's definitely something weird to do with your systems, meaning it's a real bug that you are experiencing, and I am not. So please share crash reports, and file bug reports. Different hardware/software quirks may reveal bugs in Firefox/Linux/drivers/window…

Had one on FF Android but none on Linux since 57 release or in FFDE.

Re: How Stylo Brought Rust and Servo to Firefox

#102

Earlier quoted context omitted.

Can anyone explain what a URL parser does and why it's so complex? I feel like there's a whole interesting story lurking there.

A URL parser takes a string with a URL in it, and returns some sort of data structure that represents the URL. It's complex because URLs are complex; I believe this is the correct RFC: https://tools.ietf.org/html/rfc3986 It's 60 pages long. (That said, page length is only a proxy for complexity, of course)

And, as a bonus, there's the other URL standard, which describes what browsers actually do:

https://url.spec.whatwg.org/

Re: How Stylo Brought Rust and Servo to Firefox

#103

Earlier quoted context omitted.

> most benchmarks Which benchmarks are you talking about? It depends on what those benchmarks measure. For example, a lot of the Quantum work was in user-percieved UI latency; unless the benchmark is measuring that, and I imagine that's a hard thing to measure, it's not going to show up. > Does Rust have a runtime penalty as Golang does? Rust has the same amount of runtime as C does: very very little. https://github.…

Not sure if this is normal, but I have very noticeable lag in the search/address bar autocomplete which does make the whole browser feel a bit slow (MacOS Sierra, using Developer Edition). And since we are here, the prompt/dialog windows in FF are still not native looking too. These are my two major complaints :)

I don't work on Firefox, but you should file bugs. I've generally had a pretty good time doing so.

Re: How Stylo Brought Rust and Servo to Firefox

#104
post #9

Anecdote regarding this new FF: I would find frequent cases where my system would stall for 10-20s (could not caps lock toggle, pointer stopped moving). I almost always have just Chrome and gnome-terminal open (Ubuntu 16.04). I had attributed it to either a hardware or BIOS/firmware defect. Now, after switching to Firefox I have gone a week without seeing those stalls. YMMV -- I never bothered to investigate, it coul…

Just a shot in the dark, but do you have an nVidia GPU? Some drivers caused hangs with Chrome when GPU acceleration/rasterization was enabled in the browser settings.

Re: How Stylo Brought Rust and Servo to Firefox

#105
post #96
post #93

Earlier quoted context omitted.

In Joel's defense, we don't know that gecko is better than X years of incremental changes to Netscape 4. One of the big issues with software engineering advice is that it is really hard to find apples-to-apples comparisons for outcomes.

True. I think we can say that Gecko ended up technically better than incremental changes to Internet Explorer, which I think was starting off from a more maintainable codebase than Netscape 4. That's hardly conclusive but it's some evidence.

Indeed. My intuition based nothing other than my subjective experience is that there are times that throwing away the code is the correct decision, but they are a rounding error compared to the times that people want to throw away the code, so to a first order of approximation "never start over from scratch" is correct.

Simply shifting the burden of proof to the "rewrite" side is usually sufficient. Where I currently work a rewrite request is not answered with "no" but "show me the data." 90% of the time the requester doesn't even try to gather data, the other 10% of the time results in some useful metrics about a component that everyone agrees needs some TLC, whatever the final decision.

Re: How Stylo Brought Rust and Servo to Firefox

#106

I love Firefox Quantum and it has replaced Chrome as my browser at home. It's memory consumption is far lower with the same amount of tabs open. That said, why does it perform slower than Chrome on most benchmarks? Is it due to the Chrome team doing much more grunt work regarding parallelism and asynchronous I/O? Or are there still features in the current Firefox build that still call the original engine? Does Rust h…

> most benchmarks Which benchmarks are you talking about? It depends on what those benchmarks measure. For example, a lot of the Quantum work was in user-percieved UI latency; unless the benchmark is measuring that, and I imagine that's a hard thing to measure, it's not going to show up. > Does Rust have a runtime penalty as Golang does? Rust has the same amount of runtime as C does: very very little. https://github.…

Thanks, that's good to know about Rust's runtime.

I'm embarrassed to say that I just blindly trusted a couple of websites' claims that they ran benchmarks, without verifying they're even industry-standard. The articles were on Mashable and AppleInsider.

Mashable tested webpage load times, which only one dimension of many to optimize for. AppleInsider looked at speed, CPU usage, and memory consumption.

Re: How Stylo Brought Rust and Servo to Firefox

#107

Earlier quoted context omitted.

> Apple created LLVM and clang To be specific, LLVM started as an academic project by Vikram Adve and Chris Lattner in 2000. Apple hired Chris Lattner in 2005 to work on LLVM for Apple. Clang, though, does appear to have been an Apple project, being introduced by Steve Naroff of Apple in 2007 as an open-source project.

Thanks for pointing that out. LLVM is one of the main things Apple gets to claim credit for, yet they aren't the only ones who deserve it. LLVM is one of the reasons rust is so great, and the world is better because of it.

You can still give Apple credit for having sponsored a significant investment into LLVM. Without them, it might not have taken off the way it has.

Re: How Stylo Brought Rust and Servo to Firefox

#108

Earlier quoted context omitted.

> most benchmarks Which benchmarks are you talking about? It depends on what those benchmarks measure. For example, a lot of the Quantum work was in user-percieved UI latency; unless the benchmark is measuring that, and I imagine that's a hard thing to measure, it's not going to show up. > Does Rust have a runtime penalty as Golang does? Rust has the same amount of runtime as C does: very very little. https://github.…

Thanks, that's good to know about Rust's runtime. I'm embarrassed to say that I just blindly trusted a couple of websites' claims that they ran benchmarks, without verifying they're even industry-standard. The articles were on Mashable and AppleInsider. Mashable tested webpage load times, which only one dimension of many to optimize for. AppleInsider looked at speed, CPU usage, and memory consumption.

No worries! Benchmarking is super hard, generally, and browsers are so huge, there's tons of things that you can measure. I'm not trying to say that you shouldn't trust any of them, just that that might be the source of discrepancy between what you've experienced and those numbers.

It also true that sometimes it's slow! There's always more to do.

Re: How Stylo Brought Rust and Servo to Firefox

#109
post #59

Earlier quoted context omitted.

What I wonder, and I do not mean this in negative way, is whether this would have happened in a more commercially oriented organisation. Mozilla remains a foundation, and I consider Rust a fruit of their labour in itself. To put it another way, I find it hard to justify developing Rust just for a web browser. But if you consider it from the perspective of a foundation developing tools for the developer community as a…

> I find it hard to justify developing Rust just for a web browser "just for", our browsers are already very complex. The browser is responsible for sandboxing and in effect taming the wild web.. and the web is not looking to become less wild :) in the future browsers will have to prioritize CPU time between tabs seeking to mine bitcoin, crazy ad schemes, and battery power. In terms of security, browser bugs scares m…

effectively, browsers are growing up to gain most of the same functionality as modern operating systems, with all the complexity that brings.

Re: How Stylo Brought Rust and Servo to Firefox

#110
post #42

It's gratifying to see how successfully the same organization has learned from the debacle that was the rewrite from Netscape 4 to Mozilla in the first place. That time, they didn't release for years, losing market share and ceding the web to Internet Explorer for the next decade. Joel Spolsky wrote multiple articles[1][2] pointing out their folly. This time, their "multiple-moonshot effort" is paying off big-time be…

The original plan was for the Servo project was to develop a new browser engine separate from Gecko, similar to the original Mozilla transition. An alpha-quality browser with Servo as an engine was originally a 2015 goal, and the active goal tracking this was removed from the roadmap in 2016: https://github.com/servo/servo/wiki/Roadmap/_compare/47f490b... As someone who was involved with Servo during that time period…

When I looked at browser.html, it was what you could call an "alpha-quality browser", unless we use different definitions of the term "alpha-quality".
Post reply on HN