Gecko is too big - Firefox development stalls over code linking issue
groups.google.com
groups.google.com
This really isn't that interesting. Doing whole program optimization on a large codebase takes a fair amount of memory. We've exceeded virtual address space limits on MSVC 2005's linker a couple times in the past, and gotten past it before. We'll hack around it for the moment, and we're in the process of replacing our toolchain with a more modern version.
I'd note two other things: 1) The amount of binary code we ship isn't actually that high. "Libxul" (meaning Gecko, the networking stack, XPCOM, etc) is only about 16 MB of compiled code. The JS engine, crypto libraries, sqlite, etc, add a couple more MB. Compare this to chrome.dll or mshtml.dll and I think you'll see that we stack up pretty favorably. 2) Code size is actually about the least interesting metric of performance/bloat/what have you that there is. A lot of the code sits idle most of the time (think things like video codecs, character conversion code for random charsets you've never heard of) and can be swapped out (or not even loaded into RAM).
tl;dr: hit a compiler/linker bug, will have it fixed in a day or two.
I'm guessing HN should downrank by default submissions from people with no posts.
Regardless, the topic is interesting, even if the title is indeed, horrible "quick firefox is dead meme!".
Heck if some Googlers are behind that stuff, that's sad.
The evidence that development has stalled is the fact that the tree for landing code changes has closed. SPDY, recently announced here, has been, or is being considered for, removal to relieve code size.
These are slightly sensationalist ways of phrasing the following facts:
* libxul hit linker limits on 32-bit Windows builds with profile guided optimization enabled, as it did a couple of years ago. PGO uses a lot of memory, but it's how we deliver on Windows, so it's important.
* mozilla-central and mozilla-inbound were temporarily closed to avoid further build failures whilst the issue was explored. Other trees (try, services-central, etc. etc. etc.) remained open.
* some recent large changes to libxul were backed out in order to relieve pressure on linking.
* mozilla-central is now open for landings that aren't libxul-related, apart from those to trim it down. JavaScript and other landings continue unabated.
See Bugzilla for the full scoop.
just take a look at Fennec's nightly. what they did is wipe XUL. thats right.
- It's using Native UI, aka, it's using whatever the OS provides (here, Android's UI). and just runs Gecko in it.
- It breaks addons touching XUL.
- It uses very little memory in comparison
- It's freaking FAST. Puts Chrome, Opera, you name it to shame. Yes, really!
- UI NEVER lags. Thats right, fixes that too.
- Oh and it does support Flash for Android this time.
Then again, its a pretty early nightly of a whole new Fennec so there _are_ bugs and missing functionality.
Why I'm saying that? Well, despite the addons issue I'd wish for at least such an experimental version for Win/OSX/Linux. It's just that good.
Unfortunately support for embedding Gecko has been woeful, making experiments in this area difficult. The lack of an embedding story for Gecko is a big reason for it losing ground to WebKit in my opinion.
https://wiki.mozilla.org/Fennec/NativeUI/Architecture_Overvi...
Fennec's improved launch speed is partly due to the order in which components are loaded: the primary UI can appear before the layout engine is ready.
Compiling without XUL would shave some size off the binary, but probably not a whole lot. Most of the code involved in rendering XUL is the same code that renders HTML.