6 ms·
Servo – A parallel browser engine in Rust by Mozilla
- agumonkey 13y agoJust recently passed Acid 1 https://twitter.com/metajack/status/371041675633647616 https://twitter.com/metajack/status/371041675633647616
- dbaupp 13y agoNote that the master branch is actually still 1 patch from passing: https://github.com/mozilla/servo/pull/764 https://github.com/mozilla/servo/pull/764.
- santialbo 13y agoIs this supposed to replace Gecko in the future? or is it just a "toy" project?
- pcwalton 13y agoIt's a research project. There are no product plans at this time.
- iopq 13y agoif early benchmarks find that it scales better on more cores, it will probably be pushed to replace Gecko if it doesn't seem like the gains are great, they'll probably have to prove that the added safety is worth it
- nawitus 13y agoWhat is specifically a "browser engine"?
- Millennium 13y agoThe definition is a little fluid. At the absolute minimum you'd need an HTML renderer and Internet access, but this wouldn't get you so far on the modern Web. Most people would expect some level of CSS and JavaScript support too.
- agumonkey 13y agoAFAIK Servo is mostly a DOM layout parallel renderer. I mistook it for a full browser but the dev corrected me saying it's "just" rendering engine. Right now they're using separate css lib, js interpreter, etc. Servo deals with the layout.
- Avshalom 13y agoIs there a good high level post any where about the architecture of servo (particularly compared to gecko)? All I ever hear is "parallel-er" with out any detail about which bits can/can't/aren't-but-could-be or anything.
- bjz_ 13y agohttps://github.com/mozilla/servo/wiki/Design https://github.com/mozilla/servo/wiki/Design
- illektr1k 13y agoI will be the first to admit to having a soft-spot for any program that will quote H.P. Lovecraft on abort/error. https://github.com/mozilla/rust/blob/master/src/libstd/rt/util.rs https://github.com/mozilla/rust/blob/master/src/libstd/rt/ut...
- bjz_ 13y agobrson likes scatter those around. Rust's new runtime has gave me a few of when it first landed. Unfortunately I haven't seen any in quite a while. :( (I really hope some spoil-sport doesn't get rid of them)
- sinkasapa 13y agoYeah, as long as it isn't a quote of his cat's name.
- steveklabnik 13y agoYou can click and shift-click on the line numbers to get a URL like this: https://github.com/mozilla/rust/blob/master/src/libstd/rt/util.rs#L77-L119 https://github.com/mozilla/rust/blob/master/src/libstd/rt/ut...
- doe88 13y agoI would be interested in knowing how they accomplish such a huge undertaking given the fact Rust seems [1] to be a language in constant evolution right now. Do they target a fixed subset of Rust (is it even possible) or do they make continual updates to their code? (disclaimer I know nothing about Rust other than having read some of the previous posts linked from HN) [1] as others HN readers have commented in related threads about Rust
- azakai 13y ago> Do they target a fixed subset of Rust (is it even possible) or do they make continual updates to their code? Updates when necessary. As the language gets more stable, that gets easier.
- Cowen 13y agoServo right now is more of a Rust reference project than a serious engine. They use the most up-to-date features of Rust and don't worry about having to rewrite the code with the next version because they know they're working with a somewhat unstable language spec. The real value of Servo right now isn't really as a browser engine, but instead its value as the largest software project currently written in Rust. When you're creating a programming language, you always want to know what it will be like to build large projects in that language, and that's exactly the experience being gained right now with Servo.
- tbe 13y agoKnowing what it's like to write an HTML rendering engine in Rust is especially useful since the purpose of this language in the first place is to write the next generation Mozilla engine.
- bjz_ 13y agoI believe Servo uses a particular version of Rust for 1-2 weeks, then updates to the new version. But somebody closer to the project would have to confirm that. Servo is extremely important to the language's development because it is such a huge undertaking. Along with the self-hosting compiler, it allows the core devs to get invaluable feedback on how their language is performing practically.
- deleted 13y ago[deleted]
- erikpukinskis 13y agoIt's funny to take a moment and notice that a cutting edge new project comes with build instructions for Mac first and then Debian. It wasn't so long ago that if you weren't on Windows or RedHat you were going have to figure it out yourself.
- pohl 13y agoThis probably has more to do with the relative maturity of LLVM (used for Rust's compiler's back end) on each target.
- bjz_ 13y agoAnd unfortunately Windows support is one of Rust's weak spots. Which will be sorted in the future of course, but it needs some tenacious souls to donate some time if it's going to happen any sooner. Game devs will need this in particular, and they are probably going to be one of Rust's primary groups of users. (in fact, anecdotally it feels like they already are)
- weavie 13y agoHow is it weaker? I've just started running it on windows this week. Needs to run under MinGw, but other than that I'm not aware of any probs. Am just starting on it though, so it would be interesting to know.
- eslaught 13y agoI don't know if this is still true, but at one point in time you needed to have installed the exact same version of MinGW that Rust itself was compiled with. That meant, for example, that you couldn't rebuild Rust with a newer version of MinGW. Also, and this isn't really a Rust problem so much as an LLVM one, I believe exception handling was broken on Windows for some time. Presumably this is fixed now, but I haven't actually checked recently.
- bjz_ 13y agoOh really? That's great! To be honest I don't follow the Windows situation too closely, as I work on OSX. So things might have improved.
- ciupicri 13y ago> Servo builds its own copy of Rust, so there is no need to provide a Rust compiler. That's because it downloads and compiles it when compiling Servo. I wish they'd mention this.
- ics 13y agoI was a little surprised when I caught that in my terminal as well. About to enter hour two of building...