• A Minimal OS X kext Written (Partly) in Rust

    Kernel code is usually written in C or C++. Rust is a new low-level systems programming language that might grow into a suitable replacement. In this article, I recorded my experiences creating a very basic OS X kernel extension (kext) with it.

  • Mixing Objective-C, C++ and Objective-C++: an Updated Summary

    Objective-C continues to rise in popularity, and so does the need to interoperate with C++ code. Recent changes to the Objective-C language and compilers have partially obsoleted the PIMPL technique I described in a previous article. In this update, I demonstrate the new possibilities and also show how to call from C++ into Objective-C code.

  • Building Mixed C and C++ node.js Modules

    I had some trouble building node.js modules consisting of both C and C++ source files. It took me some time to track down the problem, and the solution isn't especially obvious, so I'm posting this on the web in case anyone else runs into this.

  • Strategies for Using C++ in Objective-C Projects (and vice versa)

    While it appears simple at first ("just use Objective-C++!"), combining Objective-C and C++ code turns out to be trickier than expected in practice. Yet, while using a C++ library in an Objective-C application or vice versa is a reasonably common scenario, the possible solutions are not so well documented. In this article, I explore the core issue and gradually work my way through a variety of solutions, discussing pros and cons. Finally, a solution is presented which is suitable in the vast majority of cases.