While Ladybird produces the flashier demos at the current point in time I hope Servo can continue its development to act as a second independent implementation of web rendering now that Ladybird has gone hard into AI-powered development.
I understand that almost everything about the projects are different: scope, funding, programming language (although not entirely anymore since Ladybirds transition to Rust), etc. But I think it could serve as an interesting case study in the AI and non-AI development methods in the future, despite all these differences.
What do you mean by that? One couldn't take existing JavaScript code and run it in a parallel way as it would change the semantics of the language and so would break any existing concurrent JavaScript programs.
Just to play with the idea: You could eagerly execute all non-IO branches (or some branches, using a branch predictor) in a thread pool to achieve faster runtime via multithreading. Would be a super inefficient use of resources though. I'm sure there's a lot of smarter ways to automatically parallelise code written for a single thread.
I remember reading years ago about how Servo when it encounters a <script> block, it just keeps parsing as if the script block doesn't do document.write(...), but the moment it does, it rewinds to that point, because the <script> block has to behave synchronously (but doesn't mean it actually has to be processed synchronously in all situations). I'm imagining the same kind of principle could apply to running JS.
ofc not, i mean parsing, resolving imports, other things like differing approaches to high performing backends (not llvm :3), parallel jiting and gc, the whole shebang
Ah! To speed up code loading and starting execution? I feel like the current engines are really good at that. Do you think there's much more value to be had there?
Im not sure, i just like how ladybird is trying things out and i feel like sometimes starting from scratch has the benefit of allowing to rethink some seemingly established thinking points
Unless you can prove that local changes don't leak and the debugger doesn't stop in weird places. (And deoptimise when breakpoints appear) Java 7 went through a period of new optimisations enabled by escape analysis. JS runtimes could do it too.
Nice, I sadly get stuck hard on sites like https://www.wiki.gg/ permanently after trying the "experimental features" once with a
Just a moment...We need to review the security of your browser and network before proceeding
Security checks are being performed by Cloudflare
If this page appears often, please send us the following information: ..
But that site never goes away and if I try to use the report function it'll hang too. Reported that in firefox and will have to see if I can debug this here too.
Oh and having Ctrl + L for editing the URL would be nice, same for moving the selection via keys.
This is due to Cloudflare's Turnstile, which is notoriously hard to satisfy, even Chrome and Firefox fail it sometimes.
FWIW, I managed to load wiki.gg with Servo git a couple of times. It's unreliable (and if it fails once it gets stuck there until you reset your browser data), but it's getting further than the last time I tried (on a different Turnstile-gated website), a release ago.
vincent-uden | a day ago
While Ladybird produces the flashier demos at the current point in time I hope Servo can continue its development to act as a second independent implementation of web rendering now that Ladybird has gone hard into AI-powered development.
I understand that almost everything about the projects are different: scope, funding, programming language (although not entirely anymore since Ladybirds transition to Rust), etc. But I think it could serve as an interesting case study in the AI and non-AI development methods in the future, despite all these differences.
xnacly | 21 hours ago
the only thing (imo) servo is missing is a JavaScript engine thats as revolutionary in terms of parallelism
mordae | 20 hours ago
I'd take automatic vectorization that doesn't stop at 2 doubles at a time at this point.
lpil | 20 hours ago
What do you mean by that? One couldn't take existing JavaScript code and run it in a parallel way as it would change the semantics of the language and so would break any existing concurrent JavaScript programs.
yokljo | 15 hours ago
Just to play with the idea: You could eagerly execute all non-IO branches (or some branches, using a branch predictor) in a thread pool to achieve faster runtime via multithreading. Would be a super inefficient use of resources though. I'm sure there's a lot of smarter ways to automatically parallelise code written for a single thread.
I remember reading years ago about how Servo when it encounters a <script> block, it just keeps parsing as if the script block doesn't do
document.write(...), but the moment it does, it rewinds to that point, because the <script> block has to behave synchronously (but doesn't mean it actually has to be processed synchronously in all situations). I'm imagining the same kind of principle could apply to running JS.xnacly | 19 hours ago
ofc not, i mean parsing, resolving imports, other things like differing approaches to high performing backends (not llvm :3), parallel jiting and gc, the whole shebang
lpil | 19 hours ago
Ah! To speed up code loading and starting execution? I feel like the current engines are really good at that. Do you think there's much more value to be had there?
xnacly | 19 hours ago
Im not sure, i just like how ladybird is trying things out and i feel like sometimes starting from scratch has the benefit of allowing to rethink some seemingly established thinking points
viraptor | 4 hours ago
Unless you can prove that local changes don't leak and the debugger doesn't stop in weird places. (And deoptimise when breakpoints appear) Java 7 went through a period of new optimisations enabled by escape analysis. JS runtimes could do it too.
proctrap | 16 hours ago
Nice, I sadly get stuck hard on sites like https://www.wiki.gg/ permanently after trying the "experimental features" once with a
But that site never goes away and if I try to use the report function it'll hang too. Reported that in firefox and will have to see if I can debug this here too.
Oh and having Ctrl + L for editing the URL would be nice, same for moving the selection via keys.
moltonel | 32 minutes ago
This is due to Cloudflare's Turnstile, which is notoriously hard to satisfy, even Chrome and Firefox fail it sometimes.
FWIW, I managed to load wiki.gg with Servo git a couple of times. It's unreliable (and if it fails once it gets stuck there until you reset your browser data), but it's getting further than the last time I tried (on a different Turnstile-gated website), a release ago.