Andreas Kling

I like computers!

Blog About FAQ

I quit my job to focus on SerenityOS full time

Hello friends! :^) Let me tell you a story…

Read More

Smarter C/C++ inlining with __attribute__((flatten))

This post describes a compile-time technique for getting the benefits of aggressive inlining in hot code while protecting cool code from its downsides.

Read More

Introduction to SerenityOS GUI programming

This post will give you a quick intro to the basics of GUI programming for SerenityOS.

Read More

pledge() and unveil() in SerenityOS

This post describes the implementation and use of pledge() and unveil() in SerenityOS.

Read More

Serenity C++ patterns: References instead of Pointers

This post describes the use of C++ references to enhance autodocumentation in the Serenity Operating System.

Read More

Serenity C++ patterns: NonnullOwnPtr

This post describes the C++ NonnullOwnPtr template used to enforce non-nullity of single-owner object pointers in the Serenity Operating System.

Read More

Catching use-after-move bugs with Clang's consumed annotations

This post describes a compile-time technique for catching use-after-move bugs in modern C++. It’s currently used to prevent some mistakes in the Serenity Operating System.

Read More

Serenity C++ patterns: NetworkOrdered

This post describes the C++ NetworkOrdered<T> template used to simplify working with network packet structures in the Serenity Operating System.

Read More

Serenity C++ patterns: IterationDecision

This post describes the C++ IterationDecision pattern used to implement flow control during callback-based iteration in the Serenity Operating System.

Read More

Serenity C++ patterns: The Badge

This post describes the C++ Badge template used to enhance member function access control in Serenity Operating System.

Read More

How Serenity system calls work

This post describes how system calls are implemented in the Serenity Operating System.

Read More