-
Let's make -Wconversion our new friend!
Ten years ago, Christian Helmuth opened a Genode issue with the suggestion to enable warnings about implicit type conversions by default. Now that this issue has almost finished primary school, the time is ripe to attend it. Continue...
-
An Attempt to avoid C++ exceptions
Genode employs C++ exceptions for propagating errors, which is true to the language. However, the use and the mechanics of C++ exceptions comes with its own bag of problems. The upcoming Genode version 21.11 introduces a new error-handling pattern that will hopefully give us relief. Continue...
-
Performance analysis made easy
Identifying performance bottlenecks of Genode's low-level system components remains a tedious effort. For this reason, it is usually not practiced as a routine during development but only under strong pressure. Conversely, performance optimizations may be implemented without evidence for their presumed effect, increasing complexity for rather intangible benefits. Now a new utility presented in this posting comes to the rescue. Continue...
-
A C++ inlining anecdote
During my recent work on the management component of Sculpt OS, the compile time of this particular component started to bother me. Moreover, the size of the resulting binary raised my eyebrows. So I took a closer look. Continue...
-
Pine fun - Excursion to the user land
Equipped with the rudimentary debugging skills presented in the previous article, it is time to conquer the remaining stumbling blocks on our way to the user land. Continue...
-
C++ and SPARK as a continuum
SPARK is an Ada-inspired programming language for high-assurance computing. It was designed for the application of formal verification methods to real-world software. The prospect of bug-free software is music to our ears! I wonder, can there be a love affair between SPARK and Genode's predominant implementation language, C++? Continue...
-
Genode's Conscious C++ dialect
C++ is a power tool that scales from embedded systems to the most complex software stacks imaginable. When we started Genode in 2006, the feature set of the language was extremely persuasive. It strikes a great balance of giving the programmer full control whenever needed while also featuring means of expressing high-level software designs. This power is a two-edged sword though. In this series of postings, I'd like to share how we learned to handle it without regrets. Continue...