Moving a big software project to a new compiler can be a lot of work, and few projects are bigger than Chromium. In addition to the main Chromium repository, which includes all of Blink, there are over a hundred other open-source projects which Chromium incorporates by reference, totaling more than 48,000 C/C++ files and 40,000 header files. Porting Chromium on Windows to VC++ 2015 requires getting all of these projects to build and run.
As of March 11th 2016 Chromium for Windows has switched from VC++ 2013 to VC++ 2015, and it doesn’t look like it’s switching back. This will give us more C++ 11 features, new security options, much faster LTCG/PGO builds, and other advantages.
The tracking bug for this project currently has over 330 comments on it, with contributions from dozens of developers. Writing about all of those changes would require an entire book. So I’m going to focus on my favorite part of this project – compiler bugs. In particular, bugs where the compiler silently generates incorrect code.
I recently wrote a blog post saying that I thought Windows Explorer should use the more natural base-10 meanings of the kB/MB/GB/TB prefixes, instead of the base-2 meanings that are a few percent larger.
I convinced nobody. I was told, repeatedly, that there was nothing ‘natural’ about a base-10 TB and that base-10 prefixes in computing were just a way for hard-drive manufacturers to rip-off innocent customers.
Okay, I get it. What the people really want are kB/MB/GB/TB prefixes that are bigger than those puny base-10 prefixes, and that are genuinely natural. America didn’t become great again by using foreign prefixes that are smaller than they should be. Therefore I present to you:
Posted in Fun, Rants
Tagged base 10, base 2, GB, GeB, GiB, kB, KeB, KiB, MB, MeB, MiB, TB, TeB, TiB
Ever since I upgraded to Windows 10 it’s felt like my battery life is worse. My suspicion was various scanning tasks that were springing to life more frequently, but it was just a hunch.
So, I did what I do – I profiled. I recorded long-running ETW traces to see how much CPU time was going to the processes that I have chosen to run, and how much was going to processes that Microsoft has chosen to run.
I should have done this years ago…
Cars in Canada really do get more miles to the gallon. Well, “did”, technically, since Canada now uses liters/100 km for fuel efficiency. The reason why has nothing to do with climate or driving habits and has everything to do with the amusing flaws of the measurement systems that preceded metric.
Posted in Fun
Tagged base 10
It’s 2016 and Windows still displays drive and file sizes using base-2 size prefixes. My 1 TB SSD is shown as 916 GB, and a 449 million byte video file is shown as 428 MB. That is, Windows still insists that “MB” means 2^20 and “GB” means 2^30, even when dealing with non-technical customers.
- This makes no sense.
- Just because some parts of computers are base 2 doesn’t mean all parts are base 2.
- And, actually, most of the visible parts of computers are base-10.
So just stop it. Base 2 prefixes should only be used when there is a compelling advantage for the typical user, and for file and drive sizes in Windows explorer there are no such advantages. If you think I’m wrong (and I know that lots of people do) then be sure to explain exactly why base-2 size prefixes make sense in the context of file and drive sizes.
Four years ago I created a HD fractal movie because I wanted to see how quickly Fractal eXtreme could calculate the same movie that Orson Wang had posted to youtube. My version of his movie was antialiased and 720p and seemed pretty impressive at the time. I discussed it here.
I recently got a 4K TV and I realized that my “HD” video looked blurry on it. So I decided to make a new version, at 4K resolution instead of just 720p, with improved colors and other tweaks.
Standing a few feet in front of the 4K TV while this new movie plays makes me happy. It is the zoom-movie perfection that I have imagined since I released my first fractal program in 1986. I think it’s beautiful, and I also think that it is profound that all of this complexity comes from a formula as simple as Z = Z * Z + C.
Windows lets you give names to the threads in your process which can then be displayed by debuggers. This is a great idea, but the implementation is showing its age – it’s time for some fixes, or something better.
Update, Dec 2015: the race condition has been fixed and the doc writers have been asked to fix the sample code. Bugs work!