G++ 5.3 Bug

I was just thinking to myself recently that I haven’t found a compiler bug in a while. It’s because I’m doing so much in Python, and I’ve never found a bug in Python (the language).

But I’ve never worked with a C++ compiler where I didn’t find a bug.

And sure enough, just came across one, in GCC 5.3 (Qt 5.8).

auto Zip5 = hasFIPS?
    [&file](size_t row) { return file.Field(row, 6); } :
    [&file](size_t row) { return file.Field(row, 5); };

That fails with:

error: operands to ?: have different types ‘ZipCatalog::Load(const boost::filesystem::path&, const boost::filesystem::path&, const boost::filesystem::path&)::<lambda(size_t)>’ and ‘ZipCatalog::Load(const boost::filesystem::path&, const boost::filesystem::path&, const boost::filesystem::path&)::<lambda(size_t)>’

Compiler bug. Those two types are the same.

(I’ve never found a bug in a C compiler either, though it’s been decades since I wrote any C code.)


11th-Hour Surprise

This morning, 10:01AM, our regional electric company sends:

Introducing the newly redesigned [redacted] page — an even easier and faster way to refer your friends …

This morning, 10:44AM:

UPDATE: The launch of the page is currently delayed. We apologize for this inconvenience and will contact you via email when the new page is ready.

That sure seems like a late-in-the-game software project surprise.



Wireshark is going Qt

Wireshark is moving their user interface away from GTK+ to Qt.

Making such a large change wasn’t an easy decision. It means rewriting thousands of lines of code and requires a lot of careful design. We might be the largest standalone application to make this transition (feel free to correct me below). However, I think it’s well worth it and that it’s important to the long-term direction of the project. Ultimately it came down to one thing:

Wireshark’s job is to show you what’s happening on your network. If it can’t run on your system then it’s not doing that job.


Dropbox? Python.

Love it.  Dropbox uses python, scaling to 175 million users.

Also interesting:

The team also found it was easier to keep log data rather than delete old code – usually there would be a need for it later on for whatever reason. “Delete nothing unless necessary,” said Eranki. A major conclusion of those early days: Be sceptical about adopting new technology.


Just hosted a Join.Me session directly into a VMWare virtual machine on my machine. Didn’t have to clean up (my desktop) for company. Love the confluence of technologies.