Slashdot Mirror


Firefox Too Big To Link On 32-bit Windows

An anonymous reader writes "Firefox has gotten so large that it cannot be compiled with PGO on a 32-bit linker anymore, due to the virtual memory limitation of 3 GB. This problem had happened last year with 2 GB, which was worked around by adding a/3GB switch to the Windows build servers. Now the problem is back, and things aren't quite that simple anymore." This only affects the inbound branch, but from the looks of it new code is no longer being accepted until they can trim things from the build to make it work again. The long term solution is to build the 32-bit binaries on a 64-bit system.

569 of 753 comments (clear)

  1. Trying to do too much by bobcat7677 · · Score: 5, Insightful

    And this would be the point where the fact that the Firefox devs have been trying to do too much with a "browser" becomes beyond blatantly obvious. Firefox team: get your stuff together or you will die a slow death of attrition.

    1. Re:Trying to do too much by dn15 · · Score: 5, Funny

      And this would be the point where the fact that the Firefox devs have been trying to do too much with a "browser" becomes beyond blatantly obvious.

      Firefox is a great operating system, if only it included a decent browser :P

    2. Re:Trying to do too much by jlebar · · Score: 5, Informative

      Chrome doesn't even try to build with PGO, last time I checked.

      http://groups.google.com/a/chromium.org/group/chromium-dev/browse_thread/thread/533e94237691e2f6

    3. Re:Trying to do too much by Grizzley9 · · Score: 3, Interesting

      I'd already have switched to Chrome if not for FF's Live Bookmarks. Reading a bunch of different sites, multiple times a day it makes for an easy scan of story titles to see if anything is worth looking at. Otherwise I'd switched long ago and was sad Chrome didn't come with it. I don't want to manage a dedicated app.

    4. Re:Trying to do too much by maztuhblastah · · Score: 4, Informative

      An excellent takeaway from this article.

      Unfortunately, it's completely incorrect. TFA is talking about the build process on a 32-bit host, specifically that VS builds using profile-guided optimization require more memory than is available in the address space *DURING THE BUILD PROCESS*, not an issue encountered by the resulting binary.

      I know you want a chance to get in a quick dig at Firefox, but this isn't the article for that.

    5. Re:Trying to do too much by Nethemas+the+Great · · Score: 1

      I don't think they are trying to do "too much" per-se. Rather, they have an underlying architecture that is forcing bloat creating compromises in support of functional requirements. FireFox needs a reboot and this is a symptomatic consequence.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    6. Re:Trying to do too much by arkane1234 · · Score: 1

      It's obvious emacs developers got bored on their current projects ;)

      --
      -- This space for lease, low setup fee, inquire within!
    7. Re:Trying to do too much by lpp · · Score: 5, Insightful

      I think it's still indicative of the problem GP mentions. The more code you are trying to pull in, the larger the footprint during the build process. You don't see a 'Hello world' program requiring a 3GB+ build footprint do you? No, because it's not doing enough to warrant that. Likewise, Firefox apparently *is* trying to do a lot. More than it used to at any rate.

    8. Re:Trying to do too much by Unoriginal_Nickname · · Score: 5, Insightful

      Thank you for posting this. Filling the virtual address space of the linker probably does indicate some problems with the Firefox source code - crazy big translation units, for example - but it doesn't imply anything about the size or quality of the resulting binary.

      I thought people on this site were supposed to know something about computers.

    9. Re:Trying to do too much by scamper_22 · · Score: 1

      Unfortunately, there is a pretty high correlation between what an application does and how big the binary is.

      If it does less things... it has fewer dependencies, less code... and you won't hit that problem.

      Alternatively, if more things were add-ons/plugins that needn't be linked with the main binary, this wouldn't be a problem either.

    10. Re:Trying to do too much by Anonymous Coward · · Score: 2, Insightful

      It's more an indication that compiler writers are taking advantage of the huge amount of memory available for optimization techniques that take a lot of RAM. This is actually a GOOD thing. The bad thing is if it takes RAM while it's running.

    11. Re:Trying to do too much by BZ · · Score: 5, Informative

      Define "too much"?

      It's been over a year since Chrome had to turn off PGO altogether and move to 64-bit builders even without PGO, because they ran into this same problem.

      So maybe your issue is with the fact that all "browsers" as you call them are trying to do too much? They should drop the fast graphics and jits and video and audio support and all that jazz, right?

    12. Re:Trying to do too much by BZ · · Score: 5, Insightful

      The "translation unit" involved here is the whole binary. We're talking about link-time code generation with profile-guided optimization, not regular compiles.

      So it doesn't indicate much of anything about the Firefox source code other than general overall quantity of code being compiled...

    13. Re:Trying to do too much by Xolve · · Score: 1

      Hey even Chrome requires a big machine to compile, don't remember the exact specs.. I got this from a Google Tech Talk/

    14. Re:Trying to do too much by maztuhblastah · · Score: 5, Informative

      I think it's still indicative of the problem GP mentions. The more code you are trying to pull in, the larger the footprint during the build process. You don't see a 'Hello world' program requiring a 3GB+ build footprint do you? No, because it's not doing enough to warrant that. Likewise, Firefox apparently *is* trying to do a lot. More than it used to at any rate.

      Well you're right in that Firefox does need a hell rather large amount of RAM to build... but it's not just them; all browsers are trying to do a lot nowadays.

      Chrome doesn't exactly have light build requirements either. In fact, the Chromium project already seems to have dropped 32-bit build environments:

      A 64 bit OS is highly recommended as building on 32 bit OS is constantly becoming harder, is a lot slower and is not actively maintained.

      (From "Build Instructions (Windows) - Build Environment")

      That's why I think that the parent poster's implication that it's due to Firefox becoming "bloated" is basically hogwash. Browsers are more complex than they were in the mid-90s. That's what happens when you add 10+ years of new formats and technologies that must be supported for a browser to be considered "usable". Directing one's ire at Firefox is unwarranted, IMHO.

    15. Re:Trying to do too much by Skapare · · Score: 1, Interesting

      That still shows poor design.

      Much of FF's bloat is due to added features only a subset of users want. What FF should do is what the Linux kernel does. And that is to make lots of parts be separately loaded modules. Unlike the kernel, these can easily be dynamically loaded by the program itself as needed, and even unloaded when not needed. Then stuff a given user never uses would never be loaded (it would just sit in the filesystem as a .so file somewhere). These modules would all be separately compiled (from the common headers that describe interfaces), and ... this is important for this issue ... separately linked.

      --
      now we need to go OSS in diesel cars
    16. Re:Trying to do too much by Skapare · · Score: 1

      Obligatory ...

      Emacs is a great operating system, if only it had a decent editor. :P

      --
      now we need to go OSS in diesel cars
    17. Re:Trying to do too much by Unoriginal_Nickname · · Score: 1

      The object files will contain redundancies, such as symbols and template instantiations. Without good header management the linker (and profiler, since this is done per translation unit) will need vastly more memory.

    18. Re:Trying to do too much by Chrutil · · Score: 1

      In truth, Firefox is a great browser, but the operating system it includes around it is crap.

      Too young to remember emacs perhaps? Kids these days. Now get off my lawn.

    19. Re:Trying to do too much by BZ · · Score: 5, Informative

      > And that is to make lots of parts be separately loaded
      > modules

      This actually leads to pretty serious performance penalties because of the way that web specs tend to interdepend on each other. It also loses you optimization opportunities.

      Pieces of functionality that are not interdependent with other stuff (e.g. audio and video backends, webgl) are in fact either in separate libraries or being moved there.

      For the other stuff, there did use to be more modules. It turned out that in practice most users needed them at startup (to show the browser itself and restore their tabs), so the only thing multiple modules got you was a slower startup and slower runtime code.

      It's not an accident that both Firefox and Chrome ship almost all their code in a single library (binary in the case of Chrome). It turns out that for web browsers specifically this works somewhat better than the alternatives.

      Oh, I just checked and looks like Opera also also links all its code into a single library, at least on Mac.

      And Safari links all the core WebKit code into a single library.

      Not sure what IE does nowadays, but last I checked mshtml.dll in fact included all the actual browser bits.

      Now it may be that all the people involved in all these projects can't design worth anything. Or maybe they did some measurements that you haven't done and found that this approach works better....

    20. Re:Trying to do too much by spam4rakesh · · Score: 1

      Emacs is a great OS and it includes a browser too :)

    21. Re:Trying to do too much by Murdoch5 · · Score: 1

      Real men use Vi

    22. Re:Trying to do too much by gl4ss · · Score: 1

      nah..

      this _is_ an article for that.
      in addition, they've been stuck on vs 2005.

      the obvious thing for them to do would have been to switch to building on a 64bit os. it's not like you'd like to compile ICS on a friggin nexus either..

      they should seriously re-arrange a lot of things. that would make loading a lot of crap optionary too.

      --
      world was created 5 seconds before this post as it is.
    23. Re:Trying to do too much by BagOCrap · · Score: 1

      Oh, where are the mod points when the voice of insight chimes in?

      --
      -- Chaos, panic, pandemonium... My job here is done!
    24. Re:Trying to do too much by BagOCrap · · Score: 1

      Why, yes, of course! All software should be modular by default.

      Not to be an utter arse, I agree with you to an extent. I'm just having some troubles comparing Firefox to the Linux kernel. Oranges to orange trees, if you like.

      --
      -- Chaos, panic, pandemonium... My job here is done!
    25. Re:Trying to do too much by fahrbot-bot · · Score: 1

      Firefox is a great operating system, if only it included a decent browser :P

      Hmm... Can't Emacs emulate Firefox? Let me see... something like < M-x firefox-mode >

      --
      It must have been something you assimilated. . . .
    26. Re:Trying to do too much by Tolkien · · Score: 5, Informative

      PGO = Profile Guided Optimization. It allows the optimizing compiler/linker to figure out for itself exactly what the critical execution path(s) of the program (the code that runs most frequently) is/are by requiring the user to execute the code with this special pgo-instrumentation of the compiled code as many times as required to cover typical use-cases, and optimize the code based around the execution paths taken. Profile guided optimization is a strictly optional step which can be used to improve program performance (potentially) more or better than the generalized optimizer (/Ox compiler option with MSVC) can. Fuck. Posting this is undoing my moderations. Oh well.

    27. Re:Trying to do too much by TehDuffman · · Score: 1

      I'd already have switched to Chrome if not for FF's Live Bookmarks. Reading a bunch of different sites, multiple times a day it makes for an easy scan of story titles to see if anything is worth looking at. Otherwise I'd switched long ago and was sad Chrome didn't come with it. I don't want to manage a dedicated app.

      Mod parent up. Live bookmarks is the only reason i still use FF and the chrome apps that attempt to replicate come close but aren't there. Should have been in Chrome since version 4...

    28. Re:Trying to do too much by ceoyoyo · · Score: 3, Insightful

      Just because Chrome is bloated too doesn't mean Firefox isn't.

    29. Re:Trying to do too much by Kuipo · · Score: 1

      I have a friend like that too, what I don't get about that stance is this... Why don't you just use an RSS aggregator like Google Reader if you want to use RSS (which is what their live bookmarks are using)? Once you use an RSS aggregator, it's unlikely that you'll go back to their live bookmarks. They really don't offer much in comparison.

    30. Re:Trying to do too much by Khashishi · · Score: 1

      That's a good idea. They could call them "add-ons" or maybe "plugins" or "extensions"

    31. Re:Trying to do too much by KXeron · · Score: 1

      I disagree. Applications should be optimised but many developers aren't doing that anymore as it means more development time.

      Over the years, if you compared in ratio how much resources applications used in 2000-2005 compared to what they use now, you'll see that applications use an unjustified amount of resources. A large problem is this "If your computer can't run X, upgrade your computer" movement instead of pressing developers into reviewing how they can optimise.

      Nearly no modern practical use (read: browsers, office productivity, etc) program can run on a modern average computer anymore without paging to disk, and that is a disturbing trend.

    32. Re:Trying to do too much by youn · · Score: 1

      When did they upgrade from punchcards?

      --
      Never antropomorphize computers, they do not like that :p
    33. Re:Trying to do too much by gbjbaanb · · Score: 1

      I don't suppose the huge web-display system needs to be split into pieces (though I imagine there's not that much overhead to it - you won't get any PGO, but that's not that big an optimisation step as you'll still get it inside each module).

      What could be done is to split the rest of the browser into modules. The code that displays a window doesn't have to be in the same module as the code that figures out how to display the data stream. The bookmarks system could be a separate module that's linked in at the end - its hardly essential that something like that is optimised to the operation of the whole.

    34. Re:Trying to do too much by syousef · · Score: 1

      Real men use Vi

      I'm an evolved man. I use Vi Improved!

      --
      These posts express my own personal views, not those of my employer
    35. Re:Trying to do too much by luserSPAZ · · Score: 1

      Except what BZ just said is that you pretty much need all of those core pieces to start the browser anyway, so splitting them out into separate modules just makes the browser start more slowly.

      Also, cross-module optimization does help quite a bit. Microsoft's PGO optimizer is able to do crazy stuff like speculative virtual call inlining, which is a big deal on a large C++ codebase like Mozilla.

    36. Re:Trying to do too much by shutdown+-p+now · · Score: 1

      No, it doesn't. Link-time code generation is very memory-intensive (consider that the compiler has to maintain any state necessary for the optimizer - like code flow graph - for the entire resulting binary). PGO adds a lot more on top of that. For a sufficiently large project, it is not at all uncommon to hit the 3Gb limit. Firefox is not unique in that.

    37. Re:Trying to do too much by gid · · Score: 1

      With chrome, wrench, options, personal stuff, sigh in with you google account. It even automatically installs your extensions I believe.

    38. Re:Trying to do too much by martin-boundary · · Score: 1

      You don't see a 'Hello world' program requiring a 3GB+ build footprint do you?

      Depends. If it's a recursive template metaprogramming style 'Hello World' program, it might :)

    39. Re:Trying to do too much by Shatrat · · Score: 1

      Chrome isn't bloated though.  It is fast and lightweight.  The example is a counter point to the correlation of compile resources and cruft and bloat in the end product.

      --
      09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
    40. Re:Trying to do too much by St.Creed · · Score: 3, Funny

      Don't worry, I've modded you up!

      Oh, wait...

      --
      Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
    41. Re:Trying to do too much by snemarch · · Score: 1

      Not translation units - when doing PGO, you also generally do LTCG across the entire program image, not within translation units. To overcome this, they'd have to split into a bunch of DLLs.

      --
      Coffee-driven development.
    42. Re:Trying to do too much by DJRumpy · · Score: 1

      You raise a good point. I think a good approach to this is to address the misconceptions about 'bloat'. What features would they remove that they consider bloat? They just see a large binary and assume it's 'bloated' when the consumer is the one demanding the additional functionality. Think about that a bit. What features would you remove from Firefox (or any other browser) that you consider irrelevant. Granted there are some features in all browsers I could do without, but not many. They originally started as a simply idea. Display static web pages. They have morphed into dynamic, almost OS like feature sets, and consumer demand just keeps pushing that envelope further and further.

      My idea of bloat is when you have feature creep that tends to make the code less optimized and larger than necessary. It is unavoidable to some extent as you add features between major releases, but a major release is the perfect time to address such issues and I can't imagine of of these major browser vendors not doing just that. To my mind, heavily used features are not bloat.

      If the majority of users want said feature, it is not bloat.

    43. Re:Trying to do too much by sl4shd0rk · · Score: 1

      > trying to do too much with a "browser"

      I would be interested in your success with compiling insert_your_browser_here.

      Memory requirements for the compilation process is not necessarily indicative of the resulting binary size or memory usage. Sometimes compilers include optimizations which stress the resources on the host system (I've actually discovered bad ram this way).

      Sure firefox is bloaty but I'll take a little bloat over the other locked-up alternatives. At least I can verify whether "carrierIQ" or similar ilk has not been surreptitiously compiled into my web browser. Besides, who's running windows with 3G anymore? I thought SP3 fixed that.

      --
      Join the Slashcott! Feb 10 thru Feb 17!
    44. Re:Trying to do too much by nurb432 · · Score: 1

      That's why I think that the parent poster's implication that it's due to Firefox becoming "bloated" is basically hogwash. Browsers are more complex than they were in the mid-90s. That's what happens when you add 10+ years of new formats and technologies that must be supported for a browser to be considered "usable". Directing one's ire at Firefox is unwarranted, IMHO

      It is sad that FF has to 'keep up' in the first place. Bloat of everything is way out of control. We need to simplify things. Badly.

      --
      ---- Booth was a patriot ----
    45. Re:Trying to do too much by Murdoch5 · · Score: 1

      haha Nice!

    46. Re:Trying to do too much by Z00L00K · · Score: 1

      Swap to Opera if you want something that's relatively lean and still competent.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    47. Re:Trying to do too much by mackil · · Score: 1

      You don't see a 'Hello world' program requiring a 3GB+ build footprint do you?

      Some come close though...

    48. Re:Trying to do too much by gbjbaanb · · Score: 1

      to take the last part only:

      imagine the history function is a method that's called. Does it really need PGO to speed up a function call? Or even if the display routines store up all links in a page then send them to a history function which returns all the ones that have been visited to be re-coloured after the final display is calculated, really does that need PGO? If one takes .25 seconds to run, would any call optimisation really shave any meaningful time off that number? The history module would still be optimised within itself after all, and just because the code is in a module doesn't mean it would have to manage the history data totally separately at runtime.

      That's what I'm talking about here, and it could well be that the rendering engine is so huge it screws the optimiser by itself, it doesn't mean that a large majority of the non-critical-path codebase could be modularised, ie all the stuff surrounding the page rendering.

      Of course, if such a small modification does make a large performance hit, then you have to wonder what the code paths are like. A certain amount of simplifying might make a much larger difference in such a case.

    49. Re:Trying to do too much by Arancaytar · · Score: 1

      It probably wouldn't be infeasible to emulate Emacs in a Firefox addon, either.

    50. Re:Trying to do too much by syousef · · Score: 1

      Thank you sir.

      --
      These posts express my own personal views, not those of my employer
    51. Re:Trying to do too much by BZ · · Score: 2

      > Does it really need PGO to speed up a function call?

      Depends on how often it has to be called. PGO can in fact speed up function calls (e.g. by inlining; MSVC with PGO will inline virtual methods in many cases).

      > Or even if the display routines store up all links in a
      > page then send them to a history function which
      > returns all the ones that have been visited

      That doesn't work for handling dynamic style changes (which includes style recomputation on any mutation to the DOM). It might be OK for completely static pages, but those are very rare on the web today.

      > Of course, if such a small modification does make
      > a large performance hit, then you have to wonder
      > what the code paths are like.

      You don't have to wonder. The consistent thing with any style system related code is that it will get run a _lot_, because the number of times it's run is O(number of nodes * number of mutations * number of selectors on the page). Those numbers are typically order of "thousands", "thousands", and "thousands" for normal pages, and all three end up in the tens to hundreds of thousands for complicated pages. Browsers do what they can to avoid running this code when possible, but even then it's still very hot code.

    52. Re:Trying to do too much by Anonymous Coward · · Score: 1

      Perhaps, but there does seem to be a trend of complaining about something that Firefox does, usually ending with "and that's why I use Chrome instead". The problem? Most of the time, Chrome does the exact same thing.

      So, this problem. Firefox's codebase is big and bloated, trying to do too much, and that's why it's having trouble linking. Except Chrome had the same problem, long before.

      Firefox is large (download size, disk space, code size, whatever). Chrome is actually larger. Firefox uses a lot of memory. So does Chrome (in fact, Chrome actually uses more memory than Firefox in certain situations). Firefox is slow on older systems, or systems without a lot of memory. Guess what? So's Chrome. There are new versions of Firefox released too often, which is a release schedule they copied from Chrome. People don't like the Firefox 4+ UI which, basically, is the same as Chrome's.

      The only difference seems to be that Chrome does a better job of covering up some of it's faults, by making slightly different trade-offs. The memory usage is somewhat mitigated by having multiple processes, because it's easier to release memory back to the system when you're done with it, but that same multi-process architecture is also the reason Chrome can use much more memory than Firefox under certain situations. Chrome gets away with it's update schedule because they put a lot more effort into the auto-updater. They don't break extensions as often because their extension API is much less powerful than Firefox's original extension API, but it's roughly equivalent to Jetpack (Firefox's new extension API).

      All modern browsers are huge, complex pieces of software. They're trying to do a lot, on big, complicated web pages, and make it as fast as possible. That requires a lot of code, and it requires a lot of trade-offs. It has to be secure, it has to be fast, and it has to use a reasonable amount of memory. So, generally, they trade increased code complexity for security, speed, and memory usage. They all do this. The alternative is that you have a simple, elegant web browser that nobody uses, because it's a slow, insecure memory hog with no useful features.

    53. Re:Trying to do too much by bejiitas_wrath · · Score: 1

      I am using Internet Explorer 9 x64 to type this, on Windows 7 Ultimate. It has many cool features that Firefox is lacking, such as loading images in place on a web page when browsing with images off. Firefox can load an image in a new tab, but not load it in place. And the speed of IE9 is far greater than Firefox to load as well.

      --
      liberare massarum ex ignorantia, clausa descendit molestie.
    54. Re:Trying to do too much by danlip · · Score: 1

      Eight Megabytes And Constantly Swapping ... those were the days.

    55. Re:Trying to do too much by cratermoon · · Score: 1
    56. Re:Trying to do too much by GigaplexNZ · · Score: 1

      It's more an indication that compiler writers are taking advantage of the huge amount of memory available for optimization techniques that take a lot of RAM. This is actually a GOOD thing. The bad thing is if it takes RAM while it's running.

      There's a difference between "taking advantage" (using all available RAM) and requiring more (crashing when there's not an abundance).

    57. Re:Trying to do too much by GigaplexNZ · · Score: 1

      Firefox is more than just the rendering engine. The XUL user interface, plugin infrastructure etc are examples of Firefox code that has little to do with rendering web pages.

    58. Re:Trying to do too much by BZ · · Score: 2

      The XUL user interface is written in JS and XUL, not C++, so isn't part of the library in question to start with.

      The extension infrastructure is almost all written in JS, so isn't part of the library either.

    59. Re:Trying to do too much by minus9 · · Score: 1

      "I thought people on this site were supposed to know something about computers."

      I think "were" is the operative word here.

    60. Re:Trying to do too much by unixisc · · Score: 1

      I know it does plenty of things, but it has a browser? Didn't see any reference to that in the O'Reilly books. Is that a text only browser like lincs?

    61. Re:Trying to do too much by AmiMoJo · · Score: 1

      Add fast scrolling to the list. In Firefox I have set it up so that if I hold down ctrl and use the mouse wheel scrolling is a screen at a time. In Chrome is zooms and there is no way of changing that, or even using a different key.

      You could try Google Reader for RSS feeds but it isn't as nice IMHO as Brief in Firefox.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    62. Re:Trying to do too much by theaceoffire · · Score: 1

      Try Google Reader. All the fun of live bookmarks, and they organize themselves based on time (Most recent, older, etc) and allow you to view "Only unread items". That was what made me upgrade from Live Bookmarks.

      --
      I steal signatures. This one used to be yours.
    63. Re:Trying to do too much by Tolkien · · Score: 1

      Ha, beautiful. :)

    64. Re:Trying to do too much by Grizzley9 · · Score: 1

      Huge difference is that you have to manage a whole other site and deal with numerous stories you don't care about. With a live bookmark, you see all the story titles and go straight to the one you want plus it's updated continuously. If you are browsing once a day or less, yeah that might be an option. If I'm hitting /. multiple times a day for current stories, it's much easier just to have the Live Bookmark in a pull down for the latest stories.

  2. The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 4, Funny

    E.g. where's the status bar in recent firefoxes?

    1. Re:The code gets larger, and yet things dissapear! by GameboyRMH · · Score: 1, Redundant

      It's a status tooltip instead. It pops up in one of the bottom corners, displaying the same info that would have been in the status bar in the past.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    2. Re:The code gets larger, and yet things dissapear! by cruff · · Score: 5, Informative

      I immediately added the Status-4-Evar addon to my Firefox installations, works great.

    3. Re:The code gets larger, and yet things dissapear! by webmistressrachel · · Score: 5, Insightful

      If Seamonkey adopt this silly fade-in fade-out floating toolbar-as-status-bar-replacement, that'll be the end of the Mozilla line for me. Seamonkey has always been the sensible browser for Netscape-heads from way back when since Mozilla Suite died a death and SeaMonkey came into being.

      --
      This tagline was transcoded to result in at least one smirk. If you experience failure to smirk, please consult your Gen
    4. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 1

      Ctrl + /

    5. Re:The code gets larger, and yet things dissapear! by GameboyRMH · · Score: 1

      That's what's called the "add-on bar." It contains many things that were previously in the status bar, but not the actual status information.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    6. Re:The code gets larger, and yet things dissapear! by Cinder6 · · Score: 2

      What do you plan to use otherwise? Chrome does the same thing, so you're stuck with IE and Safari.

      Honestly, I cannot fathom what is preferential about an always-open status bar. For me, the status bar was always of such situational use that the first thing I did on a new browser install was disable it. Having it auto-hide is a much better choice. It's there when you need it (which is to say, rarely), and not there when you don't (which is to say, most of the time). I guess if you really want to see a progress bar for the page load, but then I think everybody should do what Safari does and combine that with the address bar.

      (This isn't a dig at you or anyone who is upset by the lack of a persistent status bar. I am genuinely curious about why it's such a sticking point.)

      --
      If you can't convince them, convict them.
    7. Re:The code gets larger, and yet things dissapear! by couchslug · · Score: 1

      "E.g. where's the status bar in recent firefoxes?"

      It's wrong to want things which FF developers deign not to give you. 8-P

      --
      "This post is an artistic work of fiction and falsehood. Only a fool would take anything posted here as fact."
    8. Re:The code gets larger, and yet things dissapear! by Merk42 · · Score: 1

      What do you plan to use otherwise? Chrome does the same thing, so you're stuck with IE and Safari.

      IE (9+) and Safari don't show a status bar either, so I guess he'll use Opera?

    9. Re:The code gets larger, and yet things dissapear! by Skapare · · Score: 1

      You can never really understand why, just like I cannot understand why people like you want it to just pop or fade in an out all the time. It's just different preferences by different people. Live with a diverse world since you are stuck with it (short of aliens coming to your rescue ... or ours).

      --
      now we need to go OSS in diesel cars
    10. Re:The code gets larger, and yet things dissapear! by Cinder6 · · Score: 1

      I'm usually pretty good at understanding differing points of view. It's just that in this case, nobody has provided what I deem a satisfactory example of how a popover doesn't accomplish the same task as a permanent status bar. Is it distracting? I could understand that, if that's the case (though I personally don't even notice it).

      --
      If you can't convince them, convict them.
    11. Re:The code gets larger, and yet things dissapear! by hldn · · Score: 1

      and most people can come up with a reason for having a preference instead of just saying it's their preference.

      --
      http://www.accountkiller.com/removal-requested
    12. Re:The code gets larger, and yet things dissapear! by marcosdumay · · Score: 1

      It pops above floats (while the status bar was out of the document area), and doesn't carry the same information once you install some of the thousands of plugins that used it.

    13. Re:The code gets larger, and yet things dissapear! by icebrain · · Score: 2

      My biggest use for the status bar is for verifying where links want to send me to (I don't allow sites to change the status text). It also helps me avoid opening blank tabs when I middle-click on links that turn out to have used javascript instead of a plain old URL (I mean, seariously, people... why the hell do you need f'ing javascript to make a simple link?) Taking that away entirely is a bad move from a security standpoint.

      Popovers are distracting and sometimes require delays to be visible. The status bar stays in one place and responds instantly.

      --
      The meek may inherit the earth, but the strong shall take the stars.
    14. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 1

      It shows you the exact address of links you pop over, to show you where it truly goes.

      Page load status, other information that was actually useful on a constant basis.

      All of these changes came about from the horrific layout of widescreen and portable devices, it's infecting everything in UI's these days.

    15. Re:The code gets larger, and yet things dissapear! by GameboyRMH · · Score: 2

      The plugins that used to display info on the status bar now show it on the addon bar instead.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    16. Re:The code gets larger, and yet things dissapear! by ceoyoyo · · Score: 4, Interesting

      The other day a coworker walked in to ask me what I use as my browser. I said Safari. He asked why not Chrome. I told him I had Chrome installed, and used it occasionally. I couldn't remember exactly why I prefer Safari, so I started both of them up. Safari was done launching in a couple of seconds, almost before I had time to click on Chrome. We continued our discussion of why I don't use Chrome while waiting for it to launch.

      Checking the .app size... Safari is 35 MB, Chrome is about a quarter of a gig.

    17. Re:The code gets larger, and yet things dissapear! by Cinder6 · · Score: 2

      What's interesting is Chrome used to be stupid fast at startup on a Mac. The dock icon wouldn't even bounce, it was so quick. But now it takes a couple bounces, even on my new Air. Safari is definitely the better choice on a Mac, but I do fall back to Chrome every now and then (sometimes I have issues streaming Nextflix in Safari, and I don't have that problem with Chrome).

      I would imagine, though, that many of the resources Safari uses are kept in other places than the .app package, because they are essential for the OS. Maybe that's (part of) why it's so much smaller than Chrome.

      --
      If you can't convince them, convict them.
    18. Re:The code gets larger, and yet things dissapear! by unrtst · · Score: 2

      Disclaimer: I haven't used the build that lacks the status bar yet, so I'm not familiar with how it looks/works.

      I can say I do want to see it all the time. I understand the steps that a browser goes through to get and render a page, and I greatly appreciate seeing what it's working on. Is it a DNS lookup, or is it transferring data (possibly a large chunk)? And also seeing the source (ex. when loading slashdot, I see the steps that are getting ads, which is often the slowest part of the transaction but, thankfully, happens after the page content has arrived and is rendering... so I know I can ignore the fact that the page hasn't finished loading if it's just getting ads now).

      I also have a complex DNS setup at home, so seeing when that is hanging helps a lot. (I forward DNS queries for several domains to one of several servers at work over multiple VPNs... they're non-standard (host.name.companyname without any .com etc), and the company consists of about 100 subsidiaries that have been bought up and barely merged over the years, and almost all of them have their own name server and/or AD system. Most users work in an office for one of the subsidiaries, so they just use that one local DNS server that's handed to them via DHCP. On the other hand, I'm a developer that works from home, so I have to use them all, and I also don't want my personal use queries hitting their servers, since this is also my personal computer).

      I dislike the way Chromes status bar works because it's too distracting. Our eyes pick up peripheral movement very very well, so that popover always grabs my eyes for an instant. It's annoying. I prefer a fixed bar, because I can then choose to look at it when I want, and the info is always readily available if I want to see it. The black text changing on a grey background does not cause as harsh of a visual change, so my eyes don't instantly pop there when it changes, and that's a good thing (IMO).

    19. Re:The code gets larger, and yet things dissapear! by PenquinCoder · · Score: 1

      There are more browsers than FF, Chrome, and IE.

    20. Re:The code gets larger, and yet things dissapear! by Rizimar · · Score: 1

      What's disappearing even faster is their user base.

    21. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 1

      the thing that i hate about the status bar is that it's implemented in a terrible way: if i try to click on a link that's in the lower left of the window, then the status bar comes up. except that mousing over the status bar makes it disappear. which leaves my mouse over the link i tried to click initially. which makes the status bar appear... the result is that the status bar flickers in and out rapidly, and i can't actually click on the link until i scroll. plus, on occasion, the whole situation occasionally causes FF to just lock up for a few seconds while it tries to sort out what the hell it's actually doing.

      i got used to the status bar, and rather liked having it there, but i understand the logic behind saying "less chrome = more better". what i don't understand is how they failed to account for this situation, and managed to release such a frustrating experience into the field. would it have been that hard to make the status bar switch sides if it would display over the link i'm activating?

    22. Re:The code gets larger, and yet things dissapear! by Fred+Or+Alive · · Score: 1

      You can switch back to an old style status bar on IE9. (Other stuff like the menu bar can be switched back on as well, should you want to replicate most of IE's traditional cluttered interface).

      Personally, the status bar thing in Firefox 4 confused me, don't like the single menu button? Switch back to a menu bar. Don't like the new tab position? Just switch it back to the old style. But want the old status bar back? No way, it's our way or the highway (well, a third party extension).

      --
      10 PRINT "LOOK AROUND YOU ";
      20 GOTO 10
    23. Re:The code gets larger, and yet things dissapear! by Gr8Apes · · Score: 1

      Safari most definitely will show a status bar.

      --
      The cesspool just got a check and balance.
    24. Re:The code gets larger, and yet things dissapear! by Gr8Apes · · Score: 1

      because popups don't occur with all sites. And the status bar is quicker, it also gives, surprisingly, status when a page is loading, without having to resort to opening up another window to see the current status.

      Additionally - the status bar, AFAIK, cannot be jacked with by JS, while the popup can. Never trust any JS driven information unquestionably.

      --
      The cesspool just got a check and balance.
    25. Re:The code gets larger, and yet things dissapear! by tibit · · Score: 1

      Safari, on OS X at least, shows progress bar as the background of the address line edit. It has no status bar, and I don't miss it. It's pointless. Knowing what the browser is doing is pretty much useless. It won't help you if you have a crappy connection. I used to think it was helpful, then I switched to a mac. It's a waste of precious screen real estate. It won't fix your connection for you. If you're tired of waiting, either hit reload or browse elsewhere. This won't depend on whatever the status bar would be showing. You don't have many options. Heck, you have two.

      --
      A successful API design takes a mixture of software design and pedagogy.
    26. Re:The code gets larger, and yet things dissapear! by bonch · · Score: 1

      Ladies and gentleman, I present to you an example of Early Onset Crotchety Syndrome (EOCS). Symptoms of EOCS include getting angry about stupid crap and ranting about things that don't matter, like having a floating toolbar instead of a permanent status bar that's empty most of the time.

      If you or someone you know suffers from EOCS, please, make them go outside for a while.

    27. Re:The code gets larger, and yet things dissapear! by DarkTempes · · Score: 1

      First, people don't like change. When they get used to things working one way and then suddenly it doesn't work according to their expectations they get upset.

      This can in fact be made an even broader generalization: people don't like when their expectations are not met.
      So they don't really need a logical reason for preferring an always-open status bar.

      And the status bar is legitimately important to some of us (but does not need to always be visible).
      Knowing what you're clicking on before you actually click it is important information. Well, assuming javascript hasn't changed the status/you have your browser set to not allow javascript to change the status.
      Knowing what your browser is doing/actively loading is also very useful information. Without a status bar I'd have to pull up something like the Firebug net panel.

    28. Re:The code gets larger, and yet things dissapear! by Robert+Zenz · · Score: 1

      So, checking it under Views-Toolbars did not work?

    29. Re:The code gets larger, and yet things dissapear! by LordLimecat · · Score: 1

      I would hazard that that might be for the same reason IE tends to have lower memory than competitors on Windows, but regardless, safari is NOT so good on windows-- the tables are pretty much reversed, with Safari-on-Win being a bloated, unresponsive beast.

    30. Re:The code gets larger, and yet things dissapear! by novakreo · · Score: 1

      What do you plan to use otherwise? Chrome does the same thing, so you're stuck with IE and Safari.

      Opera.

      --
      O frabjous day! Callooh! Callay!
    31. Re:The code gets larger, and yet things dissapear! by rapidreload · · Score: 1

      So, checking it under Views-Toolbars did not work?

      There is no native status bar toolbar anymore. There's the "Add-on bar", which addons can use if they want (such as Status-4-Evar), but without said extension the add-on bar is just a horizontal bar of nothing.

      --
      To all newcomers - people here are very close-minded and can't handle complaints about Linux. Keep this in mind.
    32. Re:The code gets larger, and yet things dissapear! by inject_hotmail.com · · Score: 1

      Personally, and I think this applies to anyone that has a real understanding of how the Internet works, I really...I mean REALLY...like status bars...because...well...it's an instant indication as to what is happening. Not so much needed when everything is running perfectly, but when something isn't right...which is more often than one might surmise is reasonable. Ok, so, to get to the heart of the matter, while a page is loading, or has loaded, if an error occurs, and you don't have a status bar, you'll never know. So, if some element, graphic, or other potentially important feature, isn't loaded, is taking a while to load/access, the status bar will declare an error or indicate the delay...and I will know instantly. I can hit refresh, or determine a course of action resulting in zero wasted time. If I don't have a status bar, and an error occurs, I'll...uhh...wait? (I haaaaate waiting)...or maybe I'll go digging through some menus somewhere to find out...what I could have know in less than 500ms. Move my eyes down, OH, there...it says...an error. Or no error. I can proceed without wasting my time. A 1/4" of persistent space lost is very, very much worth it to me.

      Moving on, combining the progress meter with the URL bar...fine, but that's not a status replacement. Progress is one element of status. A pop-up window for status? Uhhh...naw, I strongly dislike pop-ups of ALL kinds (well, there is one that has its uses, but that's another topic, don't get me distracted)...morphing status bars, those are fine...display the information I need, and that's the end of it. Thanks. Enough said, Mr. Status Bar.

      As for the progress bars prevalent in Vista/7/(OSX?) that tell the user NOTHING about how things are actually progressing...I spit on you, and cast a pox upon your houses. I hate you. You are a progress bar. Your sole purpose in life is to tell me how things are going, and when they are not. You don't do that anymore. So, why are you here? Marquee progress bar: Die! You should have been aborted before you were born for all the times us users think we are almost done a process, and WAIT, WTF IS THIS, the progress is emptying from the left...what the hell?! And now it's starting over again! (Seriously, the programmer knows what he has, where he is, and where he is going...TELL ME already! [or she...I'm not trying to be sexist here]). All you do is prove my console has not become unresponsive...THANKS, but my mouse cursor does that too...and so does my NumLock key/light. I don't need you.

      (Sorry, I don't get out that much)

    33. Re:The code gets larger, and yet things dissapear! by Anonymous Coward · · Score: 1

      I would imagine, though, that many of the resources Safari uses are kept in other places than the .app package, because they are essential for the OS. Maybe that's (part of) why it's so much smaller than Chrome.

      http://nightly.webkit.org/

      OSX 34.3MiB
      Win 34.5MiB
      only ~200KiB difference.

    34. Re:The code gets larger, and yet things dissapear! by vasi · · Score: 3, Informative

      Chrome has to ship its version of WebKit in the .app, while Safari puts its WebKit in /System . Comparing .app sizes is a rather unfair comparison.

      --
      "Hey, who took the cork off my lunch?" -- W. C. Fields
    35. Re:The code gets larger, and yet things dissapear! by chrb · · Score: 1

      Are you sure? The standalone 64-bit Chrome Linux Ubuntu/Debian .deb is only 24MB. The archive unpacks to 92MB with a 61MB chrome binary. I would be surprised if the OS/X version were so bloated that it was almost 300% bigger.

    36. Re:The code gets larger, and yet things dissapear! by Ptur · · Score: 1

      On this old and slow XP system here at work chrome starts up in mere seconds (5), so either there is something wrong with your machine, or your OS....

    37. Re:The code gets larger, and yet things dissapear! by xenobyte · · Score: 1

      The plugins that used to display info on the status bar now show it on the addon bar instead.

      So now you have the addon bar instead of the status bar if you want a place for your other addons to display their info/status... and the status information previously displayed in the status bar now pops up in addition to the addon bar... Stupid!

      Installing the status-4-evar addon fixes it and moves the status messages back onto the addon bar effectively turning it into the good old status bar. I couldn't live without it now.

      It does have an annoying bug though... If it gets disabled (like when FF changes major version but the addon author is a bit behind) the addon bar reverts to being just an addon bar without a place to put status messages (they don't revert to popping up, they just go missing) and the flexible space that kept the icons right aligned is gone as well, leaving them left aligned which looks strange and annoying.

      In order to fix it you need either to bump the max version of the status-4-evar addon (like I did) or to revert FF to the previous version in which status-4-evar worked, go into status-4-evar's settings and switch the status messages back to popup and then re-upgrade FF. You also need to re-add the flexible space because a working status-4-evar will not re-add it automatically, leaving both the icons and the status messages left aligned so the icons jump right whenever there's a status message to display, and back left when it goes away, which is completely awful.

      --
      "For every complex problem, there is a solution that is simple, neat, and wrong." -- H.L. Mencken (1880-1956) --
    38. Re:The code gets larger, and yet things dissapear! by GameboyRMH · · Score: 1

      You can use the compatibility reporter addon to force addons to work through version changes.

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    39. Re:The code gets larger, and yet things dissapear! by AmiMoJo · · Score: 1

      I would imagine, though, that many of the resources Safari uses are kept in other places than the .app package, because they are essential for the OS.

      Sounds like an anti-trust issue. Prepare for the Mac OS Browser Choice screen in a future update.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    40. Re:The code gets larger, and yet things dissapear! by NJRoadfan · · Score: 1

      Maybe it'll be back in Firefox 18, which at this rate should be out in 2 weeks.

    41. Re:The code gets larger, and yet things dissapear! by StuffMaster · · Score: 1

      Fortunately, if they do, there's Status-4-Evar to bring it back. Now if only there was a way to bring back the modal search dialog....I really hate the new search bar.

    42. Re:The code gets larger, and yet things dissapear! by ceoyoyo · · Score: 1

      Yup. Strange it's so much bigger. Maybe google just wants to keep up with Firefox in the crappiness of their OS X port.

    43. Re:The code gets larger, and yet things dissapear! by badkarmadayaccount · · Score: 1

      Ctrl+/ is too much? Frankly I'm happy for the vertical space. What I want is a more aggressive GC.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  3. interaction of two things by Trepidity · · Score: 5, Informative

    Size of the Firefox codebase is one factor of course, but the amount of RAM needed by Visual Studio to compile code with all optimizations turned on (especially PGO, which is extra RAM-intensive at the compilation stage) is also a major factor. Notice that this only happens in the 32-bit Visual Studio builds specifically.

    1. Re:interaction of two things by LanceUppercut · · Score: 3, Informative

      That's just doesn't make any sense. The amount of RAM is not a factor at all. The problem at hand is caused by the amount of _address_ _space_ required, not the amount of RAM. That's a completely different issue. I hope you understand the difference between the RAM and the address space. And the culprit is not VS or Microsoft compiler. The culprit is the rampant massive-scale global namespace pollution, which has been taking place in FF source code for quite a while. Someone was indulging recklessly in Linus-Torvalds-style coding practices. The result is perfectly logical.

    2. Re:interaction of two things by 3p1ph4ny · · Score: 4, Informative

      Sure, except that (especially in C++ code with templates) VS uses FAR less memory than the GNU toolchain when compiling the same code. This isn't a VS problem, it's a Firefox problem.

    3. Re:interaction of two things by shutdown+-p+now · · Score: 1

      Why would global namespace pollution affect the amount of memory required by the compiler, at all? Even if you stuff all your identifiers into namespaces, you still have the same number of identifiers (and then a few more for the namespaces). Same amount of code, too.

    4. Re:interaction of two things by tibit · · Score: 1

      The namespace size is irrelevant to how much virtual memory the linker needs. The Visual Studio linker needs to have address space for two things:

      1. Mapping of all the files it uses.
      2. The internal state used by the compiler backend (LTCG -- link time code generation) and the linker proper.

      With LTCG enabled, object files do not contain assembly, they contain compiler IR (intermediate representation) of the code. The stuff you get after parsing and IR optimizations, before code generation.

      If the linker bombs out on a 32 bit host, it's usually because the input files don't fit into available address space, that's all. The input files contain the IR for all of the code you're linking. They're much bigger (factor of 4 and up, in my limited experience) than the binary object files that contain "just" machine code. You have the same problem when you compile Qt with webkit. You need to use the /3g switch and keep your fingers crossed, or bite the fine bullet and do it on a 64 bit host.

      --
      A successful API design takes a mixture of software design and pedagogy.
    5. Re:interaction of two things by tibit · · Score: 3, Interesting

      Nope. It is the MS linker problem. It's not about memory usage, it's about stupidly memmapping ALL of the input files during startup. So it's very simple to check if you may have a problem: add up the size of all the .obj files. If it's above 1-1.5G or so, it won't fit as linker needs address space for its own transient data and you need to boot with the /3g switch. If it's above 2G or so, then even the /3g switch won't help you -- you need a 64 bit host.

      --
      A successful API design takes a mixture of software design and pedagogy.
    6. Re:interaction of two things by Anonymous Coward · · Score: 1

      Err... no?

      First, this isn't about compiling. It's about linking. For compiling, memory usage just doesn't matter. With GCC, each translation unit is a separate process anyway, and with MSVC, it's still only going to be compiling a few translation units at a time, and dumping the used memory when they're finished.

      The problem is linking and using whole-program optimizations, and profile-guided optimizations. That needs to load the entire program into memory all at once, and analyze it, so it can be more effectively optimized. They do this because it does improve runtime performance quite a lot.

      Second, this is very much a problem with Microsoft's toolchain.

      On Linux, Firefox is built on a 64-bit host, using a 64-bit toolchain, and producing a 32-bit binary. On Mac OS X, Firefox is built using a 64-bit host, a 64-bit toolchain, and produces a 32-bit and 64-bit fat binary. They both use link-time optimizations and profile guided optimizations and, even though GCC may use more memory than Microsoft's compiler, it still works because you have a 64-bit address space, and can just throw more RAM into the machine if you need it.

      With VS, you can't do that. There is a 32-bit and a 64-bit version of the toolchain. The 32-bit toolchain can generate either 32-bit or 64-bit code, but the 64-bit toolchain can only generate 64-bit code. So, if you want a 32-bit binary, you must use the 32-bit version of the toolchain. On a sufficiently large program, you'll run out of address space. Firefox is built on 32-bit hosts with a 3GB / 1GB user / kernel split (giving the compiler 3GB of address space), while Chrome is built on a 64-bit host, giving the compiler 4GB of address space.

      So, that is very much a problem with Microsoft's toolchain. No such problems compiling a 64-bit version on a 64-bit host, of course.

      However, VS 2010 will build Firefox just fine, even on a 32-bit host. Microsoft improved the memory usage of whole-program optimization. Firefox hasn't moved to VS 2010 because... something. I don't know. Maybe they need to target older versions of Windows than VS 2010 will allow. This might be incentive enough to upgrade the build farm to VS 2010.

      Besides, Chrome hit this limitation as well. Years ago.

      OK, so this limitation is arguably an edge case. It only affects very large programs that use PGO. Web browsers are the only things that immediately come to mind, although games are probably getting pretty close. Modern games can have main executables that are much larger than Firefox's XUL DLL. 30MB isn't unheard of. It wouldn't surprise me if game developers tried to use PGO and WPO, but found that it crashed the compiler, so turned it off again. We'd just never hear about it, because we don't have access to their internal discussions.

  4. Too big to link by Pope · · Score: 5, Funny

    Firefox devs requesting immediate RAM bailout.

    --
    It doesn't mean much now, it's built for the future.
    1. Re:Too big to link by TheGratefulNet · · Score: 5, Funny

      Occupy Swap Space, 2011!

      be there, or be nullified!

      --

      --
      "It is now safe to switch off your computer."
    2. Re:Too big to link by Khyber · · Score: 1

      That would make for a killer Reboot Episode, I think.

      Goddamnit I miss that show.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    3. Re:Too big to link by Randle_Revar · · Score: 1

      Watch out for the OOM killer

    4. Re:Too big to link by troff · · Score: 1

      There are so many concepts nowadays, which could be taught to our "oh, the poor kids, won't somebody teach them real IT concepts, we need more girls as IT students" children, through some clever presentation.

      We could Reboot or TRON so many things. I'd hoped the new TRON movie would try to be clever about things. The British SF magazine whose reviewer labelled the new movie's director as having no balls was right on the money, though - a closed system that hailed from the 1980s (and still ran, no less?). In an era with the Internet, Wi-Fi, virtual machines...

      Sigh.

  5. Re:Wow by Gothmolly · · Score: 1, Informative

    1080P video has nothing to do with the bitness of your operating system.

    --
    I want to delete my account but Slashdot doesn't allow it.
  6. Big deal by GameboyRMH · · Score: 5, Funny

    It takes 16GB to compile Android.

    --
    "When information is power, privacy is freedom" - Jah-Wren Ryel
    1. Re:Big deal by kikito · · Score: 2

      "You might as well compare apples with a car."

      Not a great analogy. Apple might release a car one day.

    2. Re:Big deal by doconnor · · Score: 1

      There is nothing unusual about an application being bigger then the operating system it runs on.

      Back in the days DOS, most non-trivial applications where bigger then the OS.

    3. Re:Big deal by eexaa · · Score: 1

      Also please compare with chromium.

    4. Re:Big deal by geminidomino · · Score: 2

      Pretty sure the Prius has the Apple-fan car market buttoned up pretty well at this point.

    5. Re:Big deal by Crudely_Indecent · · Score: 1

      It takes 16GB to compile Android

      Android is an entire system, where Firefox is a single application.

      Next thing you'll realize is that cars take up more physical space than car stereos.

      --


      "Lame" - Galaxar
    6. Re:Big deal by GameboyRMH · · Score: 4, Interesting

      Looks like they're having similar problems:

      https://code.google.com/p/chromium/issues/detail?id=21932

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    7. Re:Big deal by Anomalyst · · Score: 1

      But you would have to wear an Apple approved turtleneck in order to drive it

      --
      There is no right to feel safe thru security vaudeville at the expense of everyone's freedom, privacy and tax money.
    8. Re:Big deal by GameboyRMH · · Score: 4, Informative

      Oh, also, it looks like he was trying to say that compiling Chromium with PGO would use at least 9GB of RAM but he hit Shift too early

      --
      "When information is power, privacy is freedom" - Jah-Wren Ryel
    9. Re:Big deal by kimvette · · Score: 1
      --
      The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
    10. Re:Big deal by Cro+Magnon · · Score: 1

      That might have been true for DOS, but there's no excuse for ANYTHING to be better than Windows! Even Vista would almost run in 3GB.

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    11. Re:Big deal by Chris+Mattern · · Score: 1

      Back in the days DOS, most non-trivial applications where bigger then the OS.

      MS-DOS wasn't an operating system; it didn't have hardly any of the functions that even back then were regarded as basic to an OS. MS-DOS was a program loader strapped to a command interpreter.

    12. Re:Big deal by Cro+Magnon · · Score: 2

      Argh, I meant BIGGER than Windows!

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    13. Re:Big deal by Chris+Mattern · · Score: 1

      Oh, and a crappy file system. You got that too.

    14. Re:Big deal by Derek+Pomery · · Score: 2

      Specifically, GameboyRMH here is referring to comment #10
      https://code.google.com/p/chromium/issues/detail?id=21932#c10

      --
      -- perl -e'print pack"H*","6e656d6f406d38792e6f7267"' /. ate my old sig. Bastards.
    15. Re:Big deal by Aighearach · · Score: 1

      I switched to linux when Win3.11+win32s extensions quit being able to run common software. About `98. Most commercial games were much bigger than windows then, and things like autocad and photoshop were too.

    16. Re:Big deal by ceoyoyo · · Score: 1

      Hm. So the browser runs under the OS, and the web app runs under the browser... we're screwed.

    17. Re:Big deal by BitZtream · · Score: 1

      No, not all Apple users are flaming fags.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    18. Re:Big deal by VisceralLogic · · Score: 1

      Pretty sure the Prius has the Apple-fan car market buttoned up pretty well at this point.

      No, because a lot of us Mac users appreciate aesthetics.

      --
      Stop! Dremel time!
    19. Re:Big deal by atisss · · Score: 1

      And the OS runs as webapp http://bellard.org/jslinux/

  7. Re:Wow by MacTO · · Score: 3, Insightful

    Some of us actually think that using a web browser is more important than compiling a web browser.

    Seriously. My resource usage rarely goes about 1 GB with multiple applications open. These days, the hard drive is a far bigger bottle neck than RAM. Well, unless you're compiling Firefox it appears.

  8. VS 2005? by Anonymous Coward · · Score: 1

    You're two major versions behind, that's the problem.

    It would build just fine in 2010.

    1. Re:VS 2005? by Tridus · · Score: 5, Insightful

      Seems ironic that the FF team is using stuff from seven years and two major versions ago while at the same time bemoaning that anybody might want to keep a version of Firefox for more then 6 weeks - especially enterprise users.

      Interesting how they don't practice what they preach.

      --
      -- "So they told me that using the download page to download something was not something they anticipated." - Bill Gates
    2. Re:VS 2005? by luserSPAZ · · Score: 2

      Nope, the issue is still present in Visual C++ 2010. We're planning on switching to that soon, but we either have to work around its lack of support for Windows 2000 / Windows XP pre-SP2, or declare those platforms (and a few million users) unsupported.

    3. Re:VS 2005? by ledow · · Score: 2

      What, exactly, would be wrong with just using gcc for all platforms, like an awful lot of projects do? What's VC++ doing for Firefox that can't be done any other way?

    4. Re:VS 2005? by pz · · Score: 4, Interesting

      I can't speak to Firefox specifically, but in my hands, for my project, VC++ produces code that is VASTLY superior to gcc. With gcc, I can often get significant speedup by hand-optimizing code; with VC++, my bog-simple code gets automatically optimized better than my most aggressive manual efforts. Like it or not, Microsoft has the currently best compiler.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    5. Re:VS 2005? by jlebar · · Score: 5, Informative

      Point taken.

      But FYI: We use VS2005 because it's the last version whose CRT supports Windows XP before SP2 and Windows 2000.

      We would love to upgrade, and are in fact devoting a lot of engineering time towards figuring out if we can upgrade while maintaining compatibility.

    6. Re:VS 2005? by Bacon+Bits · · Score: 1
      --
      The road to tyranny has always been paved with claims of necessity.
    7. Re:VS 2005? by trwww · · Score: 1

      Wild guess, but its probably because FF is built on the mozilla framework, which is used by at least several popular apps. For example I also use Mozilla Thunderbird and ActiveState Komodo every day.

    8. Re:VS 2005? by Nethemas+the+Great · · Score: 1

      Well in all fairness VS 2010 is next to worthless for C++ development due to the absent Intellisense--it didn't fit within the release schedule. So really they're only behind by one major version. Either way, regardless of which version of VS they use they'll still be dealing with a 4GB wall since Microsoft has never released a 64bit version. I don't think the Firefox team has much choice but to restructure their projects because they simply cannot move the goalposts far enough down field.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    9. Re:VS 2005? by ledow · · Score: 3, Interesting

      Then I find that more worrying than anything. The firefox code is literally so bad that not only do they have to do profile-guided optimisation but must have an optimal compiler with all the options turned up in order to get it to run like the stunned sloth that it does on my systems?

      It just reeks of horrendous code. Makes me wonder what the hell all those other large open-source projects are doing that's so much better than the Firefox code that they can outperform it using "only" the sub-optimal gcc.

    10. Re:VS 2005? by DigitAl56K · · Score: 4, Informative

      One of the biggest problems with newer versions is the runtimes using EncodePointer/DecodePointer, which aren't available pre-SP2.

      Try this:
      * Install VS2010
      * In your project configuration(s), under Configuration Properties->General, set "Platform Toolset" to "v90".

      I can use this configuration with VS2010 and the latest Windows SDK and get binaries that work on XP pre-SP2.

    11. Re:VS 2005? by Anonymous Coward · · Score: 1

      Except Microsoft already stopped supporting Windows 2000 and XP SP2 and all versions of XP will stop being supported in 2014.

      It's nice to support your product on deprecated platforms, but at some point, you have to cut your losses and a platform that is no longer supported by its owner seems a reasonable cut off.

    12. Re:VS 2005? by igomaniac · · Score: 1

      Are you dumb? ... You're using the VS2010 IDE to run the _exact same_ linker they are having problems with. How does that solve anything?

      --

      The interactive way to Go -- http://www.playgo.to/iwtg/en/
    13. Re:VS 2005? by DigitAl56K · · Score: 1

      Are you dumb? ... You're using the VS2010 IDE to run the _exact same_ linker they are having problems with. How does that solve anything?

      It doesn't solve their linker issue. It potentially helps them work around a nasty CRT compatibility issue, which is the part of the thread I replied to.

      No need to be so condescending ;)

    14. Re:VS 2005? by igomaniac · · Score: 1

      Why can't you use the 64-bit toolchain from VS2005 to produce 32-bit binaries?

      --

      The interactive way to Go -- http://www.playgo.to/iwtg/en/
    15. Re:VS 2005? by DeathFromSomewhere · · Score: 1

      Ummm what? I use VS 2010 fairly regularly for C++ development and intellisense is very much working. 64 bit versions of the compiler and linker do exist, they just can't target 32 bit.

      --
      -1 overrated isn't the same thing as "I disagree".
    16. Re:VS 2005? by jlebar · · Score: 3, Informative

      I think what he was trying to say -- in the meanest possible way -- is that the setting you chose tells VS to use the old compiler and linker. It doesn't switch out the CRT -- it switches out the whole toolchain. So using that setting is no different from where we are now, afaik.

    17. Re:VS 2005? by jlebar · · Score: 1

      Because the 64-bit toolchain does not support producing 32-bit binaries. It is not a cross-compiler.

    18. Re:VS 2005? by Nethemas+the+Great · · Score: 1

      Sorry forgot the propensity for pedanticism... Intellisense for "managed" C++ and an x86-64 cross-compiler for x86-32.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    19. Re:VS 2005? by igomaniac · · Score: 1

      You might want to look into the /Machine:X86 option to the 64-bit linker...

      --

      The interactive way to Go -- http://www.playgo.to/iwtg/en/
    20. Re:VS 2005? by ceoyoyo · · Score: 2

      Ah, that's why Firefox is so slow but everyone insists it's not that bad. They're all Windows users!

    21. Re:VS 2005? by Bacon+Bits · · Score: 1

      What does an article about memory usage comparisons between FF and Google Chrome have to do with performance metrics of just Firefox running on Windows, Linux, and WINE under Linux?

      --
      The road to tyranny has always been paved with claims of necessity.
    22. Re:VS 2005? by BitZtream · · Score: 1

      Bullshit.

      Learn to use the linker. Link against the proper base import libraries and not the VS specific import libraries, you'll also stop making it such a fucking pain in the ass to link anything else with your code since you're forcing anyone else to also depend on a specific version of the runtime libraries.

      Link to MSVCRT.lib, NOT msvcrt80.lib, problem solved.

      You'd think for an organization that blows through like a 100 million dollars a year you'd have one developer with a clue on staff, but hey, its Netscape all over again isn't it?

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    23. Re:VS 2005? by BitZtream · · Score: 1

      Intel has the best compiler, but its SO insane about optimizations that it ends up out of ordering things to the point that weird hard to understand bugs pop up out of the blue in your code if you switch to Intel's compiler from else where.

      With that said, MS is the best one for general use for the exact reasons you stated, couldn't agree more.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    24. Re:VS 2005? by jlebar · · Score: 1

      According to http://msdn.microsoft.com/en-us/library/x4d2c09s(v=VS.100).aspx , there's no x64 --> x86 cross-compiler.

      I have no idea what happens if I pass /MACHINE:X86, but I imagine it just invokes the 32-bit binary. If you can show that's not true, I know a large number of people who would give you a hug.

    25. Re:VS 2005? by RogerWilco · · Score: 1

      He he he. I was surprised about your second link, where Windows-Firefox on Wine outperforms Linux-Firefox, probably due to the better compiler. Nice test to think of.

      --
      RogerWilco the Adventurous Janitor
    26. Re:VS 2005? by jlebar · · Score: 1

      We binary patch the CRT in order to insert our own memory allocator. This complicates things greatly.

      But if you have a clue that we don't, we gladly accept patches.

    27. Re:VS 2005? by luserSPAZ · · Score: 1

      Uh, what? Visual C++ produces better optimized code than GCC in almost all cases, especially when you toss PGO into the mix. Firefox runs just fine on most people's systems. There are plenty of pathological cases on people's systems that make it perform poorly: poorly-written extensions, poorly-written antivirus software that hooks into our process, horrible disk fragmentation, etc. The list goes on and on, we've seen all of these things in bug reports from users experiencing poor performance. If you're experiencing poor performance, I'd encourage you to file a bug (you can even link the bug here, and we can take a look). Unless you're running on some ancient hardware it's possible there's a reasonable explanation for your situation that has nothing to do with the compiler we're using.

      Your last statement reads like a non-sequitur. What other large open-source project that's comparable to Firefox is producing Windows binaries with GCC that you can compare performance? Unless it's a web browser, comparing performance is like comparing apples and moon rocks.

    28. Re:VS 2005? by jlebar · · Score: 1

      Someone tried this (where test.obj is compiled with 32-bit cl.exe, since there's no 64 --> 32 cl.exe). Here's what we got:

      $ link -MACHINE:X86 -LTCG -OUT:test.exe test.obj
      Microsoft (R) Incremental Linker Version 9.00.30729.01
      Copyright (C) Microsoft Corporation. All rights reserved.

      fatal error C1905: Front end and back end not compatible (must target same proce
      ssor).
      LINK : fatal error LNK1257: code generation failed

    29. Re:VS 2005? by maestroX · · Score: 1

      Try this:

      excellent :-)
      You also might consider using Cygwin.
      *ducks*

    30. Re:VS 2005? by luserSPAZ · · Score: 1

      I really wanted this to work, but it doesn't actually work in combination with PGO:

      (with the VC2008 32-bit compiler)
      $ cl -GL -Fotest.obj -c test.cpp
      Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
      Copyright (C) Microsoft Corporation. All rights reserved.

      test.cpp

      (with the VC2008 64-bit linker)
      $ link -MACHINE:X86 -LTCG -OUT:test.exe test.obj
      Microsoft (R) Incremental Linker Version 9.00.30729.01
      Copyright (C) Microsoft Corporation. All rights reserved.

      fatal error C1905: Front end and back end not compatible (must target same proce
      ssor).
      LINK : fatal error LNK1257: code generation failed

    31. Re:VS 2005? by luserSPAZ · · Score: 1

      We've looked into this, but the potential for incompatibilities between the CRT headers and the implementation is worrisome. It also hasn't been a real priority to this point because it wasn't a big deal to ship the VC8 CRT alongside Firefox. (And, in fact, until recently, it was pretty necessary because we were building a custom CRT from source so we could patch it to replace the default malloc.)

    32. Re:VS 2005? by snemarch · · Score: 1

      You can do it with relatively few modifications to the CRT source (stuff like leaving out Encode/DecodePointer), there's some hints at stack overflow.

      For Windows 2000 support, you'll need to manually hack ImageVersion flags in the PE, since for some fscktarded reason LINK.EXE refuses to set low enough versions.

      --
      Coffee-driven development.
    33. Re:VS 2005? by snemarch · · Score: 1

      VS2010 has fine intellisense for C++, it just doesn't have for C++/CLI. And while there aren't a 64bit DEVENV, the x64 compiler is a 64bit image. It cannot generate 32bit code, though, only x64.

      --
      Coffee-driven development.
    34. Re:VS 2005? by snemarch · · Score: 1

      Apart from not solving the problem :), doesn't it require having both VS2010 as well as the older VS installed?

      --
      Coffee-driven development.
    35. Re:VS 2005? by snemarch · · Score: 1

      Binary patch the CRT? Why don't you just recompile it from source?

      --
      Coffee-driven development.
    36. Re:VS 2005? by shutdown+-p+now · · Score: 1

      Because 64-bit toolchain in VS2005 can only generate code targeting amd64 and IA64. There's no 64-to-32 cross-compiler (there is only a 32-to-64 one).

    37. Re:VS 2005? by shutdown+-p+now · · Score: 1

      Well in all fairness VS 2010 is next to worthless for C++ development due to the absent Intellisense--it didn't fit within the release schedule.

      You are considerably confused - VS2010 does have C++ Intellisense; indeed, it was the best in any C++ IDE on the date of release (suffice it to say that it can do code completion on polymorphic Boost lambdas).

      What it doesn't have is C++/CLI code completion. And, indeed, it doesn't have it precisely because it had Intellisense engine rewritten from scratch to fully support all C++ constructs, no matter how convoluted - and they couldn't squeeze C++/CLI support in their release schedule.

      Of course, Firefox is not written in C++/CLI.

    38. Re:VS 2005? by Larry_Dillon · · Score: 1

      > VC++ produces code that is VASTLY superior to gcc

      I thought developers produced code and compilers produced binaries?

      --
      Competition Good, Monopoly Bad.
    39. Re:VS 2005? by pz · · Score: 1

      Source and machine. Both are code.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    40. Re:VS 2005? by alexo · · Score: 1

      Well in all fairness VS 2010 is next to worthless for C++ development due to the absent Intellisense--it didn't fit within the release schedule. So really they're only behind by one major version. Either way, regardless of which version of VS they use they'll still be dealing with a 4GB wall since Microsoft has never released a 64bit version. I don't think the Firefox team has much choice but to restructure their projects because they simply cannot move the goalposts far enough down field.

      Two words for you: Visual Assist.

    41. Re:VS 2005? by jlebar · · Score: 1

      Yeah. It's complicated for us because we do binary hacks on the CRT in order to install our custom allocator, jemalloc, and because MS stopped distributing the build system for the new CRT. But we're working on exactly the suggestions in that SO post.

    42. Re:VS 2005? by jlebar · · Score: 1

      Because MS stopped providing the build system for the CRT sources. :-/

      You'd think that we'd just figure out how to rebuild it ourselves, since we have the old build system. I don't know why we didn't, but that stuff is so ugly, I really don't want to find out. :)

    43. Re:VS 2005? by badkarmadayaccount · · Score: 1

      Is GCC Win32 code that suboptimal? Can it be fixed? Could someone please educate me?

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    44. Re:VS 2005? by Nethemas+the+Great · · Score: 1

      You'd force yourself out of the Visual Studio tool chain which carries with it a significant amount of extra work. If you don't mind or perhaps you just want to run Eclipse with a C/C++ plugin, or some other solution with both compile and debug support go for it. However, you really won't find anyone using a win32 port of gcc for serious work. The hassles and other negatives involved out weigh any conceivable benefit. If you're allergic to Visual Studio you could go with C++ Builder from Embarcadero (formerly Borland).

      --
      Two of my imaginary friends reproduced once ... with negative results.
    45. Re:VS 2005? by badkarmadayaccount · · Score: 1

      Could you be more specific on the hassles and negatives?

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    46. Re:VS 2005? by Nethemas+the+Great · · Score: 1

      Visual C++ is not 100% the same as ANSI C++, syntax highlighting, as well as code validation and navigation will be for the former. This has the potential to be a point of irritation.

      You will lose integrated debugging and be forced to use a GDB derivative or compatible. If you're from the camp that sees value in it, this also means among other things no more "edit and continue".

      You will be forced to manage your own make files. Third party utilities can simplify this but it will involve more effort.

      Builds will now have to be launched via command line or by third party tool.

      I'm sure if I took more time to think about it I'd be able to come up with a healthy dose of others but suffice it to say, The majority of what sets Visual Studio apart from a glorified text editor with C++ syntax highlighting (think TextPad or Emacs) is lost. If you really want to do Windows development with the GNU toolset then you would be well advised to ditch Visual Studio and use Eclipse with the C++ plugin which is actually capable of leveraging the toolset. It's free and open-source, with quality and capabilities easily competing with the top commercial tools for the platform. If you're itching to spend money and the GNU toolset isn't important then go with C++ Builder.

      I'm assuming you're craving minimal hassle cross-platform (Windows, Linux, etc.) build capabilities and that's why you want to use GCC and such but still do your dev work in Windows. Usually people go the other way around and use their *NIX environment for their cross-platform dev work. To each their own I guess... Either way you'd do well with Eclipse over VS.

      --
      Two of my imaginary friends reproduced once ... with negative results.
  9. Re:Wow by mark-t · · Score: 1

    Adobe Acrobat still has no port for 64-bit Linux. At the rate things are going, I'm becoming skeptical they ever will.

    And while I know there are plenty of other PDF readers out there, there aren't any other than Acrobat that support layers that can be turned on or off at runtime (which have been supported by Adobe Acrobat since, I believe, v6 or so).

  10. Re:Obligatory by icebones · · Score: 1

    640k? don't you mean 64k? A C64 should be enough machine for everyone

    --
    Life is pain. Anyone who says differently is selling something.
  11. Time to move on, perhaps? by pla · · Score: 2, Insightful

    The long term solution is to build the 32-bit binaries on a 64-bit system.

    No, the long-term solution involves freezing the 32-bit version as an eternal final-state "stable" branch, and moving on to the 64-bit world.

    Yes, most people still run 32-bit hardware. And yes, most likely someone would maintain 32-bit backports of FireFox for years to come. But the Mozilla foundation needs to direct their efforts on the reality of the present, not cripple themselves in the interests of backward compatibility.

    FWIW, I write this as someone who would primarily use that 32-bit backport at the moment. But I don't expect Mozilla to support my aging XP boxen any more than I expect them to support the Timex Sinclair 1000 or Atari ST I have stashed in the bottom of a closet somewhere.

    1. Re:Time to move on, perhaps? by Anonymous Coward · · Score: 1

      I'm pretty sure no one actually uses a 64bit browser on their 64bit Windows OS.

    2. Re:Time to move on, perhaps? by Ephemeriis · · Score: 2

      Yes, most people still run 32-bit hardware.

      Pretty much anything purchased in the last few years is going to be 64-bit capable.

      If you're running 32-bit, it probably isn't the hardware holding you back. It's probably your software.

      I'm still having to reload machines with 32-bit Windows XP because we've got software that won't support anything else.

      --
      "Work is the curse of the drinking classes." -Oscar Wilde
    3. Re:Time to move on, perhaps? by ampathee · · Score: 2

      If "most people still run 32-bit hardware", then surely the "reality of the present" is that 32-bit builds are needed.

      If Mozilla abandons 32-bit builds, then whoever eventually steps up to maintain these unofficial 32-bit builds will have the same problem. And all the 32-bit users who go to getfirefox.com will get turned away to some random 3rd party site? I'm sure that will help firefox's popularity.

      As you say yourself, 32-bit Windows is far from obsolete. So it would be pretty retarded to just abandon the platform because of a build issue.

    4. Re:Time to move on, perhaps? by jlebar · · Score: 4, Informative

      No, the long-term solution involves freezing the 32-bit version as an eternal final-state "stable" branch, and moving on to the 64-bit world.

      Um.

      Some 90% of our users are on 32-bit Windows. Just because *you're* not one of them doesn't mean that they don't matter.

      It's nice that you don't expect us to support your aging XP boxes, but I think you'd find you're the minority in this respect.

      (Also, all phones are 32-bit, and will be for at least the next few years.)

    5. Re:Time to move on, perhaps? by NixieBunny · · Score: 1

      But 32 bit XP computers are the most prevalent type, or nearly so, among the non-developer set. I have four of them at home and one at the office.

      --
      The determined Real Programmer can write Fortran programs in any language.
    6. Re:Time to move on, perhaps? by X0563511 · · Score: 1

      This is during compilation. Meaning, a 32-bit machine can no longer compile it. A 64-bit machine can produce a working 32-bit build just fine.

      It's the build environment, not the project itself.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    7. Re:Time to move on, perhaps? by arkane1234 · · Score: 1

      Great, that eliminates ~40.9% of the internet. How about the rest?

      --
      -- This space for lease, low setup fee, inquire within!
    8. Re:Time to move on, perhaps? by petermgreen · · Score: 1

      At least with a 32-bit browser it crashes when it runs out of address space rather than sending the whole machine into swap-death.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    9. Re:Time to move on, perhaps? by pclminion · · Score: 2, Insightful

      No, the long-term solution involves freezing the 32-bit version as an eternal final-state "stable" branch, and moving on to the 64-bit world.

      Hahaha! Uh, no.

      1. The MSVC compiler is a 32-bit program. Sure, it can compile 64-bit code, but it is itself 32-bit, so using a 64-bit OS doesn't even help you. cl.exe is a 32-bit process. Always.

      2. All of Windows is compiled with that compiler. ALL OF WINDOWS. That means there is NOTHING in Windows that requires this much VM in order to build. So Firefox is more bloated than ANY component within Windows.

      Seriously, anybody with the slightest clue about how software works should realize that this is the symptom of some incredibly deep-rooted problems within the architecture of Firefox.

    10. Re:Time to move on, perhaps? by plover · · Score: 5, Informative

      No, you missed a fact.
      Visual Studio 2005 is a 32-bit app on any Windows platform.
      Visual Studio 2010 is a 32-bit app when running on a 32-bit platform.
      Mozilla builds on 32-bit platforms can no longer support the PGO linker.

      Visual Studio 2010 is a 64-bit app on a 64-bit platform.
      Mozilla builds on 64-bit platforms can PGO link just fine.
      When Visual Studio 64-bit compiles a 32-bit app, that app can run only on XP SP2 or later.
      Mozilla has millions of users on pre-XP SP2 platforms.

      So Mozilla has a choice: change nothing but stop PGO linking the 32-bit versions (sub-optimum for 32-bit users), go forward on a 64-bit only path and disenfranchise the old users from getting any new functions, abandon them completely (which is irresponsible in terms of security), cut back on new features for all, or take an axe to the existing code. Only one is an easy choice.

      --
      John
    11. Re:Time to move on, perhaps? by peppepz · · Score: 3, Informative

      Or of Google Chrome, which hits exactly the very same problem.

    12. Re:Time to move on, perhaps? by Bios_Hakr · · Score: 1

      If you are a Mozilla guy (you say *our* users), is there an official 64 bit version for Windows? Linux?

      --
      I'd rather you do it wrong, than for me to have to do it at all.
    13. Re:Time to move on, perhaps? by compro01 · · Score: 2

      Atom processors are 32-bit... and they are netbooks, mostly.

      Netbook Atoms have been 64-bit since late 2008. Everything except the original diamondville single core does 64-bit.

      The only current atoms that don't do 64-bit are the ultra-low-power Z series, which are for UMPCs and tablets.

      --
      upon the advice of my lawyer, i have no sig at this time
    14. Re:Time to move on, perhaps? by DamnStupidElf · · Score: 1

      Everything but the Z line and the N2xx series Atoms are 64-bit.

    15. Re:Time to move on, perhaps? by dreemernj · · Score: 3, Insightful

      Possibly not. But part of the reason is that it is not possible to set 64-bit IE9 as the default browser on Windows Vista or 7.

      That, and no official releases of 64bit Firefox, Chrome, (Safari?) or Opera for Windows. So it's really a team effort to keep 64bit browsing off Windows.

      --
      1 (short ton / firkin) = 89.1432354 slugs / keg
    16. Re:Time to move on, perhaps? by Mashiki · · Score: 2

      That's 90% of your users. Though steam says that nearly 45% of their users are using a 64bit OS, and it's increasing at a rate of 1% a month.

      --
      Om, nomnomnom...
    17. Re:Time to move on, perhaps? by X0563511 · · Score: 2

      Special.

      Third choice: not using a broken toolchain.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    18. Re:Time to move on, perhaps? by jlebar · · Score: 5, Informative

      I am a Mozilla guy.

      There's an official 64-bit version for Linux. We've been shipping that since before I can remember. There are also nightly builds for 64-bit Windows, but we're not shipping these even as Aurora at the moment.

      64-bit Linux isn't listed on most of our download pages. I'd argue it should be there, but I'm not in charge. :)

      Anyway, here are links to get all the builds we produce:

      Nightly builds: http://nightly.mozilla.org/ (has win-64 builds)
      Aurora builds: http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/
      Beta builds: http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/9.0b6-candidates/build1/ (I don't know the directory for the latest beta build, unfortunately, so you'll have to update this URL each time you go looking.)
      Release builds: http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest/

    19. Re:Time to move on, perhaps? by FreelanceWizard · · Score: 1

      While I would agree that this is a sign of something curious in Firefox's code, http://msdn.microsoft.com/en-us/library/x4d2c09s(v=VS.100).aspx would seem to disagree with you on the MSVC compiler. In at least VS 2010, there's a x64 native versions of cl.exe.

      --
      The Freelance Wizard
    20. Re:Time to move on, perhaps? by caseih · · Score: 3, Insightful

      If you say so, but if MS used PGO for things like MS Office, IE, or even the windows explorer shell I'm sure they'd quickly run out of RAM as well.

      So no, Firefox is not more bloated than "*ANY* component within Windows."

      Seriously, anyone with the "slightest clue" about what the article is talking about would understand that this issue is not about "deep-rooted problems" in Firefox. And as the other poster mentions, MS knows about this problem and now has 64-bit binaries of the compiler and linker now so this is less a problem. However it only addresses the issue for 64-bit apps; the 64-bit binaries don't appear capable of compiling and linking 32-bit apps, if I read this correctly.

    21. Re:Time to move on, perhaps? by spongman · · Score: 3, Informative

      The MSVC compiler is a 32-bit program

      NO:

      C:\vs10\VC\bin\amd64>link /dump /headers link.exe
      Microsoft (R) COFF/PE Dumper Version 10.00.40219.01
      Copyright (C) Microsoft Corporation. All rights reserved.

      Dump of file link.exe

      PE signature found

      File Type: EXECUTABLE IMAGE

      FILE HEADER VALUES
                              8664 machine (x64)

    22. Re:Time to move on, perhaps? by KiloByte · · Score: 1

      A majority of devices bought today use ARM, and there are no 64 bit ARM machines in production. And due to limited memory, phones and tablets are where heavy optimizations are needed the most.

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    23. Re:Time to move on, perhaps? by KiloByte · · Score: 1

      No, this just means Windows is compiled with crappy optimizations. You can build Firefox in the conventional one unit at a time mode just as well.

      Seriously, anyone who modded you up has none of that slightest clue you're talking about.

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    24. Re:Time to move on, perhaps? by BitZtream · · Score: 1

      What?

      My father in laws machine Dell came that way from the factory, which confused the hell out of me as to why Flash just refused to work on his machine until I was sitting in front of it and noticed it was 64 bit.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    25. Re:Time to move on, perhaps? by BitZtream · · Score: 1

      VisualStudio != MS C++ compiler.

      They are two different applications.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    26. Re:Time to move on, perhaps? by blackraven14250 · · Score: 1

      Steam users are more likely to be running a 64 bit OS because they're gamers, and actually care about what hardware they're using.

    27. Re:Time to move on, perhaps? by plover · · Score: 1

      Dang, you're absolutely right. It's still a 32 bit toolchain that's emitting 64 bit binaries.

      So the thing I got wrong above should have been:
      When Visual Studio 2010 (regardless of platform) compiles & links a 32-bit app, the binaries are compatible only with XP SP2 or later.
      Correct?

      --
      John
    28. Re:Time to move on, perhaps? by Mashiki · · Score: 1

      Any hardware made in the last 4 years is x64 capable. So that leaves it right down to the OS, and what another person said already. That the current 32bit build should be maintained as is, and a new solid 64branch should be where the main resources are going.

      --
      Om, nomnomnom...
    29. Re:Time to move on, perhaps? by shutdown+-p+now · · Score: 1

      When Visual Studio 64-bit compiles a 32-bit app, that app can run only on XP SP2 or later.

      I believe that would only be the case if the used the runtime library from VS2010. It should be possible to use the 64-bit compiler from VS2010, but explicitly tell it to link the runtime from VS2005.

    30. Re:Time to move on, perhaps? by shutdown+-p+now · · Score: 1

      The MSVC compiler is a 32-bit program. Sure, it can compile 64-bit code, but it is itself 32-bit, so using a 64-bit OS doesn't even help you. cl.exe is a 32-bit process. Always.

      You are simply wrong. As of VS2010, there is a native 64-bit compiler binary (it's the one in VC\bin\amd64 in VS folder). One can trivially verify that it is indeed 64-bit by running it with "-?" and looking at the process in Task Manager - it doesn't have *32 added to the name. Ditto for linker, make and other tools.

    31. Re:Time to move on, perhaps? by msobkow · · Score: 1

      Mozilla has millions of users on pre-XP SP2 platforms

      If there really are people out there running Pre-XP SP2 systems at home or in production, they clearly don't give a damn about performance and usability for the people stuck using such old crap. I would never dream of running anything less than XP-SP3, and even that is old enough that I woudn't expect a vendor to be releasing their latest and greatest software for such an old machine!

      It may be a big user base, but I'm betting the majority of such people are using locked-down corporate images that won't let them install the latest builds of Firefox whenever they want to anyhow, so the loss of being at the forefront of the build queue priorities will not affect that community significantly.

      Anyone running anything older than XP-SP2 is either a dedicated hobbyist or a criminally negligent system administrator. Even if they mean SP2c, that was released in 2007 -- surely any environment where the sys admin has not rolled out an update in 4 YEARS is criminally negligent and not giving a damn about Firefox performance.

      --
      I do not fail; I succeed at finding out what does not work.
    32. Re:Time to move on, perhaps? by snemarch · · Score: 1

      IMHO there's no reason that the browser itself needs to be compiled for x64 - I don't care about the silly purist arguments. Theoretically you can get some speedups for x64, but in the case of a browser you aren't going to take advantage of added x64 stuff... sure, you get more registers, but you also suffer from pointers doubling in size... and there's a lot of pointers involved in DOM and JavaScript.

      Also, I don't see much point in the larger address space for browsers - "4GB should be enough", especially on a browser that uses process isolation for tabs.

      --
      Coffee-driven development.
    33. Re:Time to move on, perhaps? by snemarch · · Score: 1

      It's a 32bit IDE, with a 32bit toolchain for producing 32bit executables, and a 64bit toolchain for 64bit executables :) There's two parts to OS compatibility: 1) the CRT using some fancy new imports for security reasons, 2) setting OS version image fields, and refusing to set lower version numbers. Both can be overcome.

      --
      Coffee-driven development.
    34. Re:Time to move on, perhaps? by snemarch · · Score: 1

      Not sure that would work, but Visual Studio ships with the CRT source code... so you can just rebuild a CRT that doesn't depend on the imports not available on previous Windows versions.

      --
      Coffee-driven development.
    35. Re:Time to move on, perhaps? by gnu-sucks · · Score: 1

      Couldn't they just compile the 32 bit version with gcc on windows, and accept that it may not be quite as optimally built?

    36. Re:Time to move on, perhaps? by atisss · · Score: 1

      And majority of ARM are not ARMv7 or higher, so they still don't run Firefox

    37. Re:Time to move on, perhaps? by atisss · · Score: 1

      use ulimit before starting firefox :p

    38. Re:Time to move on, perhaps? by atisss · · Score: 1

      So which was the first? Windows or That compiler?

    39. Re:Time to move on, perhaps? by jlebar · · Score: 1

      The 64-bit ARM architecture is ARMv8, which does not exist in any chip at the moment that I'm aware of.

      http://stackoverflow.com/questions/1308500/is-iphone-os-64-bit-or-32-bit
      http://en.wikipedia.org/wiki/ARMv8#ARM_cores

    40. Re:Time to move on, perhaps? by jlebar · · Score: 1

      VS2010 ships with the CRT source but not the build system.

      I haven't looked at this, but the build system is apparently Very Difficult to recreate.

    41. Re:Time to move on, perhaps? by toddestan · · Score: 1

      Actually, if anything that's a feature. However, there is now a 64-bit Java plug-in so you can potentially get pwn3d that way.

    42. Re:Time to move on, perhaps? by toddestan · · Score: 1

      What about Intel's compiler?

    43. Re:Time to move on, perhaps? by blackraven14250 · · Score: 1

      x64 capable hardware doesn't mean PC manufacturers are all shipping only x64 configurations for the past 4 years. You have to consider that regular, everyday users don't upgrade the way people in tech-related industries do, so expect people with XP to still be all over the place - and they use 32 bit versions nearly exclusively. While dropping 32 bit support is something that lots of places are going to start considering in a year or two, it's not going to happen just yet, when XP has over 30% market share.

    44. Re:Time to move on, perhaps? by Acaeris · · Score: 1

      And?...

      Of course Steam is going to have lots of 64 bit OS users. Lots of gamers will have/be upgrading to an i5 or i7 at the moment to make the most out of CPU intensive games and no matter whether you build it yourself or buy prebuilt, you'd want Win 7 64bit so you can make the most of that processor and the 8Gb of RAM you put in (because what's another £15 on the price).

      Most Firefox users on the other hand probably don't play games on a PC outside of browser based games or solataire, or are using a netbook, or are using their PC at work where IT have probably bought the cheapest thing available from HP at the time of the last upgrade.

    45. Re:Time to move on, perhaps? by cbhacking · · Score: 1

      Got any alternatives you'd like to suggest?

      Most other toolchains don't even offer PGO. Even without PGO, binaries compiled with MSVC outperform binaries compiled with GCC (on Windows, of course, that being what MSVC typically targets). PGO is part of what keeps Firefox competitive, speed-wise, on Windows. Chrome has apparently already abandoned it, but they are built ona faster base to begine with.

      --
      There's no place I could be, since I've found Serenity...
    46. Re:Time to move on, perhaps? by snemarch · · Score: 1

      Hm, I haven't built the VS2010 CRT source, but it wasn't a problem with VS2005 or VS2008. The only thing I found a bit peculiar was that a few things (related to exception handling mostly, iirc) was only available in .obj form, no sources... but that didn't make building it problematic.

      --
      Coffee-driven development.
    47. Re:Time to move on, perhaps? by tzot · · Score: 1

      Different user groups. As an example: lots of grand parents browse the internet; not many of them need beastly machines with lots of RAM to run 3D games. So, what's your point?

      --
      I speak England very best
    48. Re:Time to move on, perhaps? by UpnAtom · · Score: 1

      64-bit Opera for Windows and OSX came out today.

    49. Re:Time to move on, perhaps? by Mashiki · · Score: 1

      I guess my grandmother who runs 3d games mostly puzzles and all that and uses steam doesn't apply? Oh wait...

      --
      Om, nomnomnom...
    50. Re:Time to move on, perhaps? by tzot · · Score: 1

      Of course she applies in my example, don't pretend to be stupid; she's but one point in the statistics (you need to understand that "not many of them" does *neither* mean "absolutely no grandparent needs a beastly machine" *nor* "absolutely no grandparent runs Steam", so your answer is kind of useless in the discussion).

      Unless you really suggest that grandparents that *use Steam* on *non-beastly machines* is a *significant* portion of Steam users? And, to get back to your previous post, do you really suggest that the intersection of the set A="people running the firefox web browser" and set B="people running Steam" is a *significant subset of A* in order to validate your point? Is that your point?

      --
      I speak England very best
  12. Last paragraph in the TFA is... confusing by HellKnite · · Score: 3, Insightful

    "First tests indicate that, for example, moving parts of the WebGL implementation to one side could save 300 KB. In a test run, the newer version of Visual Studio required less memory than the one that was previously used, and 64-bit Windows offers 4 GB of address space."

    So, first of all, saving 300KB on WebGL seems like a pittance. Then, there's what appears to be the blatantly incorrect statement of 64-bit windows offering 4GB of address space - shouldn't that be way bigger, or am I stupid?

    1. Re:Last paragraph in the TFA is... confusing by Anonymous Coward · · Score: 1

      300KB makes a big difference when adding the overhead of PGO and LTCG. Also MSVC only has 32-bit binaries, meaning that even in the best case scenario, where all kernel stuff is pushed into the 64-bit world, it can still only address 4GB.

    2. Re:Last paragraph in the TFA is... confusing by DeathFromSomewhere · · Score: 4, Informative

      An individual 32 bit process (IE the visual studio linker) is limited to 4GB of addressable memory.

      http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx#memory_limits

      --
      -1 overrated isn't the same thing as "I disagree".
    3. Re:Last paragraph in the TFA is... confusing by EvanED · · Score: 5, Informative

      Also MSVC only has 32-bit binaries

      Clarification: the only linker for 32-bit targets is, itself, 32-bits.

      The linker which targets 64-bit Windows is still 64 bits. If they had a 64-bit-to-32-bit cross compiler (they have the reverse, but not 64-to-32) that would solve Mozilla's problem. (Well, for some definition of "their problem.")

    4. Re:Last paragraph in the TFA is... confusing by blueg3 · · Score: 1

      64-bit Windows lets 32-bit applications access 4 GB of virtual address space. A 64-bit application can access much more, but the linker isn't 64-bit.

    5. Re:Last paragraph in the TFA is... confusing by Fred+Or+Alive · · Score: 4, Informative

      32 bit programmes (with the large address aware flag set) get 4GB of address space on 64 bit Windows, compared to 2GB / 3GB on 32 bit Windows.

      --
      10 PRINT "LOOK AROUND YOU ";
      20 GOTO 10
    6. Re:Last paragraph in the TFA is... confusing by sideslash · · Score: 1

      Then, there's what appears to be the blatantly incorrect statement of 64-bit windows offering 4GB of address space - shouldn't that be way bigger, or am I stupid?

      The 64 bit architecture does indeed offer 4 GB. Of course, it also offers 8 GB, 16 GB, etc. The article was focused on the 4 GB number because of FF, so it phrased a legitimate fact in a confusing way.

    7. Re:Last paragraph in the TFA is... confusing by jlebar · · Score: 1

      Then, there's what appears to be the blatantly incorrect statement of 64-bit windows offering 4GB of address space - shouldn't that be way bigger, or am I stupid?

      64-bit Windows lets you run 32-bit applications (such as the linker in question) with 4gb of address space. On 32-bit Windows, the OS uses 2GB of address space for itself, or 1GB if you set the /3GB flag on boot.

      There is no MSVC x86-32 compiler which runs as an x86-64 application, unfortunately. This is what you'd need to get a larger-than-4GB address space.

    8. Re:Last paragraph in the TFA is... confusing by DeathFromSomewhere · · Score: 1

      The tool chain for VC++ 2005 (and even 2008 and 2010) is 32 bit that can cross compile to 64 bit. I think there are 64 bit versions of the tool chain but they don't cross compile to 32 bit. So if you want to target 32 bit platforms, you are stuck with using the 32 bit tools.

      --
      -1 overrated isn't the same thing as "I disagree".
    9. Re:Last paragraph in the TFA is... confusing by EvanED · · Score: 1

      Correct. There are toolchains for 32-targeting-32, 32-targeting-64, 64-targeting-64, but no 64-targeting-32. (And from what people are saying, no 64-to-32 on the near horizon either.)

    10. Re:Last paragraph in the TFA is... confusing by Nethemas+the+Great · · Score: 3, Informative

      Actually, 4GB of address space on a 64bit Windows is correct with respect to Visual Studio and more specifically the linker since it is only 32bit. Microsoft--even with the crippled (for C++) Visual Studio 2010--has never released a 64bit version.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    11. Re:Last paragraph in the TFA is... confusing by BitZtream · · Score: 1

      So, first of all, saving 300KB on WebGL seems like a pittance.

      And WELCOME to WHY this problem exists in the first place.

      Those little 300KB bits add up into one big 9GB mess because of people saying ... 'its only 300k!'

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    12. Re:Last paragraph in the TFA is... confusing by BitZtream · · Score: 1

      No, they don't.

      They still get the same amount as they would on 32 bit windows. The kernel is expected to be found in specific places within that 4GB range. Without the /3GB switch, the kernel presents itself across a 2GB range of the Applications address space. In /3GB mode, it presents itself across a specific 1GB portion of that address space.

      The kernel does not mysteriously disappear to 32bit apps when you run them on a 64 bit machine. They still have to talk to it, and they still talk to it in the same 1GB of space that it claimed before.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    13. Re:Last paragraph in the TFA is... confusing by BitZtream · · Score: 1

      No, they don't.

      They still get the same amount as they would on 32 bit windows. The kernel is expected to be found in specific places within that 4GB range. Without the /3GB switch, the kernel presents itself across a 2GB range of the Applications address space. In /3GB mode, it presents itself across a specific 1GB portion of that address space.

      The kernel does not mysteriously disappear to 32bit apps when you run them on a 64 bit machine. They still have to talk to it, and they still talk to it in the same 1GB of space that it claimed before.

      32bit apps can use AWE to access more than 4GB of ram, but that requires special code and doesn't just work because the machine has more RAM, it also works perfectly well on 32 bit versions of Windows as PAE was designed for just that purpose.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    14. Re:Last paragraph in the TFA is... confusing by luserSPAZ · · Score: 1
    15. Re:Last paragraph in the TFA is... confusing by shutdown+-p+now · · Score: 1

      VS2010 does include an x64 version of the compiler, linker and other tools. It works fine - the only problem is that it only outputs x64 binaries. Mozilla needs a 64-bit compiler that outputs 32-bit code, so it's of no help to them.

    16. Re:Last paragraph in the TFA is... confusing by sideslash · · Score: 1

      I know Visual Studio provides a native x64 compiler. Are you sure there's not an x64 linker? I don't have immediate access to a machine to check this.

    17. Re:Last paragraph in the TFA is... confusing by snemarch · · Score: 1

      You might want to read up on that :)

      Because the address space on 64-bit Windows is much larger than 4GB, something I’ll describe shortly, Windows can give 32-bit processes the maximum 4GB that they can address and use the rest for the operating system’s virtual memory.

      --
      Coffee-driven development.
    18. Re:Last paragraph in the TFA is... confusing by snemarch · · Score: 1

      Not just Chen, but also Russinovich :)

      --
      Coffee-driven development.
    19. Re:Last paragraph in the TFA is... confusing by Nethemas+the+Great · · Score: 1

      There are native 64bit build tools (compiler/linker) for producing 64bit binaries however, there isn't a 64bit cross-compiler/linker for producing 32bit binaries.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    20. Re:Last paragraph in the TFA is... confusing by spongman · · Score: 1

      There is no MSVC x86-32 compiler which runs as an x86-64 application

      no, but the x64 linker (amd64\link.exe) can take x86 .objs and the "/machine:x86" switch and generate an x86 .exe

      It's probably not supported, and more advanced things may not work, but I just compiled a test app with the x86 compiler and linked it with the x64 linker.

    21. Re:Last paragraph in the TFA is... confusing by spongman · · Score: 1

      Clarification: the only linker for 32-bit targets is, itself, 32-bits

      this is false.

      the x64 link.exe can link x86 .objs into a x86 .exe

    22. Re:Last paragraph in the TFA is... confusing by jlebar · · Score: 1

      Apparently this works (which surprised most of us on IRC), but doesn't support PGO, unfortunately (though unsurprisingly).

    23. Re:Last paragraph in the TFA is... confusing by jlebar · · Score: 1

      Except the 64 --> 32 linker cannot use link-time code generation, which is a prerequisite of PGO.

  13. Bloat by ElmoGonzo · · Score: 2

    Sheesh. I can remember when we had to keep the size of the completed application small enough to fit on a 360K bootable floppy.

    1. Re:Bloat by X0563511 · · Score: 1

      ... and I remember when people used to read.

      It's not the completed application exceeding the limit, it's the resource usage of the build environment.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
  14. Re:Wow by Anonymous Coward · · Score: 5, Funny

    He was just trying to say that 1080p gives him a big endian.

  15. Re:whose bloat by Anonymous Coward · · Score: 3, Insightful

    No, no it doesn't, but I'm impressed, turning this against MS instead of complaining about the real culprit, kudos.

  16. Re:Are you serious? by masternerdguy · · Score: 5, Funny

    I guess that America's obesity problem has extended to software.

    --
    To offset political mods, replace Flamebait with Insightful.
  17. Re:whose bloat by EvanED · · Score: 5, Informative

    Speaking of someone who regularly does large C++ builds, MSVS is nowhere near a bad culprit here. The linker is essentially doing code generation -- link time optimization. Why? Because LTO gives a substantial performance benefit. The profile-guided optimization mentioned in the summary gets them about 10% over even doing non-profile-guided LTO.

    One project I've worked on has single files which cause GCC to take over 6 GB to compile when you compile with -O2. Who's bloated now?

    (Takeaway: broadly speaking, MSVS is actually very competitive, at least compared with GCC, when comparing similar settings.)

  18. I don't understand the issue by msobkow · · Score: 5, Insightful

    It sounds like a build-tool chain problem, not an issue with the eventual binary produced for Firefox.

    Why not just run the 64-bit tools on a 64-bit platform and have them output 32-bit code, the same as can be done by virtually any cross-platform compiler system. I can't imagine worrying about the fact that I can't run the builds on an outdated 32-bit OS as long as I can produce the binaries for such platforms.

    I shudder to think what it would have been like to develop for some of the military communications systems I worked on for my first job if we had to run the compilers on that pathetically slow mil-spec Sperry AN-UYK system (magnetic core memory -- talk about slowing down the CPU! But it's radiation hard!) We only tested on the Sperry -- all builds and editing were done on a VAX.

    In modern terms, could you imagine having to run your editors and compilers on an iDevice instead of OS/X?

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:I don't understand the issue by tepples · · Score: 2

      In modern terms, could you imagine having to run your editors and compilers on an iDevice instead of OS/X?

      That depends on how long Apple will continue to sell the MacBook Air instead of replacing it with a high-end iPad, but the purported death of the PC is another topic for another day.

    2. Re:I don't understand the issue by BZ · · Score: 2

      > Why not just run the 64-bit tools on a
      > 64-bit platform

      There is no 64-bit version of the MSVC linker, and no plans for one according to public statements from Microsoft.

      One can run the 32-bit linker on a 64-bit Windows, which gives you 4GB of address space to play with. That's the medium-term solution for Mozilla, but it does require updating the entire Windows build farm to 64-bit Windows and shaking out any compat issues that result. Doable, but will take a few weeks probably.

    3. Re:I don't understand the issue by EvanED · · Score: 5, Informative

      There is no 64-bit version of the MSVC linker

      Clarification (I've posted this a few times): there's no 64-bit version of MSVC that targets 32 bits. There is a 64-bit version which targets 64 bits, but that doesn't help the current situation.

    4. Re:I don't understand the issue by sconeu · · Score: 1

      I remember the AN-UYK. Once upon a time, I got dragged onto a project where some idiot had specified the PDL (pseudocode) as a deliverable.

      I wound up writing something that translated AN-UYK/23 asssembler into PDL.

      It generated stuff along the lines of "SET REGISTER 1 TO the contents of REGISTER 2"... Created about a 5 foot stack of fanfold. The DoD loved it, of course...

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    5. Re:I don't understand the issue by Nethemas+the+Great · · Score: 1

      It's really quite simple. There are no 64bit versions of Visual Studio. The farthest you can move the goalposts is 4GB (when run on a 64bit version of Windows).

      --
      Two of my imaginary friends reproduced once ... with negative results.
    6. Re:I don't understand the issue by BZ · · Score: 1

      Ah, indeed. Thanks for the clarification!

    7. Re:I don't understand the issue by compro01 · · Score: 1

      Why not just run the 64-bit tools on a 64-bit platform and have them output 32-bit code, the same as can be done by virtually any cross-platform compiler system.

      Because thanks to Microsoft's brilliance, the 64-bit tools won't output a 32-bit executable.

      And unfortunately, Microsoft's compiler's optimization methods outclass everyone else.

      --
      upon the advice of my lawyer, i have no sig at this time
    8. Re:I don't understand the issue by arkane1234 · · Score: 1

      Remember that this specific reason was why the Phoenix browser was created? Mozilla (and Netscape Communicator) was such a huge product.. and slow. I definitely agree, and you shouldn't need to compile it just to run something in 32-bit mode as well. With the selection of 32-bit hardware (and in a lot of cases, 32-bit code being the optimized selection due to 64-bit code taking extra memory per pointer/etc), it's silly to jump ship on 32-bit at the current moment. Maybe in 5-10 years, but now is just too early.

      --
      -- This space for lease, low setup fee, inquire within!
    9. Re:I don't understand the issue by arkane1234 · · Score: 1

      Once they get to the point of having a comparable processor & RAM selection between the two, your right on... oh, and iOS not in there. Then, it's simply a monitor and bluetooth keyboard/mouse. Of course, then the iPad will have to have choices of 10 or 13 inch screens.

      --
      -- This space for lease, low setup fee, inquire within!
    10. Re:I don't understand the issue by msobkow · · Score: 1

      Excuse me, the "updating the entire Windows build farm"?

      Why in God's name would you need more than one computer to be automatically doing the nightly build even if it has to be running the same OS family as the target platform?

      Let's see, build farm, build farm... Linux/RPM, Linux/DEB, Win7/64, Win/32, maybe a BSD, HP-UX, AIX, and Solaris box thrown in for giggles. I count 8 build servers, not a "farm".

      --
      I do not fail; I succeed at finding out what does not work.
    11. Re:I don't understand the issue by msobkow · · Score: 1

      Who says you have to use Microsoft build tools to produce a Win32 executable? As far as I know, Intel still produces the tightest, fastest code for the 32-bit and 64-bit windows APIs, and there are others as well.

      --
      I do not fail; I succeed at finding out what does not work.
    12. Re:I don't understand the issue by BZ · · Score: 1

      > Why in God's name would you need more than one
      > computer to be automatically doing the nightly
      > build

      First of all, there are 4 different nightly builds on Windows (optimized and debug, 32-bit and 64-bit builds).

      But we're not talking just nightly builds. There are per-checkin builds and test runs, for all major browsers; otherwise at the end of the day you'd probably be in a world of hurt with test failures.

      So for each checkin, there are two Windows builds created (debug and optimized) then run through a variety of test suites. And this happens not just for the main integration branch but also for various development branches. It also happens for changes people just want to test (there's a service where you can submit a patch and have it build the patch for you and run tests).

      So the net result is that as of March 2011, there were about 44 build jobs being kicked off per hour according to http://oduinn.com/blog/2011/05/24/infrastructure-load-for-march-2011/ -- that's across Win32, WIn64, Mac32, Mac64, Linux32, Linux64, and Android, so figure about 18 builds per hour on Windows. Each build takes more than an hour, so you need more than 18 build machines to keep up. In practice, there are about 40 at the moment for Windows; you can see the list near the bottom of http://build.mozilla.org/builds/last-job-per-slave.txt

      That's assuming that only the build machines, not the test machines, need to be upgraded, which is a good assumption in this case, I think.

    13. Re:I don't understand the issue by BZ · · Score: 1

      > so figure about 18 builds per hour on Windows.

      Actually, more like 12.5. Arithmetic fail on my part.

    14. Re:I don't understand the issue by BZ · · Score: 1

      > In practice, there are about 40 at the moment for
      > Windows

      Looks like my information is out of date. From one of the people who maintain these machines:

      catlee> we have ~70 win32 builders
      catlee> and ~30 win64

    15. Re:I don't understand the issue by compro01 · · Score: 1

      AFAICT, Mozilla has found that Microsoft's compiler's optimization techniques give better results than the alternatives.

      --
      upon the advice of my lawyer, i have no sig at this time
    16. Re:I don't understand the issue by igomaniac · · Score: 1

      The 64-bit linker can link 32-bit object files, albeit without link-time code generation.

      --

      The interactive way to Go -- http://www.playgo.to/iwtg/en/
    17. Re:I don't understand the issue by badkarmadayaccount · · Score: 1

      Problem is the 64-bit version of the tool-chain generates XP SP2+ code.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  19. Re:Wow by Anonymous Coward · · Score: 1

    Adobe Acrobat still has no port for 64-bit Linux. At the rate things are going, I'm becoming skeptical they ever will.

    And while I know there are plenty of other PDF readers out there, there aren't any other than Acrobat that support layers that can be turned on or off at runtime (which have been supported by Adobe Acrobat since, I believe, v6 or so).

    If you ever wondered what multilib was for, now you know! And knowing's half the battle.

  20. Re:Well done by Anonymous Coward · · Score: 2, Insightful

    There's something seriously wrong when a browser hits a 3GB linker limit.
    Imho, the only sane solution is to delete most of the code. It's been crap for years anyway.

    Did you ever try compiling Chromium before you made that statement?

  21. Re:whose bloat by tepples · · Score: 5, Interesting

    You're right. As anyone who's read C++ FQA by Yossi Kreinin might guess, C++ itself could be one of the culprits.

  22. The problem is VS's PGO architecture by jlebar · · Score: 5, Informative

    Summary should read: Visual Studio is too teh suck to link Firefox on Windows with PGO.

    Firefox links just fine with VS, if you don't use PGO. The problem is that Visual Studio's PGO routine loads all our object files in at once, then uses a ton of memory on top of that. And the linker for 32-bit programs is itself a 32-bit program; if there were a 64-bit x86-32 linker, we wouldn't have this problem. But so far, Microsoft has not given any indication that they will release a 64-bit to x86-32 cross-compiler.

    Note that Chrome doesn't build with PGO at all, last time I checked.

    http://groups.google.com/a/chromium.org/group/chromium-dev/browse_thread/thread/533e94237691e2f6

    Note: Visual Studio 2010 seems to help a bit, but not much. We use VS 2005 because it's the last version whose CRT supports Windows 2000 and Windows XP before Service Pack 2.

    1. Re:The problem is VS's PGO architecture by thsths · · Score: 2

      > We use VS 2005 because it's the last version whose CRT supports Windows 2000 and Windows XP before Service Pack 2.

      That's all very nice, but if you run an obsolete and out of support OS, why would you want to run the latest browser? Those users should be more than happy with Firefox 3.6.

    2. Re:The problem is VS's PGO architecture by jlebar · · Score: 1

      That's all very nice, but if you run an obsolete and out of support OS, why would you want to run the latest browser? Those users should be more than happy with Firefox 3.6.

      There's talk about switching to VS2010 (and I'm sure that'll be presented as a fait accompli on ./ before it's actually decided, just like all our internal discussions are).

      But 3.6 won't be supported with security updates forever, so we'd really be abandoning those users. Just because your OS is insecure doesn't mean we should give up on providing you with a secure browser. Maybe we should abandon them, but it doesn't necessarily follow.

    3. Re:The problem is VS's PGO architecture by askldjd · · Score: 5, Informative

      Parent is right. The software product I work on also used PGO at one point. Our software is roughly 2-3 million lines of C++ code, and links with 40-50 external libraries. Under Window XP, VS2008 could not link our product with PGO turned on. Before you complain about the bloat of FF, please understand that PGO uses many many times more memory than just compiling a regular release build. This is a Visual Studio linker problem, not FF problem.

    4. Re:The problem is VS's PGO architecture by gl4ss · · Score: 1

      ..on a 32bit windows.

      if they ran it on a 64bit variant, they'd have one more gig to bloat what they hard link into it..

      --
      world was created 5 seconds before this post as it is.
    5. Re:The problem is VS's PGO architecture by msobkow · · Score: 1

      Sounds like Microsoft took a step backwards with the newer versions of their compilers. When there were still 16-bit windows systems around, you just set a compiler option to produce Win/16 code instead of default Win/32 code under NT 3.5.

      But I can't say I'm really surprised -- Microsoft would really rather the world stop running 32-bit Windows entirely. I was shocked that they did a 32 bit release of 7 at all, as the OS is enough of a pig that it won't run acceptably on any CPU old enough to require the 32 bit instruction set instead of AMD64 extensions.

      And I'm afraid that I really don't think it's worth the effort and worry of this freakish optimization engine to support the WinXP/WinVista 32-bit user base. Their machines are old enough that they'll blame the old clunker for performance problems, and rightly so.

      --
      I do not fail; I succeed at finding out what does not work.
    6. Re:The problem is VS's PGO architecture by Richard_at_work · · Score: 1

      Why does it have to be anythings "problem"? If you wish to use "expensive feature X" then you have to pay "expensive feature X's cost", its that simple. In this case, PGO has a cost which the compiling system cannot pay when compiling Firefox (and a tonne of other large projects I bet) - that doesn't make it a problem with PGO, it makes it an issue with the compiler options chosen and the solution is to either upgrade the system or lower the cost involved.

      You can't exactly blame anything in this scenario - you are asking the compiler to do X, and it doesnt have unlimited resources to do that.

  23. Re:Wow by mark-t · · Score: 1

    Of course... but on slackware, multilib is an unsupported extension, and slackbuilds are not guaranteed to compile or install correctly on systems that have multilib installed.

  24. Re:Oh, now we admit it is getting bloated by GameboyRMH · · Score: 1

    Firefox has been getting lighter and lighter (at least in RAM use) since v4 so I don't get how the update made it slower.

    --
    "When information is power, privacy is freedom" - Jah-Wren Ryel
  25. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  26. Re:whose bloat by kikito · · Score: 2

    "One project I've worked on has single files which cause GCC to take over 6 GB to compile when you compile with -O2. Who's bloated now?"

    emm ... those single project files?

  27. Re:Obligatory by NixieBunny · · Score: 1

    More like 640GB these days.

    --
    The determined Real Programmer can write Fortran programs in any language.
  28. Compare Chrome. Is it a plug-in, app, or OS? by tepples · · Score: 4, Informative

    Let's guess Firefox for Windows is about the size of Google Chrome for Windows because it does about as much. But an HTML5 browser almost has to be an operating system by itself, containing a GUI layout engine (for CSS), a JIT-compiling virtual machine (for JavaScript), a window manager (tabbed document interface), a memory manager (RAM and disk caches), and a task scheduler (for scripts in one tab and scripts in another tab). Is Chrome a plug-in, a single application, or an operating system?

    1. Re:Compare Chrome. Is it a plug-in, app, or OS? by blueg3 · · Score: 1

      In fact, it would probably be better if web browsers were more similar to operating systems -- two of the things that browsers seem to be bad at is memory and cache management and task scheduling (particularly, multiprocessing).

    2. Re:Compare Chrome. Is it a plug-in, app, or OS? by devent · · Score: 1

      And that's exactly the issue I have with the current development of the Web. We already have perfectly good Operating Systems, but now everyone is trying to make the browser into another operating system. And for what, just to deliver applications through the browser instead through the operating system.

      The web foremost purpose is to deliver information. It's a shame that we didn't make any progress in that direction since the first HTML version. It's good that the symptoms of the bad design of the Web are remedied with powerful search engines, or you wouldn't find anything useful. Just try a thought-experiment: What would you do if tomorrow there would be no search engine any more (no Bing, no Yahoo, no Google, no what ever you using)? What would you do with the Web?

      The new video tag is somewhat a good beginning. But why there is no author tag, no table-of-content-tag, no index-tag, etc. Good that we have at least the meta-tag so the search engines can have a clue what the site is about.

      The web is good for content delivering. That's why "applications" like Wikipedia or all the news- and blog-sites are thriving. It is not for real applications (i.e. games, math-applications, IDEs, etc.) and never will be. We already tried that with Flash, Java Applets, SL. So now we try it again, but this time it will be "magical" because it's all Html5.

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    3. Re:Compare Chrome. Is it a plug-in, app, or OS? by ncmusic · · Score: 1

      Now if only someone would embedded the browser as part of the operating system.

  29. Re:whose bloat by ohnocitizen · · Score: 5, Funny

    I don't know if the blame is so easy to place. It is kind of like watching one fat guy explain to another why they can't sit on the same bench.

  30. Not FF's fault by Anonymous Coward · · Score: 4, Informative

    The software product I work on also used PGO at one point. Our software is roughly 2-3 million lines of C++ code, and links with 40-50 external libraries. Under Window XP, VS2008 could not link our product with PGO turned on.

    Before you complain about the bloat of FF, please understand that PGO uses many many times more memory than just compiling a regular release build. This is a Visual Studio linker problem, not FF problem.

    1. Re:Not FF's fault by luserSPAZ · · Score: 1

      Do you have a source to back that up? I've never been able to find any information saying that Microsoft compiles their OS libraries with PGO. In fact, in their "Debugging in the (Very) Large" paper, they state that they even turned off frame-pointer omission, since it caused more headaches and didn't give them a noticeable speedup.
      http://research.microsoft.com/apps/pubs/default.aspx?id=81176

  31. Re:whose bloat by luserSPAZ · · Score: 2, Interesting

    Yes, but you can get a 32->64 cross-GCC toolchain easily. You can't get one of those from Microsoft, so you're stuck with a maximum of 4GB of address space if you run the 32-bit toolchain on a 64-bit Windows system.

  32. I still play 8-bit video games by tepples · · Score: 2

    I still play 8-bit video games, and the memory card adapter I use to play them has an 8-bit OS.

    1. Re:I still play 8-bit video games by abigor · · Score: 1

      You are pretty much the master of interesting yet perilously-close-to-offtopic comments about circumstances that seem to have a sample size of one, that sample being you.

  33. Old timer chimes in by Okian+Warrior · · Score: 4, Insightful

    Back in my day we didn't have gigabyte memory and disk space was at a premium.

    It might seem a bit strange now, but back in the good 'ol days we used to have to break up a project into separate components, just in order to compile it!

    This is where your interface and API design skills came in handy. If you could partition some piece of the project off into it's own DLL, you could effectively break up the project into smaller pieces that could be individually compiled.

    That's where the name DLL came from originally: "Dynamic link library". You didn't need to have all the code read into memory when you first executed the application - less commonly used features wouldn't get loaded until they were actually asked for.

    It's not like it is nowadays, where you actually need all the code to be available all the time. "Rich user experience" they call it.

    I suppose it's just the future overtakin' us. Them good old days is gone forever.

    1. Re:Old timer chimes in by jlebar · · Score: 4, Informative

      It might seem a bit strange now, but back in the good 'ol days we used to have to break up a project into separate components, just in order to compile it!

      Yep, we used to do this. Then we merged them together, because it greatly improves the startup speed of Firefox.

      We have a lot of smart people working on this stuff, believe it or not.

    2. Re:Old timer chimes in by blueg3 · · Score: 1

      This is already a library -- libxul. They can break it into smaller pieces, but that's not the problem. It actually compiles and links fine. The problem is that it's an aggressive form of link-time optimization, which requires that (a) all of the objects being linked together be in memory at once and (b) the linker stores a ton of extra data for performing the optimization. If you give up on link-time optimization (which is very resource-intensive), code modularity works just fine.

    3. Re:Old timer chimes in by arkane1234 · · Score: 1

      I agree, but honestly I feel like we're using the same technology today but with new processor registers, address space sequences, and languages that are higher level so have a huge overhead.
      What ever happened to memory overlay capabilities? Then again, I guess that goes more into old school C and memory management techniques. I've actually thought recently how a well written assembly application would look nowadays compared to C++, Objective-C, or whatever other (non-high level) languages around. Haven't touched it in over 15 years, and it looks ripe for the taking now with so many added registers...

      --
      -- This space for lease, low setup fee, inquire within!
    4. Re:Old timer chimes in by caseih · · Score: 1

      Sure but you're confusing the issues here. Firefox still is produced as a collection of DLLs (modular design as you say). That's not the problem. The problem is that for PGO to work, it has to load all the objects and dlls into memory at once in order to do the optimizations and analyze the interactions between them. Nothing to do with "Rich user experience" as you say. Firefox builds just fine without PGO, but it might be a bit slower.

      I kind of doubt whether Microsoft uses PGO themselves for anything. Certainly a large project like MS Office would require several times the amount of RAM to to PGO than Firefox does.

    5. Re:Old timer chimes in by Sloppy · · Score: 1

      What ever happened to memory overlay capabilities?

      It was obsoleted by personal computers getting virtual memory.

      There were some good things about the "good old days" but overlays are not among them. Even back then, they sucked and were just a hack for fitting more code into your computer than you had address space.

      The only regret I have for overlays being dead, is that part of my brain is permanently wasted on knowing about them. I don't know if knowledge has opportunity cost, but I've always suspected that it does.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    6. Re:Old timer chimes in by steelfood · · Score: 2

      I suppose it's just the future overtakin' us.

      No, it's just waste due to an overabundance of resources. It happens all the time, whenever and wherever the amount of resources effectively becomes unlimited.

      Back in the day, people hand-optimized assembly to squeeze as much program as they could into the memory they were given. Now, people run it through a compiler with some optimization switches and call it a day.

      While there's nothing wrong with the latter, the skill required to do the former is both lost, and made irrelevant because the resources "saved" is not worth the time investment needed to do the optimizations. By the same way of thinking, an overabundance of any resource produces the same result.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    7. Re:Old timer chimes in by BitZtream · · Score: 1

      No, you merged a bunch of javascript and HTML together into big zip files. Real code combination, not so much.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    8. Re:Old timer chimes in by jlebar · · Score: 1

      Yes, we did that (omnijar). But in addition, we merged a number of previously-separate libraries into one giant library, libxul.

      I have to admit, it's pretty frustrating to be on a discussion board with someone who insists that I don't understand the project I've worked on for the past few years...

    9. Re:Old timer chimes in by rdebath · · Score: 1

      NO program needs 4GB of code space you'd need of the order of 200 million lines of code in a single executable to get anywhere near it, so with that amount of address space available overlays are unnecessary.

      Also very few programs need more that 4GB of data space. Before today I knew of only two Microsoft applications that would benefit from more that 2GB of data space; MS-SQL and MS-Exchange. Now it appears that that MS C++ compiler & linker could (very) occasionally benefit from a 64bit implementation ... but Microsoft aren't making a 64bit version of VS so it must be really rare as they're pushing hard for 64bit only.

      As for assembly, it was quite a while ago now that C/C++ compliers became better assembly code generators than people. For a modern heavily optimising complier hand written assembler will usually perform worse than the code emitted by the compiler. Not least because of features like the "PGO" that's causing the problem for Firefox where the compiler is trying to find optimisations over the entire executable, not just for small regions of code.

    10. Re:Old timer chimes in by msobkow · · Score: 1

      Well, on the bright side your frustration is a worthy price to pay for the community to hear from someone who actually works on the project and knows what's happening from the inside.

      But you really don't need to provide maximum PGO optimization of a binary to to achieve acceptable performance. Only an idiot would be benchmarking the 32-bit windows executables instead of the 64-bit WinVista/Win7 systems nowadays, and no matter how much you optimize, any system that actually requires 32 bit windows is probably old enough that the users are going to gripe about it being slow no matter what you do.

      It's called an "obsolete platform", and it's time to start gracefully retiring it from the forefront of the build schedules and project priorities.

      --
      I do not fail; I succeed at finding out what does not work.
    11. Re:Old timer chimes in by martin-boundary · · Score: 1

      Thank you! I was going to mention that. Bloody whippersnappers with their DLLs and SOs these days! 64 bit? 64 bit? They can't HANDLE 64 bit!

    12. Re:Old timer chimes in by shutdown+-p+now · · Score: 1

      It might seem a bit strange now, but back in the good 'ol days we used to have to break up a project into separate components, just in order to compile it!

      This is where your interface and API design skills came in handy. If you could partition some piece of the project off into it's own DLL, you could effectively break up the project into smaller pieces that could be individually compiled.

      The point of link-time code generation is to have the compiler work with the entire codebase, so that its optimizer can do a complete flow analysis, and have better data to work with. This leads to direct, noticeable improvements in performance of the resulting binary.

      SQLite does something similar for the same reasons - they don't even use LTCG, they just concat all their .c files in one humongous translation unit, and feed it to the compiler. Somewhere on their website there was a FAQ where they have specifically mentioned how much faster this makes the library - IIRC, something on the order of 10%?

    13. Re:Old timer chimes in by snemarch · · Score: 1

      and no matter how much you optimize, any system that actually requires 32 bit windows is probably old enough that the users are going to gripe about it being slow no matter what you do.

      On the other hand, people with dog-old slow systems are the ones who benefit most from aggressive optimizations. And yes, if you don't install a gazillion leaky plugins, I do find that the recent firefox versions run pretty well.

      --
      Coffee-driven development.
    14. Re:Old timer chimes in by snemarch · · Score: 1

      Now it appears that that MS C++ compiler & linker could (very) occasionally benefit from a 64bit implementation ... but Microsoft aren't making a 64bit version of VS so it must be really rare as they're pushing hard for 64bit only.

      DevEnv is 32-bit only for now, but there's both 32bit and 64bit toolchains... the 64bit toolchain can't target 32bit executables, though.

      As for assembly, it was quite a while ago now that C/C++ compliers became better assembly code generators than people. For a modern heavily optimising complier hand written assembler will usually perform worse than the code emitted by the compiler.

      Depends on who is writing the assembly code, really. The benefit of a compiler is that, especially with PGO and LTCG, it can apply a lot of brute force that a human simply wouldn't have the time to do - netting some nice performance benefits. There's really no point in trying to beat the compiler for business apps, but if you're dealing with algorithm-heavy stuff, especially if you can utilize the fancy new CPU instructions, there's speed to be won.

      --
      Coffee-driven development.
    15. Re:Old timer chimes in by snemarch · · Score: 1

      AFAIK, LTCG doesn't work across EXE/DLL boundaries, "only" objects and (static) libraries within the same EXE/DLL - that does still very quickly add up, though. xul.dll is ~11MB on my FF8 install.

      --
      Coffee-driven development.
    16. Re:Old timer chimes in by jlebar · · Score: 1

      Well, on the bright side your frustration is a worthy price to pay for the community to hear from someone who actually works on the project and knows what's happening from the inside.

      Thanks. :)

      But you really don't need to provide maximum PGO optimization of a binary to to achieve acceptable performance.

      That's a fair point! But right now, 32-bit Windows builds are all we have. 64-bit Windows builds have been coming Real Soon Now for a while, but I wouldn't hold my breath.

      We (try to) focus our efforts where our users are. The vast majority of our users are on 32-bit Windows, so improving their experience -- however we can do that -- is in general a priority above making Firefox run fast on bleeding-edge hardware. (That's not to say that we won't optimize for new hardware now, under the assumption it will become mainstream in the future.)

    17. Re:Old timer chimes in by rdebath · · Score: 1

      32bit and 64bit toolchains

      Are you sure about that, remember we're talking about native code not DotNet. While DotNet does appear to have distinct 32bit and 64bit compilers the native C++ compiler appears to be only available as a 32bit executable that cross compiles to x64 or ia64 (and probably still 16bit too).

      there's speed to be won

      It used to be that you could write an algorithm in C get the compiler to generate the code and then improve the code by hand.
      It's more the case nowadays that if you want or need to do that you should really be making sure that you are using the right compiler. Specifically, the Intel C compiler will generally be able to use all the instructions of the (Intel) CPU you point it at and will end up costing less (time, money or whatever) than doing the job by hand.

      And even if you have to use a compiler that doesn't understand your special hardware accelerated instruction the inline assembler is normally more than good enough to specify the rules for using it and optimising around it without the compiler knowing exactly what it does.

      Of course there is the other problem; the main reason I stopped hand optimising is that there isn't a single x86 CPU, methods of speeding up one variant will slow down others, but never by much because it's rare that the CPU is the bottleneck anymore. It's far more likely to be the memory and IME you can more easily help the compiler optimise memory accesses by working on the original C/++ code. Doing (or with c99 'allowing') optimisations the compiler won't because it can't make assumptions that you think are obvious.

      That BTW is what PGO does, it allows the compiler to go and check on assumptions it's not allowed to make, it can check aggressive aliasing rules or simplify function calling (or eliminate it by inlining between modules) or even making subroutines (not functions) for rarely used code. It's not a new optimisation method, just bigger.

    18. Re:Old timer chimes in by snemarch · · Score: 1

      32bit and 64bit toolchains

      Are you sure about that, remember we're talking about native code not DotNet. While DotNet does appear to have distinct 32bit and 64bit compilers the native C++ compiler appears to be only available as a 32bit executable that cross compiles to x64 or ia64 (and probably still 16bit too).

      Positive. There's a 32bit native toolchain that can do 32bit and (iirc) 64bit output, whereas the 64bit toolchain can only do 64bit output. It's easy to verify - open the "Visual Studio x64 Win64 Command Prompt (2010)" and "Visual Studio Command Prompt (2010)" shortcuts, fire off a "cl /?" in each, and use Process Explorer to check the image type. One is 32bit, the other is 64bit.

      Specifically, the Intel C compiler will generally be able to use all the instructions of the (Intel) CPU you point it at and will end up costing less (time, money or whatever) than doing the job by hand.

      Less time, yeah, but not the fastest code. It's not a lot of fields where the fastest code matters, though, acceptable speed and fast time-to-market is the winning combination :)

      And even if you have to use a compiler that doesn't understand your special hardware accelerated instruction the inline assembler is normally more than good enough to specify the rules for using it and optimising around it without the compiler knowing exactly what it does.

      x64 versions of VC++ don't support inline assembly - it's better using an external assembler anyway, since you can then use the same code with different compilers. And if the code isn't big enough to warrant putting in an external .asm module, it's usually not worth even considering writing it in assembly. You can use intrinsic functions, but I see that mostly as a prototyping (or "enough extra speed without too much effort") tool, you can still do better register allocation by hand... if the algorithm is complex enough. But yes, it's a crapload of effort, and not very often worth it.

      And I'll easily admit that I'm not a hot-shot assembly programming guru, so it'd take me disproportionate amounts of time besting today's compilers. Still, they aren't magic, they operate on heuristics designed by humans, and they can't generate 'perfect' code (optimization is NP-hard, and programs are frigging huge :)).

      --
      Coffee-driven development.
  34. Re:Obligatory by masternerdguy · · Score: 1

    Only GB?

    --
    To offset political mods, replace Flamebait with Insightful.
  35. Eh is this really an issue? by nhat11 · · Score: 1

    Like said here before, just compile it on a 64-bit system. Why stick on 32-bit?

    1. Re:Eh is this really an issue? by WillAffleckUW · · Score: 1

      Actually, my copy of Firefox crashed this morning on my 6 core Win7 machine.

      Hey, I know!

      Let's run it at Ring Zero - the Blue Ring of Death!

      --
      -- Tigger warning: This post may contain tiggers! --
    2. Re:Eh is this really an issue? by arkane1234 · · Score: 1

      Because that knocks a huge chunk of the consumer market out. Any other questions?

      --
      -- This space for lease, low setup fee, inquire within!
    3. Re:Eh is this really an issue? by nhat11 · · Score: 1

      No it doesn't. This is a programmer's issue and doesn't affect the consumer directly at all. What consumer look at code then compile code?

  36. Re:Wow by phantomfive · · Score: 2

    there aren't any other than Acrobat that support layers that can be turned on or off at runtime (which have been supported by Adobe Acrobat since, I believe, v6 or so).

    Why would you want to do that? I've never seen this feature used (I'm not saying it doesn't have a use, just that I can't conceive of one).

    --
    "First they came for the slanderers and i said nothing."
  37. Linker? by menkhaura · · Score: 1

    What about fixing TF compiler/linker?

    --
    Stupidity is an equal opportunity striker.
    Fellow slashdotter Bill Dog
    1. Re:Linker? by blueg3 · · Score: 1

      That's definitely the solution, but not one that's available to Mozilla developers.

    2. Re:Linker? by BZ · · Score: 1

      File a bug on Microsoft to do that? Might happen.... sometime.

    3. Re:Linker? by shutdown+-p+now · · Score: 1

      This is the best place to ask for such things at the moment - unlike Connect, which requires LiveID, it lets you login with Google or Facebook accounts, so it's easier to gather votes.

  38. Re:whose bloat by Talderas · · Score: 5, Funny

    Can we turn this into a competitive sport? Please?

    --
    "Lack of speed can be overcome. In the worst case by patience." --Znork
  39. Re:Oh, now we admit it is getting bloated by PsychoSlashDot · · Score: 5, Insightful

    Requirements to run Firefox and resources required to compile Firefox aren't the same thing at all. Your attempt to conflate the two suggests you're stupid and don't know what you're talking about.

    I'd say it nicer but then I'd risk not hitting +5 Funny.

    --
    "Oh no... he found the .sig setting."
  40. Re:Wow by Anonymous Coward · · Score: 1

    1080P video has nothing to do with the bitness of your operating system.

    I was merely illustrating how I've gone from being ahead of the tech curve to years behind. However I think you'll find that bits and byte order do count when writing a compression codec. In short; you're wrong!

    You didn't specify a compression codec, you specified a video resolution, which is indeed completely irrelevant to the bit-count of your processor.

    In short, you're wrong. Please stop.

  41. Re:Wow by arkane1234 · · Score: 1

    Having trouble comprehending computer binary sequence, and word size transmissions?
    Hint: It was a joke about 1080p and data transfer through the data bus.

    --
    -- This space for lease, low setup fee, inquire within!
  42. Too big to fail? by aikodude · · Score: 1

    I say we take off and nuke the site from orbit. It's the only way to be sure.

  43. FIREFOX IS BLOATED!!! by Anonymous Coward · · Score: 1

    Hey, know what else is too big to link with PGO on 32-bit Windows? Chrome! http://code.google.com/p/chromium/issues/detail?id=21932

  44. Re:Wow by higuita · · Score: 1

    yes, it true... but that doesnt mean that it doesnt work...

    but if you want to make sure, installl a slackware64, do a mkdir /chroot and install in there a normal slackware.. then do some mount --bind for proc, sys, tmp and dev and do a chroot on that directory to get a full 32bit enviorment.... if you need to use X, export the DISPLAY and copy the xauth cookie for the 32bit apps connect to the 64bit X11 server... problem solved! :)

    --
    Higuita
  45. Re:Not any better for Google Chrome by viperidaenz · · Score: 1

    So not only is Chrome faster and uses less resources, it also has fewer compile time optimisations? Sounds like Mozilla need to step up their game a bit

  46. Re:Wow by mark-t · · Score: 1

    I would have thought the answer was obvious... because I have PDF's that utilize the feature for customizing what features of the document that one wishes to print. It is most practical for maps, but has a few other applications as well.

  47. Re:Wow by plover · · Score: 5, Insightful

    No, it has nothing to do with running Firefox. It has everything to do with running Visual Studio's linker.

    This matters only to Firefox developers.

    Not that they shouldn't care, mind you, as that is some seriously monolithic code. But it won't make any difference to Joe Sixpack.

    --
    John
  48. Re:Wow by rocketPack · · Score: 1, Funny

    You mean some people still run Firefox?

  49. Re:whose bloat by EvanED · · Score: 3, Insightful

    Templates out the wazoo. Don't blame me, I didn't design it. (Or write most of it; I'm only tangentially related nowadays.)

    Point being, there are features which, while valuable, are costly. I blame our source, our fondness of templates, and the compilation consequences that templates almost necessitate way more than I blame GCC for having a poor implementation of templates.

    But similarly, going "stupid bloaty MSVC, it shouldn't support this feature which can give double-digit percentage speedup because it takes a lot of memory" is stupid. LTO is costly -- period. It's just very worth it.

  50. Re:Wow by Anonymous Coward · · Score: 2, Informative

    Old gripe about window-to-the-whole-world is old. And we're talking about builds, not in-use resource consumption... where it behaves just like every other browser.

  51. No PAE?! by DrYak · · Score: 1

    You mean some people still run a 32-bit OS?

    Not only that, but apparently Windows cannot use PAE - Physical Address Extension to address more than 4GB (according to the WP entry, PAE is supported, but the 4GB limit is still enforced - due to some obscure licensing problems).

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:No PAE?! by cjb909 · · Score: 3, Insightful

      You mean some people still run a 32-bit OS?

      Not only that, but apparently Windows cannot use PAE - Physical Address Extension to address more than 4GB (according to the WP entry, PAE is supported, but the 4GB limit is still enforced - due to some obscure licensing problems).

      The problem is with virtual memory. A process still uses 32bit memory addresses to reference memory. This means that a process can still only address 4GB of memory. If you were to use more than 32bit memory addresses to get more memory, suddenly you aren't a 32-bit OS anymore.

      PAE only helps the OS be able to manage more than 4GB of memory.

    2. Re:No PAE?! by petermgreen · · Score: 4, Informative

      Not only that, but apparently Windows cannot use PAE - Physical Address Extension [wikipedia.org] to address more than 4GB

      Sure it can, you just have to either pay for a server edition or hack the restriction out of the kernel.

      But more physical address space doesn't help here, the problem here is virtual address space for running an effective but memory hungry profile guided whole program optimisation process. Nromally 32-bit windows has a maximum of 2GB virtual memory per process (and this is one big process we are dealing with). This can be increased to 3GB at the cost of reducing the kernel address space to 1GB.

      Going to a 64-bit OS (which allows 4GB of virtual address space for 32-bit processes) will buy them a little bit of time but it's not a long term soloution. Really they need a 64 to 32 cross toolchain (which according to other posts here MS do not offer) if they want to keep using profile guided optimisation as the codebase grows.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    3. Re:No PAE?! by BitZtream · · Score: 1, Insightful

      Windows most certainly has no problem using PAE, I've been using it for 10+ years. The idiot quoting Wikipedia didn't bother to read the next sentence which refers to Address Windowing Extensions ... which all 32 bit apps to access more than 4gigs of ram on Windows. Other OSes are no different, if you think they are its because you don't understand PAE and how it works.

      But more physical address space doesn't help here, the problem here is virtual address space for running an effective but memory hungry profile guided whole program optimisation process. Nromally 32-bit windows has a maximum of 2GB virtual memory per process (and this is one big process we are dealing with). This can be increased to 3GB at the cost of reducing the kernel address space to 1GB.

      You do not understand what PAE is.

      PAE is an effective way to access far more than 4 GB of memory on a 32 bit system. Its another form of paging (NOT SWAPPING). Its essentially FAR pointers from the old days.

      Going to a 64-bit OS (which allows 4GB of virtual address space for 32-bit processes)

      No, it doesn't. The 32 bit processes are still constrained as they were before as the kernel still has to present itself to the application by being in the same place it was on a true 32 bit machine. 32 bit apps can't magically address more than 4GB of memory just because the OS can, so the kernel still presents itself in that 4GB, which means ... you still get at best 3GB of usable space per application, even though you can have many more applications all accessing ram that totals more than 4GB.

      What they really need to do is address the fact that their WEB BROWSER CAN NOT BE COMPILED IN 3 FUCKING GIGS OF RAM.

      Let me repeat that for you.

      A WEB BROWSER THAT CAN NOT BE COMPILED IN 3 FUCKING GIGS OF RAM.

      You can compile the ENTIRE OS without a problem ... but a web browser ... not so much ...

      And yet Mozilla and the other Firefox fanboys still fail to see the writing on the wall.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    4. Re:No PAE?! by strikethree · · Score: 1

      or you know, they could just give up on 32 bit. i have been waiting a decade for 64 bit in the regular world. let the past go. 32 bit is like using 2 digit year codes.

      --
      "Someone needs to talk to the tree of liberty about its ghoulish drinking problem." by ohnocitizen
    5. Re:No PAE?! by snowgirl · · Score: 1

      You can compile the ENTIRE OS without a problem ... but a web browser ... not so much ...

      Windows does not compile as one single monolithic process. Also, it does not compile to a single executable, which is then profile-guided optimized. It wouldn't surprise me at all that Firefox's build process required more working memory at its memory-constrained bottleneck than the Windows build process does.

      --
      WARNING! This girl exceeds the MAXIMUM SAFE standards established by the FDA for BRATTINESS
    6. Re:No PAE?! by snemarch · · Score: 1

      Not just licensing, but also driver compatibility issues - a lot of fscktards apparently have this idea that "hey, we're running a 32bit OS, so let's ignore the upper 32 bits of the PHYSICAL_ADDRESS structures"... which is plain old stupid. The first version of XP supported "4GB of physical ram" (and it's indeed licensing that caused it to not support more) - with SP1, it was reduced to "the lower 4GB of physical RAM" because of aforementioned fscktarded 3rd-party driver developers.

      On top of that, it's not particularly funny to program for PAE modes, as you still only have a 4GB address space, so you have to shift a 'window' around to point at physical memory. It's extra code, and shifting the 'window' is a costly operation, so it's a fair amount of work to get right. It's really mostly useful for stuff like database buffer memory, not generic data structures.

      --
      Coffee-driven development.
    7. Re:No PAE?! by msobkow · · Score: 2

      Microsoft doesn't offer a 64-bit compiler that cross-compiles to 32-bit. Fine, I can accept that. But there are other compilers one could use:

      http://software.intel.com/en-us/articles/intel-compilers/ is still reputed to produce the tightest, fastest WinXX executables available.

      http://www.embarcadero.com/products/cbuilder (formerly Borland C++)

      The venerable http://gcc.gnu.org/

      http://www.ghs.com/products/optimizingC++EC++Compilers.html (though it looks like GHC might no longer target Windows at all)

      --
      I do not fail; I succeed at finding out what does not work.
    8. Re:No PAE?! by thegarbz · · Score: 1

      You're confusing two different things. Read the full wikipedia entry. Yes there's licensing issues for windows above 4GB, but even moving to Windows Server Datacentre your application space will still be limited. Sure you can put 128GB into the system and run your application an additional 32 times in parallel, but each individual application still can not access more than 4GB of virtual memory.

      To do that they need to start getting into very nasty and complicated Windows Address Extensions support. The application itself needs to be specifically written to use it as well. The same goes for Unix based applications.

    9. Re:No PAE?! by toddestan · · Score: 1

      If I had to guess, you've probably got at least 50% of Windows users still on 32 bit operating systems. That's a huge portion of the user base. On the other hand, it is Firefox we're talking about here.

    10. Re:No PAE?! by ardor · · Score: 1

      A WEB BROWSER THAT CAN NOT BE COMPILED IN 3 FUCKING GIGS OF RAM.

      Indeed. This is totally insane. You'd expect some heavy-duty stuff like CGI rendering, finite element simulations, medical imaging (voxel grids), video authoring to be the kind of software that requires 64 bit. And then somebody mentions that we also need the 64 bit machine for building firefox.

      Sheesh, I can even build an entire toolchain plus rootfs using something like OpenEmbedded on a 32 bit box, which gives me a complete system for an embedded device, plus user interfaces, video codecs, player software, ...

      --
      This sig does not contain any SCO code.
    11. Re:No PAE?! by Acaeris · · Score: 1

      They can compile it in less than 3Gb of RAM, just not with PGO. Chrome can't compile with PGO either and it's highly unlikely that many other large scale applications use PGO.

  52. Re:whose bloat by EvanED · · Score: 1

    I agree with that, and I don't want to dispute that particular benefit of GCC (or more broadly, open source).

    But saying "I should have a 64->32 linker so that it can use more than 4 GB of memory" is a lot different from saying "MSVC is bloated if linking takes 4 GB". :-)

  53. Re:whose bloat by jlebar · · Score: 1

    One project I've worked on has single files which cause GCC to take over 6 GB to compile when you compile with -O2. Who's bloated now?

    I believe it, but at least you can run GCC as a 64-bit binary and compile 32-bit binaries. That's a heckuva lot better than the situation here with MSVC.

  54. Re:Wow by bluefoxlucid · · Score: 1

    How about not using shitware?

  55. How long would building on a 64 bit system last .. by scharkalvin · · Score: 1

    until the shit overflowed the container?

    The reason building on a 64 bit machine works is because the 64 bit OS can run a 32 bit application while giving it 4gb of space to work in. But they are at 3GB now, how long before even THAT isn't enough? Note that the finished exe needs FAR less space to run in (thank god!).

  56. Re:Wow by mcavic · · Score: 1

    Why not? You can tell just by looking at the version number that Firefox is almost as advanced as IE and Chrome. *rolls eyes*

    As for memory, there was an article a while back I believe, explaining that it takes a million gigs of RAM (I'm exaggerating) to compile/link an Android app, and I still don't get it. What do you have to store in memory aside from a symbol table?

  57. Re:Wow by mark-t · · Score: 1

    Yes... they will work... most of the time in fact. But when they don't, there is absolutely no support offered.

    I had thought about doing a 32bit chroot on a 64-bit system before, but am unsure how I would properly connect the 32-bit system to the 64-bit one for X apps. You've described basically what needs to be done, but I would really need a considerably more detailed step-by-step explanation. I didn't have much luck finding one the last time I gave this any thought.

    It's really just as annoying as hell that Adobe has evidently stopped supporting Acrobat for Linux after v9... but oh well... what can you do, right?

  58. still a Big deal by OrangeTide · · Score: 1

    that operating system is compiled one component at a time.

    to be honest you can build it on a 4G system, it will just take a long time and you won't be able to do a parallel build without digging deep into swap.

    --
    “Common sense is not so common.” — Voltaire
  59. Re:Wow by delt0r · · Score: 1

    I don't think that is correct. Slackware comes multilib capable. So it quite easy to make it multilib and everything works just fine with it. No where have i ever seen a "use at your own risk, this can break 64bit apps". Not only that, but it doesn't. I have this installed on 3 different desktops and 2 laptops without issues.

    --
    If information wants to be free, why does my internet connection cost so much?
  60. Re:Is rendering web pages more complicated than... by arkane1234 · · Score: 1

    As much as I want to believe what you say (and I think it until I break it apart in my head), it's not quite as simple as rendering something to the screen.
    That's part is a specific subsection of code within the browser. The rest is array indexes, plugin coordinations, and a bunch of other things all happening at the same time. While I'm not a browser coder, I understand the complexities. That being said, once a browser goes over 3G memory use, you start scratching your head.

    --
    -- This space for lease, low setup fee, inquire within!
  61. Its the compiler, stupid. by DrYak · · Score: 5, Informative

    Or just, yknow, stop running a bloated resource hog of an INTERNET BROWSER.

    Read TFA agin. Oh, I know this is /.
    So read the summary again.

    it cannot be compiled with PGO on a 32-bit linker anymore, due to the virtual memory limitation of 3 GB

    It is the compiler which is having ressource problems. The profile-guided optimiser needs more than 3GB to be able to do its optimisations. And apparently, the Windows its running on can't do PAE to use more than 3GB neither.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:Its the compiler, stupid. by cjb909 · · Score: 5, Informative

      It is the compiler which is having ressource problems. The profile-guided optimiser needs more than 3GB to be able to do its optimisations. And apparently, the Windows its running on can't do PAE to use more than 3GB neither.

      PAE allows 32-Bit computers to use more than 4GB of ram, but it doesn't allow Windows to assign more than 3GB to any single process.

    2. Re:Its the compiler, stupid. by petermgreen · · Score: 2

      More specifically windows requires non-overlapping kernel and user address spaces. So does a regular linux kernel.

      There were patches for linux ( http://lwn.net/Articles/39283/ ) that implemented a "4G/4G" system with independent user and kernel address spaces but afaict interest in them was largely lost as most newer systems became x64 capable . I doubt anything similar exists for windows.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    3. Re:Its the compiler, stupid. by snemarch · · Score: 1

      It's true that only server editions of Windows supports PAE(*), but it wouldn't really be that much of a help for general-purpose apps... the code required to utilize it is simply way too much bother to write for most classes of applications, and programmers have been lazy since leaving the horrible 16bit days :) (*): they've been running PAE since XP in order to use hardware no-execute, but not supporting MOAR MEMORYZ for licensing as well as driver compatibility reasons.

      --
      Coffee-driven development.
    4. Re:Its the compiler, stupid. by hairyfeet · · Score: 1

      The reason nothing like that exists for Windows is simple: drivers. Sorry i don't have the link ATM (waiting on the damned cableco, damned box runs and dies, runs and dies, will have to wait on the nxt run cycle to post this) but it was posted on several MSFT blogs when XP X64 came out that the reason that Win2K3 could run over 4Gb and XP couldn't was because the consumer drivers crapped themselves under PAE when over 4Gb of RAM was used. Since server vendors are a LOT smaller demographic and burning the customer there could kill a business servers got updated drivers quite quickly whereas most Windows consumer level crap was lucky if it got anything more than the driver on the disc. So in that case you can blame the OEMs. that was why to get hardware certified for Windows now you have to provide both 32bit AND 64bit, because otherwise it would be a mess.

      As for TFA? Firefox sucks sadly, and this is coming from someone who was a diehard FF fan and before that the Mozilla suite. I don't know what they did past 3.0.x but it really took a big old crap on the code. I'm typing this on a 1.8GHz Sempron i use as a nettop and with Comodo Dragon (or Opera, or QTWeb) it runs great. I can have multiple tabs, watch SD video, it runs nice. Since FF 4 FF has been completely unusable on this machine, it slams the CPU to redline on launch, slams it to red on launching a new tab, and give up watching ANY video as it'll be a slideshow. And may the Gods help you if you forget and leave FF open overnight as it'll suck up RAM like a wino at a free bar.

      I really hope they fix FF, as I miss NoScript, even though I think on my Win 7 machine its probably not needed thanks to Dragon being in low rights mode (which FF STILL doesn't support after 5 years already!) but as it is now I simply can't hand it out or recommend it to customers. Its too slow, bloated, power hogging, even on my brand new E-350 netbook I've found that FF shaves a good 40 minutes off the battery thanks to the CPU spiking. That is simply unacceptable and I'm frankly not surprised to see FF's userbase going down as they really have let the quality slip as of late IMHO.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    5. Re:Its the compiler, stupid. by BlackSnake112 · · Score: 1

      The PAE switch worked better at install time then after the fact for me. XP 32bit ran odd with greater then 4GB with the PAE switch. Windows server 2003 32 bit ran better but would shudder at times. I used server 2003 as my gaming machine for a while. It was faster the XP on the same hardware. Getting a 64 bit OS has just mad things easier. Still server 2008 is faster then vista or win 7 on the same hardware for me in what I do. Server's file handling beats the desktop OS hands down. Then again is is supposed to be a server OS, so it should beat the desktops for file handling.

    6. Re:Its the compiler, stupid. by Skal+Tura · · Score: 1

      i had no problems on XP 64bit with drivers except for one ages old webcam and soundcard. Performance was waaaayyy better too.

      Even running on latest hardware, with latest gpu etc. XP 64bit worked very smoothly :)

      If you could backport win7 UI + usability enhancements i would prob still use XP 64bit for it being faster.

    7. Re:Its the compiler, stupid. by TheRaven64 · · Score: 1

      Yes it does, but it's horrible. You lose the flat address space and you have to use API calls to manually switch banks of memory in. Windows has been able to do this since the late '90s, but I don't know of any software that has actually made use of it.

      --
      I am TheRaven on Soylent News
    8. Re:Its the compiler, stupid. by hairyfeet · · Score: 1

      I have a nephew on XP X64 and I myself used it until Win 7 Beta and its a great OS. Of course its not really a consumer OS, its just WinServer 2K3 X64 with an XP skin which may explain why its built like a tank but I agree it was a good one. Protip: if you find something without a driver look for server 2K3 drivers, you'd be surprised how many things had server 2K3 drivers.

      I don't think that XP X64 is faster than Win 7, it just does less. its like the difference between a stripped down model a VS a fully loaded Camaro 2012, sure the Model A is gonna be faster, and freeze your balls off with not having a heater, or top, or a windshield that is made of safety glass. the new ride has all that and GPS, kicking stereo, you just get more stuff. Win 7 has jumplists, breadcrumbs, better memory management, readyboost and superfetch, its just doing a HELL of a lot more than XP X64.

      I could strip XP X64 down to something like 6 processes and a good 90% of the features remained functional simply because there wasn't much to it. The lowest I seem to be able to strip Win 7 is about 20 without losing features I like. If you want to see how low you can strip Win 7 if you don't care about features grab yourself a copy of "Win 7 Tiny Edition" and load it on something. They have managed to strip it so small it runs nicely on 256Mb of RAM and a 1GHz CPU, but you lose a lot in the translation, no superfetch or readyboost, no Aero beyond the see through taskbar, no WMC or sharing, you really have to gut it to get it THAT small.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    9. Re:Its the compiler, stupid. by hardwarefreak · · Score: 1

      PAE allows 32-Bit computers to use more than 4GB of ram, but it doesn't allow Windows to assign more than 3GB to any single process.

      Correct. But enabling Address Windowing Extensions (AWE) atop PAE allows applications built with AWE support to access up to 64GB of RAM on 32 bit Windows 2003/2008 Enterprise or Datacenter systems. However, given the cost of these server editions of Windows, it is obviously much smarter to simply do the builds on 64bit Windows XP/Vista/7 selecting a 32bit Windows target.

  62. Re:Oh, now we admit it is getting bloated by emmons · · Score: 1

    This article isn't about how much RAM Firefox needs when *running*, it's talking about how much RAM Microsoft Visual Studio uses when *compiling* (actually, linking) Firefox.

    --
    Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
  63. Re:Wow by EvanED · · Score: 1

    In this particular case, it's actually doing link-time code generation for optimization purposes.

  64. Re:Wow by peppepz · · Score: 4, Insightful

    And how is this connected to the amount of memory required to link Firefox?

  65. That's doubly insane! by aglider · · Score: 2

    It's insane that a compiler, any compiler, needs 3+GB to "just" link a whatever big number of object files into an executable.
    It's insane that a single piece of software cannot be linked in a 32bit environment. That is, a Windows32 environment, as it can be linked into a 32bit Linux environment.
    How much insanity nowadays!

    --
    Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    1. Re:That's doubly insane! by Skapare · · Score: 1

      That's because today's linkers want to do it all in RAM. That means the executable file size PLUS all the information about all the libraries it's scanning, have to be together. Back in the day when mainframes first came out (32K was all that anyone would ever need), the linker worked on disk, reading and writing pieces of the executable it was building, only as needed. Of course back then, anything over 4K was bloat (except COBOL was allowed to go to 12K before being called bloatware). And we coded in assembly without all those millions of header defined symbols.

      There's a simple answer for FF. Just leave out some FUNctionality from the 32-bit version. That would help push people to get 64-bit platforms, and donate the 32-bit junk to those who still have 16-bit junk who can then pass that stuff on to the people with 8-bit junk.

      --
      now we need to go OSS in diesel cars
    2. Re:That's doubly insane! by shutdown+-p+now · · Score: 1

      It's insane that a compiler, any compiler, needs 3+GB to "just" link [wikipedia.org] a whatever big number of object files into an executable.

      Linkers haven't been "just linking" for a long time now. Please read about link-time code generation and profile-guided optimization - both are involved in this case.

    3. Re:That's doubly insane! by aglider · · Score: 1

      That's because today's linkers want to do it all in RAM.

      How much insanity nowadays!

      Doing everything in RAM is not just insane. It's EVILLY WRONG.
      Back storage (aka HDs/SSDs) is currently 100+ times larger than RAM and 100+ times "faster" than it used to be 10 years ago.
      And, anyway, GNU compiling and linking tools can do it with reasonably sized storage.

      But you chose that Windows OS, so you deserve such a mistake!

      --
      Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    4. Re:That's doubly insane! by aglider · · Score: 1

      A number of other OSes can do it with a reasonably sized system. Which is not 3+GB RAM.

      --
      Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
    5. Re:That's doubly insane! by shutdown+-p+now · · Score: 1

      I don't know if you've ever used VC++, but it's generally less memory-hungry than gcc.

      If you want to prove otherwise, Firefox source code is available - so go ahead, build it with 32-bit gcc with all the same optimizations and show them how.

    6. Re:That's doubly insane! by shutdown+-p+now · · Score: 1

      Run the performance test suite to prove that it's not noticeably slower than Firefox built with VC.

      If it's not, then email Mozilla guys and tell them that you have a solution to their problem.

    7. Re:That's doubly insane! by Arker · · Score: 1

      That's because today's linkers want to do it all in RAM.

      It's more than that, though, because todays developer machines have many orders of magnitude more RAM than our old kilobyte-memory machines had in storage.

      Doing it all in RAM is very poor design as well, of course. As much data as possible should always be kept in a generic storage function so that the OS can use the various levels of storage from register to persistent storage intelligently - keeping more in RAM when more RAM is available and intelligently paging less-used stuff out when it is not.

      But the code bloat is real and undeniable on its own, and it's primarily a predictable result of the ever-increasing abstraction levels, and reliance on library code, by application programmers over the years. That in turn has been enabled by the overabundance of resources another commenter mentions, in combination with commercial logic (MS and the hardware manufacturers alike have a vested interest in getting people to replace old machines with new.)

      Higher level languages and library code enable quicker prototyping, and in the commercial world time to market can be a major issue. And there are definitely advantages to it in other ways - fixing a bug in a dozen different programs by updating a library is a neat trick. But the cost is very real in terms of code bloat. Featuritis and various marketing requirements add to the final bill as well.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
  66. Re:Wow by orangesquid · · Score: 1

    Exactly! Those of us using a REAL operating system like Windows 3.0 never have to worry about mixing 64-bit and 32-bit environments! ;)

    --
    --TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
  67. Hang on.. by fireylord · · Score: 1, Troll

    So the codebase is once more becoming bloated, in fact so bloated that they cant compile it in 3 gigabytes of address space, and their long term solution is to compile it in an enrivonment that allows more address space??? Instead of, maybe, getting the code base down to a non bloaty non total total disaster area?? Looks like this is one more confirmation that Mozilla have lost the plot with Firefox.

  68. Re:Wow by mark-t · · Score: 1

    It is multilib capable, but multilib is still an unsupported extension.

    No where have i ever seen a "use at your own risk, this can break 64bit apps"

    It doesn't break any standard slackware apps, but it can break some slackbuilds... For what it's worth, I've even seen this happen several times. Their official response on the matter when I sought technical help about it was that multilib is not supported by the slackbuild process, and the recommendation was to not use multilib if I wanted to have reliable slackbuilds.

  69. Re:whose bloat by phorm · · Score: 1

    How big are the single files?

  70. Modularization by phorm · · Score: 1

    I wonder how much of that can be modularized a little better.
    Yes, almost every does use JavaScript, but couldn't components such as JS be included as a module from the main engine?

    1. Re:Modularization by gl4ss · · Score: 1

      with ff it seems they went to optimize startup time by linking everything in, instead of loading dynamically.

      shitty metrics used for dev, shit methods. result: I want phoenix back!

      --
      world was created 5 seconds before this post as it is.
    2. Re:Modularization by cratermoon · · Score: 1

      Remember when everyone complained about how such-and-such browser was such a load of crap because it took *forever* to start up? Now we have browsers that start very rapidly, so everyone is happy, right?

    3. Re:Modularization by phorm · · Score: 1

      My firefox is actually quite slow to startup, especially on older machines, so I'm not sure where the improvement is suppose to lie there.

  71. Re:Wow by mingot · · Score: 4, Funny

    He was gonna answer that question but he took and arrow to the knee.

  72. In the old days nobody needed more than 8 bits by WillAffleckUW · · Score: 1

    Eight bits, I tell you.

    And we pushed the registers ourselves!

    Lazy coders ...

    --
    -- Tigger warning: This post may contain tiggers! --
    1. Re:In the old days nobody needed more than 8 bits by bytesex · · Score: 1

      You had registers? Luxury! We had one one-bit register and we had to remember its state.

      --
      Religion is what happens when nature strikes and groupthink goes wrong.
    2. Re:In the old days nobody needed more than 8 bits by WillAffleckUW · · Score: 1

      You had registers? Luxury! We had one one-bit register and we had to remember its state.

      Well, I lived in a province of Canada back then, so remembering the state of the register was pretty hard to do. Was it 48 or 50, never could remember.

      --
      -- Tigger warning: This post may contain tiggers! --
  73. Re:Wow by GuldKalle · · Score: 2

    People keep saying stuff like this, but in my experience it's just not true. Right now I'm clocking Firefox at 596,900 kB commit + 75,000 kB for the plugin-container.
    I have never seen it above 1 GB, although I've only sampled maybe once/month.
    Are you using another measuring technique than I, or are you just trolling?

    --
    What?
  74. Re:Wow by Jahf · · Score: 2

    This isn't about RUNNING Firefox, but compiling/linking it. I guarantee Skyrim takes more than 500GB under that context.

    However, yes, Firefox has become exceedingly bloated.

    --
    It is more productive to voice thoughtful opinions (reply) than to judge (moderate) others.
  75. Linux PAE by DrYak · · Score: 1

    Not only, but most distribution of Linux (although not the next Ubuntu, apparently) do support PAE on their 32bits variants, and can thus use more than 4GB virtual space.

    So GCC *could* use 6GB on a 32bits machine, even if its more than 2GB.

    Whereas Visual Studio is stuck on 3GB. So you cannot compile with it on a 32bits machine.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:Linux PAE by EvanED · · Score: 3, Informative

      You need to go re-read your source on PAE (or tell them to reread their source).

      PAE does not increase the memory space available to a single process, so your statement that "So GCC *could* use 6GB on a 32bits machine" is absolutely false. What PAE allows is multiple processes to, in total, take more than 4 GB. (So you could have a 32-bit machine with 6 GB of RAM and have, e.g., two GCC processes, each taking 3 GB with no paging.)

    2. Re:Linux PAE by EvanED · · Score: 1

      ..your statement that "So GCC *could* use 6GB on a 32bits machine" is absolutely false...

      OK, there is one qualification to this statement, which is that you have to stick to a flat memory model for it to hold. By my understanding, if you could split GCC somehow and access different places in memory across segments, you might be able to break the 4 GB virtual address space barrier.

    3. Re:Linux PAE by BitZtream · · Score: 1

      On Windows, PAE + the combination of AWE (Addressing Window Extensions) allow a 32 bit process to access more than 4GB of ram indirectly, much like FAR pointers from yesteryear.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    4. Re:Linux PAE by simcop2387 · · Score: 1

      I believe that you are right, that you could do this, but it would end up requiring a different ABI in all respects. You'd either need far pointers or wide ones on the host which I don't know of any systems supporting easily, aside from DOS.

    5. Re:Linux PAE by EvanED · · Score: 1

      So while I'll admit I wasn't familiar with AWE before your post (well, it sounds vaguely familiar, but that's all), It sounds more like overlays to me. Still sounds like it's something the program would have to be explicitly written for.

  76. Re:Official bitch about firefox thread by arkane1234 · · Score: 1

    The sub 10 MB download for windows is a stub to install over the 'net. It's not the product.

    --
    -- This space for lease, low setup fee, inquire within!
  77. Too funny reading these comments by caseih · · Score: 5, Insightful

    Folks are crawling all over each other to show how ignorant they are. "I ditched firefox for Chrome cause it's lighter!" only to ignore the fact that Chrome also has the same problem with the PGO thing running out of RAM so they don't even bother with trying those optimizations anymore. "Geez Firefox needs more RAM than the kernel to compile? Something's wrong!" Yes if the Linux kernel was built with PGO on VS 32-bit it probably would run out of RAM there too. Then there's the guy that claims this PGO problem is evidence that the Firefox devs need to go back to remedial school. I'm sure he could do it far better (and avoid the PGO linking optimization running out of memory too!).

    Hilarious reading. At least I choose to laugh rather than cry at people's inability to read and understand the issues here.

    1. Re:Too funny reading these comments by ledow · · Score: 3, Interesting

      I think you miss the subtext that some of us have. If you HAVE to enable PGO in order to get a decent speed out of your binary in the first place (and that's the ONLY way you think you get that increase), then your code isn't that great in the first place (i.e. you are using lots of inefficient methods on the most-used paths of your code).

      The problem isn't DIRECTLY related to the size/quality of the codebase but the fact that they don't even CONSIDER turning off PGO because of the performance drop means they have no idea how to tune the underlying code without using PGO (and PGO-optimised code will NOT necessarily result in the best possible code for any particular user at all!)

    2. Re:Too funny reading these comments by shutdown+-p+now · · Score: 1

      I don't see why the implication here is that their code is so slow that they have to enable PGO. The problem is that they have already shipped with PGO enabled, and so, if they disable it, they will take an immediate performance hit, that will be big enough to notice, and pretty hard to catch up with (general estimates for PGO effectiveness are somewhere about 10%, though it obviously depends a lot on the product).

      And, no, manual optimization does not reduce the need for PGO - the latter is not a workaround for bad code, though it will speed it up just the same. Writing good code hand-optimized does not reduce the effectiveness of PGO (unless you write it directly in assembler).

    3. Re:Too funny reading these comments by byuu · · Score: 1

      ... wow. The reason PGO is so nice is because it reorders your human-readable code into something faster.

      Assume a switch with eight possible cases, and non-linear indices that do not allow for a simple jump table optimization. Two of them may be vastly more common than the other six, and PGO can take them out of the switch, or reorder them to the top. You can also do this by hand, but it will make your code messier and harder to maintain.

      Or take the frequency of code execution. Two routines may execute a lot, so they are stuck together in memory to aid in caching. But it may make no sense to have these two functions anywhere near each other ... say they are from two entirely different classes.

      PGO also frequently decides when to inline things or when not to, and even telling the compiler when to inline isn't guaranteed. You'd have to resort to compiler-specific attributes (always_inline/__forceinline.) And the list goes on and on.

      Taking your argument to the extreme, hand-writing your code in pure assembler can get you even more speed, and now you don't even need -O3 for decent speed. But there's a reason people use high-level languages. PGO is just one more tool to make your code more stable and easier to maintain.

    4. Re:Too funny reading these comments by jlebar · · Score: 1

      but the fact that they don't even CONSIDER turning off PGO because of the performance drop means they have no idea how to tune the underlying code without using PGO (and PGO-optimised code will NOT necessarily result in the best possible code for any particular user at all!)

      We accept patches.

  78. Re:Eg? by BZ · · Score: 4, Insightful

    > 1) What the hell are you doing with your code to be
    > that large?

    How large? It's a few million lines of C++ code, just like every other browser. What it's doing is implementing all the stuff people want to do on the web.

    > 2) What the fuck is your linker doing to do that?

    Please read up on link-time code generation.

    > 3) Why the hell didn't you see this coming and
    > prune LONG before you hit the 3Gb limit if you
    > already hit the 2Gb limit once already?

    This is an excellent question that I too am asking.

    > 4) What's the problem with compiling on 64-bit
    > computers only,

    None, except updating a large build farm from 32-bit to 64-bit can't happen overnight. Needs some staging, testing, etc.

    > You're honestly telling me that Firefox is more
    > complicated and needs more memory to compile
    > than, say, LibreOffice?

    Have you tried to compile LibreOffice with LTO and PGO turned on?

    > The Linux kernel?

    Quite possibly. The kernel is C, not C++; C++ is a lot more of a pain for compilers to deal with.

    The whole point of LTO is that you optimize your entire binary as a single object, no matter how your code is structured. It requires more memory, but can produce faster code because the compiler is able to make optimizations it can't make otherwise.

    Whether that's "crappy" is a matter of your priorities, of course. 10-25% performance improvement tends to be a high priority for web browsers, though perhaps not for KDE or LibreOffice.

  79. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    You do realize that Chrome had this same issue a few years back, right?

    Maybe you need to do some reading about how to engineer software and about the specific compiler options being used here and why they might cause a lot of memory usage?

  80. Re:whose bloat by EvanED · · Score: 1

    Interesting question. I'll get back to you.

    (They'll be large, but not tremendously large. The real problem arises because of a combination of the size and lots of template use.)

  81. Re:Wow by armanox · · Score: 1

    MacOS 10.5-6 are 64bit if you're hardware supports it (so, only 32bit on PPC G4 and Intel Core Duo). OS 10.7 is 64bit only.

    --
    I'm starting to think GNU is the problem with "GNU/Linux" these days.
  82. Re:How long would building on a 64 bit system last by caseih · · Score: 1

    From an address space POV, 64-bits vs 32-bits is 4294967296 times greater. The short answer is, not in your lifetime will it overflow the container. That said PGO looks to have reached the limit of it's current incarnation. Eventually it will just get too slow to be workable. If it really is valuable as an optimization tool, MS will have to fix it, true enough.

  83. Re:Wow by couchslug · · Score: 1

    I run 32-bit Linux with PAE, and the 4GB/process limit has "restrained" Firefox a few times.

    Funny. Sad if I didn't have 8GB (it's an old T61 so that's all I can fit), but still funny.

    --
    "This post is an artistic work of fiction and falsehood. Only a fool would take anything posted here as fact."
  84. Re:Not any better for Google Chrome by BZ · · Score: 1

    Except Chrome uses more resources, in my experience. And may or may not be faster.

    Though I'm looking at it on Mac, not on Windows, where they're just compiled completely differently (e.g. Chrome is 32-bit while Firefox is 64-bit, etc).

  85. Re:Wow by delt0r · · Score: 1

    Since i do install quite a few things via slackbuilds, do you have a list of things that don't work?

    --
    If information wants to be free, why does my internet connection cost so much?
  86. An open source project got popular by Beelzebud · · Score: 1

    Quick, spread some FUD!

  87. Re:Wow by ryanov · · Score: 1

    Near as I can tell, there is no advantage to running 64-bit unless you plan to have installed (and to use) significantly more than 4GB of RAM. At or even somewhat above that amount of installed RAM, you are at a disadvantage as everything will use more memory in 64-bit mode than in 32-bit. I have run 32-bit Linux on every laptop I've had in the last several years, 64-bit support or not.

  88. Re:Wow by armanox · · Score: 1

    64bit Microprocessors were new in 1991...I hope you're hardware isn't that old.

    --
    I'm starting to think GNU is the problem with "GNU/Linux" these days.
  89. Re:Wow by Skapare · · Score: 1

    My ASUS EEE netbook is 32-bit and only 1G RAM. The push for smaller and smaller machines (in the physical sense) is still resulting in small machines in the configuration sense (32 bits or less, 1 GB or less).

    These small machines, of course, must accept lesser functionality to remain small. If that means a meaner leaner Firefox-lite, then so be it. But don't be surprised if you find me running the lite version on my big Xeon powered 2 socket 10 core 20 thread 48GB Xfce based desktop that runs in 64-bit mode. I still code in C and use text consoles, too. I can always link with libbloat if I ever need to make my programs look big.

    --
    now we need to go OSS in diesel cars
  90. Sigularity or L4 as a browser? by mdmkolbe · · Score: 1

    I wonder if you could borrow ideas from operating systems like micro-kernels (e.g. L4) or software isolated processes (e.g. Sigularity)? It's not a project that I have the time or experience for, but I'd be interested to see the results if someone else tried.

    1. Re:Sigularity or L4 as a browser? by atisss · · Score: 1

      Sure, as soon as GNU Mach is ready, the FF devs will get inspired by it :)

  91. Re:Wow by Anonymous Coward · · Score: 2, Insightful

    Even more unfortunate that 3/4 of the whole discussion will be "Re: Wow" as everybody dogpiles unrelated replies onto the frist post, because we all know that for mod points, it's not what you post but where you post it.

  92. Re:Wow by Aighearach · · Score: 2

    Why would you choose slackware and then seek technical help? Are you sure you're their target user?

  93. Re:whose bloat by CSMoran · · Score: 1

    Thanks, but that was not my intention at all -- I have nothing against Microsoft.

    It seems to me that seeing MS-bashing in every post looks like some kind of new ./ fad, I predict in time it might become more fashionable than MS-bashing here.

    --
    Every end has half a stick.
  94. Re:Eg? by compro01 · · Score: 1

    1/2. Link time Profile Guided Optimization. Eats memory like crazy, but nets you a big performance boost on the resulting code.
    3. Dunno.
    4. Problem is that the 64-bit linker won't output a 32-bit executable.

    --
    upon the advice of my lawyer, i have no sig at this time
  95. Re:Wow by PwnzerDragoon · · Score: 1

    If you are hardware that supports it, I'd be more worried about you being Skynet. And that Skynet runs OS X.

  96. Re:Wow by M0j0_j0j0 · · Score: 1

    Yes, but how much time did Skyrim claimed from your own lifetime, see there is always a drawback

  97. Re:whose bloat by Aighearach · · Score: 1

    same result though, MS sucks, gcc wins.

    Praise Saint IGNUcius!

  98. opensource vs. closed source by DrYak · · Score: 1

    Seems ironic that the FF team is using stuff from seven years and two major versions ago while at the same time bemoaning that anybody might want to keep a version of Firefox for more then 6 weeks

    Installing a new version of Firefox is quite trivial :
    - it's opensource, meaning that it's available for free
    - since version 4, all new version are only minor improvement. (technically, it should be some subversions of 3.7.x, had they kept the same versionning scheme as before). No big architectural change since then. Version 9 might not be identical to version 4, but no big jump in between. Each new release brings only minor changes.

    Installing a new version of Vistual Studio is not :
    - it's commercial, so it costs money to get it.
    - Among critical feature changes: it completely drops suipport for some older OSes. So if Mozilla moves to a newer compiler, they need to drop support for some chunk of their userbase. How big this chunk is will influence this decision.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:opensource vs. closed source by BitZtream · · Score: 1

      Among critical feature changes: it completely drops suipport for some older OSes. So if Mozilla moves to a newer compiler, they need to drop support for some chunk of their userbase. How big this chunk is will influence this decision.

      No, it really doesn't, at least not anytime recently.

      I have absolutely 0 problem building apps that will run on Windows 95 in VS 2010. It just requires knowing WTF you're doing and understanding your tools. I doubt it, but its not out of the question that I might be able to pull off win3.1+Win32s support as well with some effort.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  99. Re:Wow by obarel · · Score: 1

    I used to think like that, but now I'm using Window ME and let me tell you, I've seen the light!

  100. LTO with GPO ? by DrYak · · Score: 1

    What's VC++ doing for Firefox that can't be done any other way?

    YUP, indeed ?

    Apparently the latest version of GCC (4.6.2) can also do Link-Time Optimisations and Profile-Guided Optimisations. This version which is also available as part of the ming toolchain, and it is even possible to cross compile from Linux 64 host to Win32 target with Ming.

    Is the performance difference between a VS2005-compiled version and a ming-gcc 4.6.2 compiled one *that* much big?!

    Or is some feature of VS critical (like direct support for COM objects in the compiler, instead of having to rely on some external library/code to support them) ?

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:LTO with GPO ? by snemarch · · Score: 1

      Also, you don't understand what COM is.

      In fairness, VC++ does have some baked-in COM magic - that's probably what DrYak was referring to.

      --
      Coffee-driven development.
  101. Re:Wow by BatGnat · · Score: 3, Funny

    You insensitive clod, I only have a 286 with 640kb, they told me I didn't need any more than that!

  102. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    You _really_ need to actually go read about the issue here.

    This is about needing that much ram with a particular set of very memory-hungry compiler options. You can build the browser in much less ram than that if you don't enable those particular compiler optimizations.

    So as far being selectively literate... are you sure that's not you?

  103. Re:whose bloat by igomaniac · · Score: 1, Informative

    You're wrong, you can easily output 32-bit binaries with a 64-bit toolchain with MSVC - even from within the Visual Studio IDE if you set up the environment from the command line and then type "devenv /useenv". However you need to be running a 64-bit Windows which presumably the Firefox buildbots aren't.

    --

    The interactive way to Go -- http://www.playgo.to/iwtg/en/
  104. The link element by tepples · · Score: 1

    We already have perfectly good Operating Systems, but now everyone is trying to make the browser into another operating system.

    Mainstream operating systems aren't "perfectly good" if they lack a sandbox in which to run untrusted CPU-independent code. The closest thing we have to that is the JavaScript, Flash, and Java applet environments. With what would you replace them while retaining the cross-platform and CPU-independent characteristics?

    What would you do if tomorrow there would be no search engine any more (no Bing, no Yahoo, no Google, no what ever you using)?

    I think I understand the sentiment of your rhetorical question. But in your proposed replacement for the web, what mechanism would you provide for finding information?

    But why there is no author tag

    My best guess is because you haven't looked up <link rev="made"> in HTML4 or <link rel="author"> in HTML5.

    no table-of-content-tag

    Are you talking about site-wide TOCs? Use <link rel="up">. Or are you talking about TOCs within a document? If so, look for a big unordered or ordered list each of whose elements has a document-relative fragment link <a href="#...">, especially those linking to the IDs of heading elements (<h1>, <h2>, and the like).

    no index-tag

    <link rel="archives">

    We already tried that with Flash, Java Applets, SL. So now we try it again, but this time it will be "magical" because it's all Html5.

    What's magical about HTML5 compared to Flash, Java, and Silverlight is multiple competitive implementations. For years, prior to the Open Screen Project, Macromedia and Adobe had been using license agreements to stifle work on a competitive SWF player.

    1. Re:The link element by devent · · Score: 1

      Why do we need a "sandbox" anyway? For years the application were running perfectly fine on the operation systems we current have. The viruses are only the result of the lack of proper updates of the system and applications (and also some idiotic design decisions like Auto-Run, hide file extensions, login-always-as-admin, etc).

      The link-tag works only for the whole document. What I'm talking about are meta-tags that adds to a web page some semantics. Like the author, the content topic, etc. What we current have are only tags for document style and structure.

      For example, my whole comment could be enclosed in a author="devent" tag, a content="comment" tag and a topic="Firefox Too Big To Link On..." tag. But we now have only 10 div tags with some ids assign to it, so the CSS can properly style the page.

      I think search for new content must be an integral part of the web. It should not rely on a third-party web page, but must be a core feature of the web. Just like name resolution is the core feature of DNS. Need to think more about it, I don't have a solution yet.

      For years Flash was pretty dominant in the web, like 99% of the browsers have Flash and if your browser or operating system not support Flash, nobody would use it. But what happened after years of dominance? Nothing at all, even Adobe now ditches Flash. Don't tell you can't build applications with Flash, that are pretty good, or that Flash is a bad technology. Flash is a super technology and you can do with it whatever you like. But after years and years of dominance it's now dying, and it was not used for anything more then annoying ads, file upload, a flash game and some promotion web sites (like for games or film sites).

      But now because you can draw some pixels in a CSS canvas, everyone thinks it will transform the web in some magical way. Sure, the new Html5 features will be used, and they are pretty good. But the web will stay in the same state as it was decades ego. That is, isolated web pages with content, without any semantics.

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  105. Re:Wow by armanox · · Score: 1

    Tired today...grammar not fully processing. Maybe I could go for having 64 bit hardware in me.

    --
    I'm starting to think GNU is the problem with "GNU/Linux" these days.
  106. win2k gaming toolset by roguegramma · · Score: 1

    The KERNEL32.DLL wrapper provided by OldBoy2k and OldCigarette also makes executables with EncodePointer/DecodePointer work in windows 2000.

    --
    Hey don't blame me, IANAB
  107. No cross compile by DrYak · · Score: 1

    Apparently the linker outputting 32bits executable is a 32bit application.

    There is no cross-linked for 32 application running in 64 bits in VS2005

    To keep with your metaphore, it would be as if the only way to link an iDevice executable would be to run a iDevice-linker on the iOS simulator application, instead of running the linker that came with OS X Lion.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  108. Why not cross-compile on 64 bit? by gweihir · · Score: 1

    If I understand the article correctly, this is only about the build-process. Why not cross-compile on 64 bit? Or is this another one of the (numerous and stupid) limitations of Windows?

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  109. Size of build != Size of executable by pslam · · Score: 2

    This is basic stuff to anyone who actually maintains a build, but Slashdot hasn't been a forum mostly populated by engineers for a number of years, now.

    This appears to be due to link-time optimization blowing up the resident memory size of the linker, taking it past 3GB (which is already a non-standard hack the 32 bit build has had to do). Firefox is large, yes, but this has nothing to do with the final binary - which appears to be about 100MB total including all libraries in the Aurora builds.

    I used to routinely run out of 32 bit address space compiling executables for a 64MB embedded ARM platform. This was due to symbol bloat, not executable size (which was 8MB). I also ran out of space compiling for a DSP with 288KB of RAM and 1MB flash, but that was mostly piss poor tools (Tasking). In fact, doesn't Chrome and even the Android sources already require building on a 64 bit host?

    1. Re:Size of build != Size of executable by dreemernj · · Score: 2

      I think Android requires 64 bit. I think Chromium highly suggests 64 bit and it won't work with PGO. And those optimizations are where the FF devs are hitting the wall.

      I'm surprised FF could still build with PGO on 32bit Windows with the 3gb switch. It seems like the project is large enough and complicated enough that it should have had problems with this a while ago. I can only guess they've modularized the code quite a bit already to try and fight it.

      At least they can still use this toolchain on 64bit Windows and get 4gb of address space there. It should buy them some time. Hopefully, they'll get some breathing room and hold out until 64bit browsers for Windows are more common. The 64bit FF nightlies seem very quick and stable to me. I am looking forward to an official release of them. And, maybe after that, Windows will get 64bit Chrome and Opera as well.

      --
      1 (short ton / firkin) = 89.1432354 slugs / keg
  110. Re:Wow by dingen · · Score: 1

    And even then they've been around for 30 years.

    --
    Pretty good is actually pretty bad.
  111. Re:Wow by habig · · Score: 1, Informative

    And we're talking about builds, not in-use resource consumption... where it behaves just like every other browser.

    Nope. It doesn't even behave like the 3.x series (of the very same browser, Firefox!) before rampant version number inflation. A perfectly serviceable "Athlon XP" based system with 750MB of RAM went from just fine to useless (in terms of firefox usage) at the version number break, under both Windows XP and Fedora. Memory footprint was my first suspect, but throwing in more RAM (up to 2.5GB now) helped but didn't make it completely better. Ironically, it's almost ok now under XP and still atrocious under Fedora.

    Something baaad happened. But who cares about old systems, right? Only users, it turns out, not people triaging bugs.

  112. Re:Wow by rcuhljr · · Score: 1
    I love my firefox, but it does in fact use a good chunk of memory. 16 tabs and a couple of days of uptime.

    WS(K) ProcessName
    1024060 firefox

    Apparently the lameness filter hates dashes.

  113. Re:Wow by sexconker · · Score: 2

    Blame MS.

    The sane option for windows from vista on would have been to deny users the choice and install a 64bit os if the hardware supports it.

    Personally I have run 64 bit since xp, although you can only call that a test, vista 64 was ready for all.

    Yes I know, the 1 in 16384 people that insist on having some old POC device. Well they can keep an old machine around for it if it is that important.

    The better option would have been to deny users the choice and only offer 64-bit builds of Vista and 7.
    "But it doesn't work with my 14 year old scanner!!!" Then keep using Windows XP?

    There were already growing pains with Vista (shitty GPU drivers from AMD and Nvidia, a new audio framework, and users not being administrator by default), so it would have been the perfect time to force everyone to move to x64. They couldn't force people to switch with 7 because they wanted to get people off of Vista ASAP (even though Vista itself was fine). Oh well, hindsight is 20/20 and what not.

    It would be cool if there was a solution to properly handle a 32-bit driver in a 64-bit host environment, but there isn't. (Is there? Even if you use a 32-bit VM on a 64-bit host, you can't do shit.)

  114. Re:Wow by sexconker · · Score: 1

    This isn't about RUNNING Firefox, but compiling/linking it. I guarantee Skyrim takes more than 500GB under that context.

    However, yes, Firefox has become exceedingly bloated.

    500 GB?
    Well shit. I thought I was fine when I built my desktop with 16GB. Well, it was 2 months ago, I guess it is time for an upgrade.

  115. Development Community by ZombieBraintrust · · Score: 1

    The compiler part is an issue because Firefox is open source. They don't want to force the Firefox development community to upgrade to new computers.

  116. Re:Wow by icebraining · · Score: 2

    Iceweasel, 35 tabs open, 1 week uptime, 352MB of resident memory ;)

  117. Re:Wow by miserere+nobis · · Score: 1

    YM every other browser that, if I accidentally forget and leave it open with a few tabs on different websites overnight, will have become unresponsive and eaten half of my system memory by the time I come back in the morning? FF is noticeably different than any other browser when it comes to in-use resource consumption, in my experience, not that it has much to do with the original story.

  118. Re:I know I'm pointing out the obvious here... by DeathFromSomewhere · · Score: 2

    Damn kids and their PGO giving double digit perf increases! Get off my lawn!

    --
    -1 overrated isn't the same thing as "I disagree".
  119. AC has this right. by rdebath · · Score: 1

    If Microsoft encountered this problem while compiling a windows component they just turned PGO off. End of problem.

  120. Re:Wow by armanox · · Score: 1

    64bit computing yes, hence why I specified microprocessors. I really hope that his hardware isn't as old as 64bit computing....

    --
    I'm starting to think GNU is the problem with "GNU/Linux" these days.
  121. Re:Firefox will die by JoeSchmoe007 · · Score: 1

    Can you elaborate? Chrome already supports AdBlock

  122. Re:Wow by omnichad · · Score: 1

    I know nothing about this, but with X being a display protocol, couldn't you run X in 64-bit and connect to it from a 32-bit app just fine?

  123. Re:whose bloat by marcosdumay · · Score: 1

    No C++ is not one of the culprits.

    That is because this optimization happens on link time, and has no relation at all with the complexity of the compiler.

  124. Re:Wow by TheRealMindChild · · Score: 2

    It would be cool if there was a solution to properly handle a 32-bit driver in a 64-bit host environment, but there isn't. (Is there? Even if you use a 32-bit VM on a 64-bit host, you can't do shit.)

    In the beginning, Microsoft used Thunking to be able to use 16-bit drivers (and other DLLs) on a 32-bit system (Windows 95). This halted in Windows 98 (driver wise) due to horrible stability problems. Eventually, Microsoft moved to Windows on Windows (WOW) which provided an adequate environment for 16-bit apps to run on 32-bit Windows NT. However, if you have a 64-bit version of Windows, you don't have WOW, but WOW64, which runs 32-bit apps on 64-bit Windows, and has no support for 16-bit Windows applications.

    --

    "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
  125. Why not modularize and use dynamic linking? by Theovon · · Score: 1

    My guess is that this is just a Visual Studio limitation, in terms of how much RAM their tools need to link an executable that, ultimately, will require much less memory to load and run.

    But what I'm wondering is why they don't switch to some dynamic linking? Modularize it into DLLs (or equivalent), so that each can be linked separately at compile time, and have all these modules pulled in at runtime. It really won't slow down loading much at all.

    The main objection would be that this is impossible because Firefox is much too spaghettified in terms of how different components communicate. Components would have to be rewritten so that they're always accessed through a simpler interface.

    1. Re:Why not modularize and use dynamic linking? by snemarch · · Score: 1

      But what I'm wondering is why they don't switch to some dynamic linking? Modularize it into DLLs (or equivalent), so that each can be linked separately at compile time, and have all these modules pulled in at runtime. It really won't slow down loading much at all.

      Except that they used to do that, and pulled a lot of code back into a monolithic xul.dll in order to improve load speed. Has to do with how the PE loader does on-demand page-in of executables, and how LTCG+PGO (apart from other optimizations) can order pages for execution locality.

      --
      Coffee-driven development.
  126. Fork it by Zoxed · · Score: 2

    I have an idea: why not fork Firefox and create a leaner/faster just-a-browser and cut out all the excess junk.
    And it could be named after some sort of animal or bird that comes out of ashes maybe ?

    1. Re:Fork it by Creepy+Crawler · · Score: 1

      I like that idea.

      Lets call it Flaming Chicken.

      bok bok BKOK!

      --
    2. Re:Fork it by wideBlueSkies · · Score: 1

      I remember FF1. Small, fast, lean. (I still have the 1.0 T-shirt too).

      We need to get to the point where we can merge the small footprint and agility of FF1 with the standards compliance of more modern FF . Also security stuff, keeping that is important.

      What causes the bloat and huge memory? Plug in support? Get rid of most of it.

      Seriously, you FF guys think that you're competing by adding in all the stuff and bumping up major version numbers every time. I'm just one guy... but let me tell you something. From the Mozilla days... before there was FF, I was using the browser to try to get away from IE and netscape. Thanks to FF I have been able to limit my use of IE to only a handful of times a year, since 2003. I've been off IE, and i laughed at Chrome.

      I've been a big advocate of your project over the years, and am responsible myself for at least 300 converts.

      But guess what... I'm stuck on 3.x and don't want to move. I've tried a couple of the new FF browsers and I hate huge memory usage and the new default GUI (why can't you keep MY settings??) ... oh and the crashing. I hate the crashing and freezing. Nothing says suck to me more than trying to page down a page in FF on a brand new 8 core CPU (16 GB ram), and having it jump and jolt like as if I were running XP on a 486. Chrome doesn't do that. For all the crap THEY have under the hood, it doesn't jump when I page.

      Didja get that last point? I haven't used another browser besides FF since 2003 - until this year .

      Good Job FF Team. Let me know when the browser is lean and fast again.

      --
      Huh?
  127. Re:whose bloat by BitZtream · · Score: 1

    You can't get one of those from Microsoft

    Uhm, yes you can. I do it all the time. Its been that way for years. Since at least VS2k5, I don't remember it in 2k3 though.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  128. Re:whose bloat by BitZtream · · Score: 1

    ...

    Which can also use a 64 bit compiler to compile 32 bit applications ...

    Its really fucked up that you think GCC is anything comparable to the MS compilers. GCC is basically the worst compiler on the planet that is known by more than 3 people.

    Intel's compiler is the cream of the crop, MS's is a comfortable second, GCC is a distant last as far as performance, code output and all around quality.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  129. Re:Wow by Drinking+Bleach · · Score: 1

    I would be dismayed if Skyrim really took more than a couple hundred megabytes to compile, given that you're only compiling the engine, which is likely small and even a piece of shit computer from 10 years ago could probably compile it in under 30 minutes. The game's assets (music, graphics, whatever) have no bearing on this.

  130. Re:Official bitch about firefox thread by omnichad · · Score: 1

    The main install for Firefox is now 14MB in the latest version, but it's not a stub install. I've run the installer just fine on an unconnected PC. On the other hand, updates come out so fast, that you could almost consider the download copy a "stub install" that also happens to be a full install of Firefox that then auto-updates over the Internet.

  131. Re:whose bloat by jlebar · · Score: 1

    Are you sure it's not invoking a 32-bit linker? Can you show me some output which convinces me that you're right?

  132. How about making a 64-bit Firefox by winspear · · Score: 1

    Its time to make the 64-bit Firefox a reality. It would take the same amount of work needed to make a 32-bit compile on the 64-bit OS. Go..Mozilla Go...

  133. Re:Wow by Anonymous Coward · · Score: 3, Informative

    Making the usage of Firefox fast is the whole point of PGO, a process that uses up orders of magnitude more when compiling and linking an executable than without PGO. So, in order to get the fastest speeds out of the Firefox binary, the Firefox build process optimizes and uses lots of RAM in the process. The problem is that the MSVC linker is 32-bits, so the *linker* is running out of memory ONLY WHEN FIREFOX IS COMPILING AND OPTIMIZING. The executable that is generated is not as large, does not use as much memory, and is faster than if Firefox was built with a "straight" boring old build process.

    The whole point of this exercise is to save assholes like you more time by making your browser faster and more responsive so you can post snarky criticisms of Firefox (without understanding the problem) faster.

    Your welcome, asshole.

  134. Re:whose bloat by roca · · Score: 2

    You can't. Microsoft simply doesn't offer a 64-bit linker that can produce 32-bit code.

  135. Re:Wow by mark-t · · Score: 1

    I seem to remember issues with FreeCAD and OpenCASCADE. There were about half a dozen or so others.... I don't recall the names of any of the others offhand.

  136. Who the Frackin Cares by DalDei · · Score: 1

    This only effects builders of FF not users. If they need a 64 bit system to build their own code who the hell cares ? Lame++

    1. Re:Who the Frackin Cares by shish · · Score: 1

      Nerds care, and as much as the site has been trying to pander to the masses, nerds still appreciate "Slashdot: news for nerds" running the occasional nerdy story :P

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
  137. Re:I know I'm pointing out the obvious here... by BitZtream · · Score: 1

    And that is supposed to make it OK?

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  138. Re:whose bloat by gbjbaanb · · Score: 1

    I suppose you could use a VM based language where the optimisation takes place at run time instead, but they're trying to do all that in one step where it affects the developer (who can take the need to have a super computer to build) rather than the user (who doesn't want to have a super computer to run it), or an interpreted language where you have to write a VM to run it to get any form of acceptable performance.

    Or you write it in something like C++ and complain that the optimiser tool uses too much memory itself (or that the developers didn't modularise it sufficiently)

    Either way, the FQA is a terrible rant with plenty of over-exaggerations, inconsistencies and 'bad things' that were obsoleted decades ago. Ignore it and hope it goes away, or read this for some rebuttals.

  139. Re:whose bloat by Murdoch5 · · Score: 1

    To branch out more, it's really complaining against using bulky languages and IDE's rather then good old C / Asm and a console window.

  140. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    Well... when two different programs trying to implement the same set of functionality have the same issue with the linker, you _could_ assume that both development teams are incompetent. Or you could assume that the functionality involved takes a lot of code and the linker doesn't scale well. Your choice.

  141. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  142. Re:whose bloat by shutdown+-p+now · · Score: 1

    When they speak of using VS2005 to build it, it effectively means Visual C++ 8.0 (the command line compiler). I mean, do you seriously think their build system actually launches VS and emulates pressing Ctrl+Shift+B?

  143. Re:whose bloat by shutdown+-p+now · · Score: 1

    You mean, there are people who read C++ FQA and actually take it seriously?

  144. Re:whose bloat by snemarch · · Score: 1

    No, it doesn't, it speaks about the amount of memory required when you try doing code optimization across an entire program image, instead sticking to optimizations inside translation unit boundaries.

    --
    Coffee-driven development.
  145. Re:How long would building on a 64 bit system last by shutdown+-p+now · · Score: 1

    GP is not talking about running a 64-bit process on a 64-bit OS. You can't do it with VS - it has a 64-bit compiler and linker, but they only output IA64 or amd64 binaries, and Mozilla needs an x86 binary.

    However, when you run a 32-bit linker on a 64-bit OS, you get an extra 1Gb of address space (because the OS doesn't need the top 1Gb for itself).

  146. Re:Wow by Robert+Zenz · · Score: 1

    You mean some people still run Windows?

    FTFY

  147. Re:Oh, now we admit it is getting bloated by the_leander · · Score: 1

    512mb is plenty even for modern browsers if you pick the right one. Opera 11 worked just fine on an Eeepc 701, for instance (the last version of Firefox that worked on it was 2.0). Likewise Opera mobile works superbly on this Archos g9 80 tablet, which also only has 512mb of ram.

    --
    regards, the_leander
  148. Re:Wow by shutdown+-p+now · · Score: 1

    I suppose you couldn't enchant my toolchain? The dull old linker barely links Skyrim...

  149. Works for me: by igomaniac · · Score: 1

    hello.c:

    #include
    #include

    int main(int argc, char *argv[])
    {
        printf("Hello world!\n");
        return EXIT_SUCCESS;
    }

    hello.bat:

    @ECHO OFF
    SETLOCAL
    CALL "%VS80COMNTOOLS%..\..\vc\vcvarsall.bat" x86
    cl /MT /c hello.c
    ENDLOCAL
    SETLOCAL
    CALL "%VS80COMNTOOLS%..\..\vc\vcvarsall.bat" amd64
    link /MACHINE:x86 /LIBPATH:"%VCINSTALLDIR%\lib" libcmt.lib hello.obj
    ENDLOCAL

    output:

    C:\Project>hello.bat
    Setting environment for using Microsoft Visual Studio 2005 x86 tools.
    Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86

    Copyright (C) Microsoft Corporation. All rights reserved.

    hello.c
    Setting environment for using Microsoft Visual Studio 2005 x64 tools.
    Microsoft (R) Incremental Linker Version 8.00.50727.762
    Copyright (C) Microsoft Corporation. All rights reserved.

    C:\Project>hello.exe
    Hello world!

    --

    The interactive way to Go -- http://www.playgo.to/iwtg/en/
  150. Re:Wow by Rich0 · · Score: 1

    The better option would have been to deny users the choice and only offer 64-bit builds of Vista and 7.
    "But it doesn't work with my 14 year old scanner!!!" Then keep using Windows XP?

    The reason Windows is so popular in the corporate world is because they don't do stuff like what you suggest. You're thinking about a $50 scanner, but maybe in the corporate world they have 300 $5000 multi-function devices. Or, maybe they have 100 $100k mass spectrometers. Or, maybe they've got a $15M MRI machine. If your vendor doesn't release new drivers then you can't upgrade your OS. Sure, you can run XP for a while, but not forever if you want security patches. Do you really want to throw away a $15M MRI machine that works fine because your OS isn't getting security updates any longer?

    Microsoft has generally supported their OS FAR longer than just about anybody else, and this is one of the reasons that they're so hard to displace. In the linux world we call "long term support" a few years. Microsoft still supports XP, and that was out not long after Y2K. Think about what you were doing around Y2K...

  151. Re:Wow by bstag · · Score: 1

    This post has absolutely no value at all, but its +5 insightful.. I mean wholly fucking anal drip... Either the mods today should be fucking ashamed, are this cocksucker has sock puppets that he uses to mod his own posts up.

    anal drip... hmm bad low calorie chips.

  152. Re:Works for me ... w/o link time code generation by igomaniac · · Score: 1

    Ah, sorry -- I see the difference now, you're using link time code generation which the x64 bit linker is not capable of when the machine type is x86.

    --

    The interactive way to Go -- http://www.playgo.to/iwtg/en/
  153. Re:Wow by Z00L00K · · Score: 1

    And it's the linking, not compilation that's the problem.

    However it also means that it may be a question of the application structure rather than anything else. Time to see how much that can be broken out to shared libraries (DLL:s) and also see how much that shall be public and how much that shall be internal to each DLL.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  154. Re:I know I'm pointing out the obvious here... by Kommet · · Score: 2

    And the trolly troll is trolling.

    Unless you regularly compile optimized builds of Chrome, Opera, Safari, or IE, kindly STFU.

  155. Re:whose bloat by jthill · · Score: 1

    That FQA betrays vast ignorance about not just C++ but actual computers. His very first complaint presumes you'll just naturally not know anything at all about the language, and just naturally not bother to learn anything about it either. Seriously, I am not making this up: even in C what he's complaining about isn't a problem for anyone who cares. Spot-checking says the pattern continues. I checked half a dozen pages, and every one was well larded with ignorance and cheap shots.

    --
    As always, all IMO. Insert "I think" everywhere grammatically possible.
  156. Re:Wow by Nutria · · Score: 1

    FF8 on 64-bit Linux was using 3.2GB RAM just now before I closed a FF window that had a bunch of dynamic pages.

    Real RAM usage shot up to 7.3GB and virtual memory exploded to 22.1GB. The kernel OOM killer finally saved the system.

    --
    "I don't know, therefore Aliens" Wafflebox1
  157. Re:Oh, now we admit it is getting bloated by frovingslosh · · Score: 1

    Of course they are not the same. But they are not unrelated either. As a program grows in memory footprint it generally takes more resources to compile and link. That sure looks like what is happening here. Your flaming name calling is completely inappropriate, you should be able to make your point without it.

    --
    I'm an American. I love this country and the freedoms that we used to have.
  158. Points buried in the vitriol by tepples · · Score: 1

    'bad things' that were obsoleted decades ago

    I've already e-mailed Yossi about a couple points that C++11 has obsoleted, such as the former lack of practical syntax for closures ("functionoids" or "functors").

    or read this [stackoverflow.com] for some rebuttals.

    The highest rated answer there admits that Yossi has a few good points buried in the vitriol. Implementing a good compiler or debugger for C++ is far more difficult than for some other languages, as is making meaningful error messages. There is no standard subset with well-defined failure modes. It's not a good choice of language for anything needing reflection. Even distributing binaries to the public becomes a chore unless the market have decided to become a platform monoculture.

    1. Re:Points buried in the vitriol by gbjbaanb · · Score: 1

      all distribution tot he public is a chore:

      either C/C++ where you build for each platform
      or .NET where you only have 1 platform, but the user still has to download the required .net runtime and security patches.
      or Java where the user has to download the required JRE

      You're probably best off with the Linux model where the code is downloaded and compiled on whatever platform the user is running.

      I think the error message thing is just for templates too, as they're notorious to make easy to read. I've seen error messages for java apps where you have a stack trace that tells you nothing useful, and .NET exceptions that boil down to a Win32 structured exception code. None can be described as perfect.

      So, yes, quite right - no language, including C++, is perfect. The FQA doesn't take that view though, it assumes C++ is the worst thing ever and doesn't try to hide its lack of objectivity. He hasn't exactly done a FQA for VB6 or PHP now has he.

    2. Re:Points buried in the vitriol by tepples · · Score: 1

      C/C++ where you build for each platform

      Is Linux one platform, or is it a platform for each distribution? Is it best practice to statically or dynamically link to the compiler publisher's implementation of the standard C++ library?

      You're probably best off with the Linux model where the code is downloaded and compiled on whatever platform the user is running.

      Some publishers of proprietary software aren't going to agree to this, especially in the case of A. recently released games, B. playback software for streaming major-studio movies over the Internet, or C. tax return preparation software. In each of these cases, the trade secret status of the source code is essential.

      He hasn't exactly done a FQA for VB6 or PHP now has he.

      Someone else has for PHP. It just isn't called FQA because it doesn't run in parallel to a well-known PHP FAQ. The other problem with PHP involves not being able to use new language features when you have to run on shared web hosting providers' outdated versions of PHP.

  159. Not always that easy by DragonHawk · · Score: 1

    Anyone running anything older than XP-SP2 is either a dedicated hobbyist or a criminally negligent system administrator

    At $WORK, we've got a CNC machine that runs Win 2000. Only. Moving to a newer Windows release requires replacing the entire control, to the tune of $20K. Guess what we're still running!

    (One could argue that means it's a crappy product. Well, I'd agree. But in my experience, most computer products are crappy. Which leaves those of us wanting to get actual work done stuck holding the bag.)

    That particular computer doesn't need a web browser, so no loss, but it's not hard to imagine a scenario where one would want HTML rendering, maybe even an interface to some web-based business automation system.

    --

    dragonhawk@iname.microsoft.com
    I do not like Microsoft. Remove them from my email address.
    1. Re:Not always that easy by plover · · Score: 2

      You want scary? At $CLINIC we use, they run Windows NT 4.0 on their ultrasonic diagnostic equipment, because the system was certified only with that OS at whatever the patch level was when they tested it. While that may seem innocuous, the damn thing is on the freakin' network, because the doctors want to email images to their patients!

      I sure don't want me or my family to be the ones to have to file the lawsuit when a "zombie" actually causes someone to die from a faulty diagnosis, or because some machinery failed due to a DDoS attack originating on their network.

      --
      John
  160. Re:whose bloat by igomaniac · · Score: 1

    Here: http://msdn.microsoft.com/en-us/library/5wy54dk2(v=VS.80).aspx ... However it does not support link-time code generation when you're linking object files in a non-native format.

    --

    The interactive way to Go -- http://www.playgo.to/iwtg/en/
  161. Why sandbox by tepples · · Score: 1

    Why do we need a "sandbox" anyway?

    Because one can't know whether or not a given downloaded program is going to deface or disclose the files in one's home directory. The ideal way would be to model what threats are possible and let the user restrict an untrusted application from doing sensitive things. When run for the first time, a program would list the sensitive things that it plans to do. Android, OLPC Bitfrost, and the new capability environment in Mac App Store start to do this.

    The viruses are only the result of the lack of proper updates of the system and applications

    How can one perform "proper updates" in the face of zero day vulnerabilities, which are exploited before the publisher issues a patch? Sandboxing at least reduces the attack surface until then.

    and also some idiotic design decisions like Auto-Run

    That was added after numerous support calls from people who observed that the computer didn't appear to respond after the user inserted removable media. If, say, a DVD player appliance didn't respond after a disc was inserted, wouldn't the average end user consider the player broken or at least get confused? How should operating systems have been acknowledging the insertion of media without exposing the user to execution of unwanted software that can harm the user account even if not an administrator?

    login-always-as-admin

    Microsoft took the first step with UAC in Windows Vista by turning administrators into the equivalent of a sudoers group. But UAC/sudo behavior isn't going to help when fake antivirus and other scareware manages to trick members of the sudoers group into elevating to install what they think is a codec to watch a video. Seeing the "Run automatically on startup", "Read process list", "Force other processes to close", "Cannot be uninstalled without wipe", and "Intercept file system" capabilities on a video codec instead of "Decode media files" might raise a red flag.

  162. Search as integral by tepples · · Score: 1
    I split the digression to the application sandbox capability of a modern web browser from the search capability.

    For example, my whole comment could be enclosed in a author="devent" tag, a content="comment" tag and a topic="Firefox Too Big To Link On..." tag.

    They're working on that, and it's called microformats. I'll grant that it's not there yet.

    I think search for new content must be an integral part of the web.

    It is an integral part of existing web sites. For example, Phil's Hobby Shop supports full-text search of every product's description. It's just that I can't see a way for web sites to federate on this, especially as web sites try to become more "sticky" and keep users from navigating away to view a competing site's ads.

  163. Re:Wow by sexconker · · Score: 1

    In the corporate world they also have companies behind those expensive machines that can write a proper driver (when forced to).
    In the corporate world they also have people who will say "We should not upgrade to X because of Y".
    In the corporate world they also have bosses who will say "Why upgrade to X? Our Y already works, why spend $Z?".

    XP will get security updates until April of 2014.
    I'm pretty sure there's no one in the world that has anything that meets all of the following criteria:

    1) Doesn't have a 64-bit driver
    2) Is so complicated/critical/magical that no one can write a 64-bit driver for it
    3) Can't be run on a locked-down 32-bit system past April, 2014 because of security FUD
    4) Had enough support to make it work on 32-bit Vista/7

  164. Re:whose bloat by ohnocitizen · · Score: 1

    I too would pay obscene sums of cash to watch obese people play musical chairs. I don't think reality tv even needs an excuse anymore, we could float this in front of a producer and when they woke up from their orgasm induced concussion, they wouldn't be able to sign the appropriate papers fast enough. "Biggest Loser: Musical Chairs Dallas" - coming to a small screen near you.

  165. Re:Wow by ewanm89 · · Score: 1

    Actually, Skyrim uses more and more the more you travel and explore. Which is why some of us enabled the use of >32bit addressing by patching the binary.

  166. Re:Wow by westyvw · · Score: 1

    I am in the same boat. Couple of hours in (started with a restored session) 8 tabs, 3 plugins. 256 megs. Not anywhere near what other people see. Wonder if using Noscript and blocking unnecessary javascript helps?

  167. Re:Wow by westyvw · · Score: 1

    Let me know when there is a decent alternative. If Rekonq wasnt so crashy I would consider it.

  168. Re:whose bloat by spongman · · Score: 1

    Microsoft simply doesn't offer a 64-bit linker that can produce 32-bit code

    false.

    you can link x86 code using the 64-bit link.exe

    just use the 32-bit compiler to compile to .obj, then use the 64-bit linker (with the /machine:x86 switch) to link the .objs.

  169. Re:Obligatory by rubycodez · · Score: 1

    I'd be interested in hearing about any x86-64 PC / Workstation motherboard that took over 256G RAM, haven't seen any. 192GB is the most I recall seeing.

  170. Re:Wow by knorthern+knight · · Score: 1

    > I know nothing about this, but with X being a
    > display protocol, couldn't you run X in 64-bit
    > and connect to it from a 32-bit app just fine?

    Emphatic yes. One day I decided to do a pure 64-bit Gentoo linux install (pure as in no multi-lib). I use one freeware Windows app that has to be run under WINE. Then I found out the hard way that WINE will not build under a 64-bit-only system. I ended up building a 32-bit Gentoo guest under QEMU-KVM. Wine runs on the 32-bit guest, using the display of the 64-bit host. A chroot would probably also work.

    --

    I'm not repeating myself
    I'm an X window user; I'm an ex-Windows user
  171. Re:Works for me ... w/o link time code generation by jlebar · · Score: 1

    Bingo. And, of course, link-time code generation is essential for PGO.

  172. bad linker by khipu · · Score: 1

    That's probably more a limitation of Microsoft's linker than of Firefox. Linking, at its heart, is a bit of sorting, filtering, and merging and can be done in fairly modest amounts of memory even for large programs.

  173. Re:Wow by anubi · · Score: 2

    I still get calls to support industrial processes driven by DOS based machines.

    I am an old guy, raised with these beasts. I know the innards of these things like the back of my hand.

    The harbinger of death seemed to be a dearth of disk drives compatible with old DOS machines. Even my stream of disk drives from the recycler is drying up. But it looks like SanDisk and Syba have pulled me and my customer's arse out of the fire again.

    Its hard to throw away an enormous expensive piece of machinery because its controller ( which has been doing exactly what it needed to do for 25 years ) isn't supported anymore.

    --
    "Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]

  174. Whoosh me, but... by justthinkit · · Score: 1

    The 640 remark was made in 1981, while the 286 -based (PC AT) came out in 1984. The IBM PC was 8088/86 based and could only address 640KB in main memory.

    --
    I come here for the love
  175. Re:Wow by Anonymuous+Coward · · Score: 1

    but am unsure how I would properly connect the 32-bit system to the 64-bit one for X apps

    That's trivial -- you just have to mount /home and /tmp (either as normal partitions or with --bind) inside the chroot, and they will find the X11 socket and the .Xauthority file just fine.

    But you don't really need a chroot for that. You can install the 32bit libraries and ld-linux.so somewhere and then starting them with a script like LD_LIBRARY_PATH=/32libs /32libs/ld-linux.so "$@".

  176. 1080p by Niscenus · · Score: 1

    What, uh, what little endian 1080p-capable codec are you using?

    --
    "Yeah...it was the numbers that were irrational, not the murderous cult of vegetarians...." -- Hippasus of Metapontum
  177. Re:whose bloat by zippthorne · · Score: 1

    ... this feature which can give double-digit percentage speedup because it takes a lot of memory" is stupid. LTO is costly -- period. It's just very worth it.

    That's it?? That's kind of meh, when you think about it. "Speed up" shouldn't be measured in percents. It should be measured in decibels, to match the way users experience it.

    --
    Can you be Even More Awesome?!
  178. Re:I know I'm pointing out the obvious here... by idbeholda · · Score: 1

    I'm pretty sure I'm not the one that's being selectively literate. If you're having that much trouble with a compiler, then you either need to reduce as many lines of code as possible, while still keeping the features intact, or you need to use a less resource intensive compiler. It's that simple, and still goes back to what I initially said.

    As for Kommet calling me a troll and adding me to his foe list... Seriously, dude, where'd you get your degree from? Assmad University?

  179. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    The first of those is what's being done, of course. What made you think it's not?

  180. Re:I know I'm pointing out the obvious here... by idbeholda · · Score: 1

    The fact it happened twice is a dead giveaway.

  181. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    You keep missing the fact that there are benefits to having as much code as possible in a single library in this case. So the first time, the address space available was increased. The second time, that will happen as well, and some code was moved out of the library to give time for that to happen.

    Long-term, a different solution is needed, of course. At that point, the costs of splitting the code out may have to be borne after all (not the cost of doing the work, but the cost of the resulting code being slightly slower).

  182. Re:Wow by unixisc · · Score: 1

    A lot of people still have CPUs that are still 32-bit only, and haven't grown their RAM beyond 3GB. That's one of the biggest hurdles in going from XP to 7.

  183. Re:Wow by unixisc · · Score: 1

    One would have to specify x64 processors to qualify them as new. Otherwise, every RISC CPU had become 64-bit before - MIPS R4x00, Alpha AXP, PA 8x00, Poewr, UltraSparc. Two of them even ran Windows NT, so MS did have the opportunity of having a 64-bit OS ready in advance for the server & workstation markets on RISC, but never took it.

  184. Re:Wow by Rich0 · · Score: 1

    In the corporate world they also have companies behind those expensive machines that can write a proper driver (when forced to).

    Uh, clearly you've never owned one of those high-end machines. It is pretty common for them not to receive long-term support, since the vendor wants you to buy a new one, and the people who buy those machines rarely have any IT background and ask questions in advance like "how long will you support the OS?"

    In the corporate world they also have bosses who will say "Why upgrade to X? Our Y already works, why spend $Z?". XP will get security updates until April of 2014.

    Yup - and we'd be running XP on such a machine until around then. However, what if the machine still isn't ready for replacement then? If you want it on the network then there are a lot of issues with not upgrading the OS.

    3) Can't be run on a locked-down 32-bit system past April, 2014 because of security FUD

    Well, we've certainly taken this approach for our NT-based machines. However, this is really not a great position to be in. Good security means defense in depth, and you just don't have that when you're running an OS that hasn't been patched in 10 years. The world's greatest perimeter firewall won't help you if somebody plugs a flash drive into the thing.

    But, you've actually made my point for me in some sense - the reason that XP is supported until April 2014 is because MS does bend over backwards to provide long-term support for their OSes, and APIs. Why would a company drop 32-bit support if they're willing to support a product for almost 15 years in the first place?

    I'm sure they'll drop 32-bit at some point, but I can't imagine that it costs them a huge amount to keep it as an option, and as long as the benefits outweigh the costs they'll do it - even if it makes the purists cringe. MS has never done anything for the purists - if you could cram 4GB of RAM onto an old 25MHz 486SX motherboard I wouldn't be surprised if Vista booted just fine on it (eventually), even without the floating point instruction set (I have to admit I'm suddenly morbidly curious).

    Sure, on my desktop at home I've been running 64-bit linux since the socket 754 days. However, at work around the same time I was still nursing a VAX along to the graveyard. That's just the nature of long-term capital investments.

  185. Re:Wow by TheRaven64 · · Score: 4, Insightful

    Not that they shouldn't care, mind you, as that is some seriously monolithic code.

    They're talking about using link-time optimisation (LTO). That means that you compile each compilation unit to an intermediate representation and then run optimisations on the whole program. This takes a staggering amount of memory (which is why no one bothered with it off high-end workstations with very expensive compilers until very recently), but can sometimes be worth it. It actually helps modularity, because you can keep your source code nicely separated into independent components without worrying about efficiency, and you can do better data hiding.

    As a trivial example, consider an accessor method. Something like getFoo() { return foo; }. Without LTO, you'd want to put the declaration of the class and this method in the header so that every compilation unit could separately inline it. This reduces modularity, but it saves you the cost of a function call just to access a field in a structure. With LTO, you can make the class opaque (if you're a C++ junkie, using the Pimpl pattern, if you're a C programmer by just not declaring the struct in the header). You'll get a single copy of the function emitted, and then the link-time optimiser will inline it everywhere.

    --
    I am TheRaven on Soylent News
  186. Re:Wow by TheRaven64 · · Score: 2

    There is no advantage to running 64bit LINUX....FTFY

    Not true at all. There are several advantages to running code compiled for x86-64 instead of for x86. If you're on *NIX, then one of the big ones is that x86-64 has rip-relative addressing, while x86 lacks eip-relative addressing. In position-independent code, this means that any call to a static function or access to a static variable is cheaper. Windows doesn't use position-independent code for DLLs on 32-bit (it tries to load them at a fixed address and performs load-time relocations if it can't), so that's not a problem, but on *NIX.

    There are other advantages. One of the big ones is that anything targeting x86-64 will default to using SSE for floating point instead of x87. This is generally at least slightly faster in the silicon, but it's also much easier to generate good SSE code for the register-register SSE coprocessor (with lots of registers!) than for the stack-based x87 (with only a handful).

    Then, of course, there's the fact that you have a lot more general-purpose registers with x86-64, so you need far fewer stack spills to do the same thing.

    --
    I am TheRaven on Soylent News
  187. Re:whose bloat by luserSPAZ · · Score: 1

    This doesn't work with WPO/PGO, which makes it useless for the purposes of this post.

  188. Ironic by Rambo+Tribble · · Score: 1

    It should be recalled that Firefox, which started as "Phoenix" and then became "Firebird" before becoming FF, was the lightweight, stripped-down, modular alternative to the Mozilla Suite. Do age, feature creep and the consequent bloat eventually make a mockery of all such aspirations for lean code?

  189. 3GB limit by DrYak · · Score: 1

    A process still uses 32bit memory addresses to reference memory. This means that a process can still only address 4GB of memory.

    ...in the same segment.

    But currently, because of lack of proper PAE-support, the WHOLE virtual memory rande is limited to 32bit.
    This is normaly splitted in 2x 2GiB chunks. 1 chunk for the application, 1 chunk for the kernel.
    With the 3GB switch mentionned, this is split into 3GiB for apps and 1GiB for kernel.

    So even if you could addresse several different segments of 4GiB each, the virtual memory systems behind limits you to either 2GiB or 3GiB memory max for all applications altogether.

    Meanwhile, a PAE-enabled Linux could address 64GiB of Physical RAM, all this in a 56bits virtual space.

    You could put your 32bits 4GiB segment wherever you want in this virtual space.

    If you were to use more than 32bit memory addresses to get more memory, suddenly you aren't a 32-bit OS anymore.

    you get a 32bit address, relative to the base of the segment.
    the segment tehmselves could lie anywhere in the virtual address space.

    In segmented memory model (i.e.: using C/C++'s "far" pointer), have the segments point to different chunk of 4GiB each and you can address more than 4GiB from a 32bits application.
    (have the processor's DS, ES, FS segment register all point to different segments, for exemple)

    That's exactly how 16bits processors have been addressing more than 64k in the dawn of intel CPUs. (Except that back then there wasn't a virtual address space. segment and pointer register did directly address RAM. the 32bit 386 introduced the concept of virtual memory).

    In a flat memory model (all segment register point to the same space, which back when "flat model" was invented, should have enclosed the whole memory, but that's not the case on a 32bit app on a PAE-enabled kernel), indeed no segment are really used and an application can only manage 4GB at a time.

    Still, these 4GB are more than the 2GB/3GB provided by a non-PAE kernel.
    That extra 1GiB more than the /3GB switch would have probably helped VS2005 to do its stuff.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  190. COM by DrYak · · Score: 1

    In fairness, VC++ does have some baked-in COM magic - that's probably what DrYak was referring to.

    Yup indeed.
    - Under VC++ you just #import a COM, and then have an object behaving automagically just like a regular C++ object.
    - Under GCC you have to rely on stuff like disphelper to call COM objects easily with run-time bindings.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  191. Opensource by DrYak · · Score: 1

    You might be able to produce code running on Win95 with proper tweaking. You might even be able to contort VS2010 into producing 16-bit realmod 8088/8086 code. But you're not alone.

    FireFox is open-source, meaning that it is developped and tested by a myriad of developpers and amateurs all around the world.

    Moving from VS2005 to VS2010 would require either :

    - forcing all of them to buy VS2010 and forcing them to tweak it so development on Win2000 to WinXPSP2 can continue.
    - forcing all of them to buy VS2010 and droping support for Win2000 to WinXPSP2.
    - forcing all of them to buy VS2010, having it run in un-tweaked mode producing tests on WinXPSP3 and up only, and then have a dedicated team at Mozilla whose single job is to test if all submitted patch also compile nicely to produce a working Win2k compatible binary.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  192. PAE by DrYak · · Score: 1

    You'd either need far pointers or wide ones on the host which I don't know of any systems supporting easily, aside from DOS.

    Unix has api for that, and as GCC is open source, it could be adapted to this.
    That's why I say *could* and not *will* when speaking about addressing 3GiB.
    (Except that running 64bits cross compilers targeting 32bits on a 64bits Linux is way much more easy, so nobody goes that route).

    Windows has theoretically an API for that, called AWE.
    But then you have 2 problems:
    - You need a special server license to use more than 4GiB of memory.
    - The VS2005 Linker, is probably *NOT* AWE-aware, isn't open source and thus can't be adapted to AWE.

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  193. Re:I know I'm pointing out the obvious here... by idbeholda · · Score: 1

    I hate saying this, but when the code can't be compiled because the library is too massive for the compiler, there is no benefit.

  194. Re:Wow by hairyfeet · · Score: 1

    While I agree that the larger registers are worth having, I personally have been running X64 since XP X64 beta, the poster I was responding to said there wasn't any point for general users to go x64, that it was basically for Linux (hinting that it was programmers that needed it) and those really slamming the machine. When I first went to X64 I only had 2Gb of RAM but it STILL made a difference, especially in video transcoding.

    But now even grandma gets major advantages for running X64, with superfetch and the new Windows memory management every drop of that RAM will be put to good use speeding up the OS and preloading programs that are often used.

    You'd think though that someone would write a superfetch for Linux, it shouldn't be hard, just keep a list of what programs are run and when and if RAM is left empty to cache those programs. If the user launches them it'll call them from RAM, and if the user launches a program that needs the RAM dump the cache. I'm sure it would be a little more complex than that to implement but that's the basics of it.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  195. Re:I know I'm pointing out the obvious here... by BZ · · Score: 1

    Well, sure. Except the code is compiling just fine as of yesterday, after a few changes to it. Tempest in a teapot and all.

  196. Re:Wow by ryanov · · Score: 1

    Does "preload" do what you're talking about or are we not thinking of the same sort of things?

  197. Re:Wow by Wolfrider · · Score: 1

    --What, you never heard of Vmware? I run 64-bit Linux Mint on my 6-core beast, and my USB Lexmark X2500 is not supported in Linux. Yet I print from it regularly using various 32-bit XP guests, running the native Lexmark 32-bit XP driver.

    --
    .
    == WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
  198. Re:Wow by definate · · Score: 1

    WHOAH! A +1 TROLL!

    One of the rarest of all creatures!

    --
    This is my footer. There are many like it, but this one is mine.
  199. Re:Wow by hairyfeet · · Score: 1

    Not really as superfetch is based on usage patterns. lets say that every weekday i launch Chrome, and on every weekend I launch WMP, what superfetch will do is load Chrome during the week, replacing that with WMP on weekends. basically the longer you use the PC the "smarter" it gets about your usage patterns and the better it will be at predicting what you are gonna launch. For example my PC knows I launch Paragon to make a backup on the day after patch Tuesday so it'll be loaded into RAM the second Wednesday of every month like clockwork waiting for me.

    I'm sure it wouldn't be hard to cook up something similar in Linux, I've just never heard of anyone doing it. When superfetch came out with Vista there were several projects started but IIRC they are all dead code on sourceforge now. Shame as it is a nice feature.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  200. Now I realize... by MJMullinII · · Score: 1

    that is isn't quite so clean and neat when you're compiling a program that must work on millions of systems other than your own :)

    But I would have thought they were already doing that. While going from 32bit to 64bit doesn't magically make everything faster, it does generally add a tiny bit of speed simply because of the extra registers Intel and AMD add for 64bit operations.

    Even if it were only a few points, I would think that building as much as you know they must, ANY tiny bit of speed improvement would add up pretty fast (even if only 1% or 2%).

    --
    "Don't be a martyr -- BE THE ONE WHO GOT AWAY!"
  201. Re:I know I'm pointing out the obvious here... by idbeholda · · Score: 1

    My point still stands, regardless of your last-ditch-analogy. Thanks to whoever it was for making sure I got marked as a -1 Troll for posting indisputable fact, though. That actually makes me look like less of an idiot.

  202. Re:Wow by ryanov · · Score: 1

    There is some indication (though nothing too specific in what I read) that it has some awareness of usage patterns, but I couldn't say. That said, it's hard to imagine application launch being much faster on my current machine anyway. I'm not really going to notice the difference between 3 seconds and whatever would be faster.

  203. Re:Wow by badkarmadayaccount · · Score: 1

    Running 7.0.1 with over 50 add-ons. Non-deterministic swap IO chocking, less often freezes, most often exit without saying a thing. 1.4GHz Celeron M, 2x256MB DDR1 RAM, 40GB 5.4krpm PATA drive, 6y.o. laptop, Arch linux, -pf branch kernel i686 microarch optimizations, Xfce4 vanilla.

    --
    I know tobacco is bad for you, so I smoke weed with crack.
  204. Re:Wow by hairyfeet · · Score: 1

    Well I think the better metric would be the intelligent use of RAM, after all DRAM is gonna take the same voltage whether sitting empty or fully loaded so having a large amount of empty RAM simply isn't doing you any good.

    Checking resource monitor in Win 7 just now shows of my 8192Mb of RAM there is only 332Mb free, with 6373Mb being used for caching. With that large a cache it is more likely that when i launch a program its exe and .dlls will be already loaded and waiting on me thus speeding up performance. While you are correct that with modern desktops that extra caching simply won't be felt by most i could really tell a difference in my netbook when i went from 2Gb to 8Gb thanks to the larger cache and superfetch. I got around an extra 40 minutes on my battery, from 5:30 to a little over 6:15 simply because that much larger cache and superfetch keeping my apps loaded meant the drive could stay spun down more.

    One thing i don't know why the Linux guys haven't ripped off yet is the new UI tweaks like jumplists and breadcrumbs. Frankly once you've used jumplists and breadcrumbs going back to the old way of file management feels like a real step back. With breadcrumbs I can instantly jump through a file tree without having to drill up or down through folders, and having nearly every app have the last 10 things you did instantly accessible simply by right clicking on the icon is just too damned nice.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  205. Re:Wow by DaVince21 · · Score: 1

    Of course. Not too long ago, all netbooks were still 32-bit. Those devices haven't magically become 64-bit systems.

    --
    I am not devoid of humor.
  206. Re:Wow by ryanov · · Score: 1

    I use the file manager 3 or 4 times a month. Maybe that is part of it.