Finding the Higgs on RISC-V 2023-01-28

The journey of making Cling and ROOT work on the RISC-V architecture, culminating in the (re-)discovery of the Higgs boson.

Const and Static Const Arrays in C and C++ 2022-10-30

or: Do I really need to mark my constant arrays in a function with a static lifetime?

Booting Debian on the StarFive VisionFive 2022-06-18

How to create a bootable Debian installation for this RISC-V Single Board Computer.

Configuring Authorization for Postfix 2021-05-02

How to configure sender authorization for Postfix. This ensures authenticated users can only send from their own addresses.

Implementing and tuning RANLUX++ for ROOT 2020-11-30

ROOT comes with support for different pseudorandom number generators (PRNGs). This post discusses the recent implementation of RANLUX++ and how I tuned its performance. Because of its theoretical strengths and its performance, this generator might become the default in future versions of ROOT.

Recursively time‘ing a Tree of Processes 2020-05-06

How to use destructors and system calls to find the resource usage of a process. Putting this into a library allows to trace a tree of processes.

When Compilers Disagree on C++ Templates… 2019-11-19

My thoughts on a recent issue from LilyPond involving C++ templates. In this case, Clang complains about shadowed template functions while GCC compiles the code without a warning.

Building and Using LLVM/Clang 7.0 with OpenMP Offloading to NVIDIA GPUs 2018-10-08

Detailed instructions to build Clang 7.0 on Linux. This will give you a compiler with support for OpenMP offloading to NVIDIA GPUs.

DynConf: My Approach to Configuration Files 2018-06-24

This post is about the first release of DynConf. It uses recipes to describe which lines should be deleted, replaced, or appended to a configuration file.

sched_yield() and the LLVM OpenMP runtime 2018-01-13

Read about my analysis of a bug report describing deadlocks in tests of the LLVM OpenMP runtime. It turned out that the piece to blame was the PDS scheduler in the kernel and I will justify this statement with quotes from the POSIX standard.