Category Archive: C++

Jul 21

forkfd part 4: proposed solutions

Last week, I wrote three blogs about the situation with starting child processes on Unix and being notified of their exit. I raised several problems with the current implementation, which I have tried to solve and I have now a proposal for. If you haven’t yet, you should take some time to read the previous …

Continue reading »

Jul 13

forkfd part 3: QProcess’s requirements and current solution

In the previous posts onmy series of blogs about starting and managing sub-processes on Unix, I talked about how it’s implemented and how the current solutions have limitations. On this post, I’ll show how QtCore has solved the problem (to the extent that it can be solved) and what requirements a new solution must fulfill. …

Continue reading »

Jul 10

Continue using QPointer

Early in the Qt 5 development cycle, we had made the decision to deprecate QPointer and replace it with the more modern QWeakPointer. That decision is now reversed, so please continue using QPointer where you were using them. Moreover, don’t use QWeakPointer except in conjunction with QSharedPointer. To understand the reason behind this back and …

Continue reading »

Jun 13

AVX-optimised raster painting for Windows too

Yesterday, one of my contributions to Qt was merged which finally adds better support for optimised raster painting on Windows, with SSE2 and AVX instructions. This feature has long been present on the Unix systems, but it was somewhat lacking on Windows. If you’ve read my past blogs, you know I often talk about and …

Continue reading »

May 11

Source code must be UTF-8 and QString wants it

I’ve talked about source code encoding in the past, arguing that the C++ language lacks a fundamental setting. However, since this Monday, Qt 5 now starts to enforce that source code must be UTF-8. In a way. The commit that landed on the qtbase repository finally changed the codec used by QString’s 8-bit methods to …

Continue reading »

Mar 28

Restricting what you can do

I usually write about C++, since it’s the programming language that I use on my daily work. Today, however, I’m talking about its nearest cousin: C. In specific, about a certain keyword introduced by the C99 standard, which was issued over 12 years ago. Usually, the C standard plays catch-up with the C++ standard (like …

Continue reading »

Feb 22

The value of passing by value

I’ve written in the past about how passing certain types by value in C++ would be more efficient than passing by constant reference. But it turns out that the ABI rules are somewhat more complex than what I said back in 2008. Time to investigate. This is also prompted by the discussion on qreal on …

Continue reading »

Jan 16

Sorry state of dynamic libraries on Linux

Last week, we identified a bug in Qt with Olivier‘s new signal-slot syntax. Upon further investigation, it turns out it’s not a Qt issue, but an ABI one. Which prompted me to investigate more and decide that dynamic libraries need a big overhaul on Linux. tl;dr (a.k.a. Executive Summary) Shared libraries on Linux are linked …

Continue reading »

Jan 09

Assembly developer’s library

Every now and then, when coding in C++, I find myself needing to know some assembly to understand what’s going on. Sometimes, it’s because I am actually writing assembly code, such as when I was writing the new atomic classes for Qt. More often, it’s because I need to read the assembly generated by the …

Continue reading »

Sep 30

The future of moc

Two days ago, on his blog on some Qt Creator news, Christian wrote: We’re currently prototyping what would happen if we replaced our own C++ code model with clang’s. The first comment in the blog was praising that research, but that got me thinking: what do we gain from it? Qt Creator already has a …

Continue reading »

Older posts «

Page optimized by WP Minify WordPress Plugin