What We Want to Get Done

This page serves as a list of ideas where to start hacking in Darling.

  • Better Mach system call implementation.
  • Write more test programs to ensure that the libc and BSD APIs are covered well.
  • Core Audio implementation. The most critical areas are the AudioToolbox and AudioUnit frameworks. The initial aim is to just have the sound working. It is not necessary to have a full implementation with all the magic it can do on OS X. mpg123 for OS X can be used for testing.
  • Input device support in IOKit for “direct input” support in games.
  • CoreVideo and OpenGL framework implementation to get OpenGL apps working.
  • Extend the current CoreServices implementation. For example to cover more File Manager functionality etc.
  • Anything else from the issue tracker

Since the most painful area is still the Cocoa implementation (now provided by gnustep-gui), hackers are welcome to explore the following possibility:

  • Implement AppKit from scratch on top of an existing Linux GUI framework (prefferably Qt 4/5) with OS X ABI compatibility as the foremost aim. Reuse other frameworks from GNUstep (especially gnustep-base).
    • Integrate Qt into NSRunLoop via QAbstractEventDispatcher. QtMotifExtension serves as an example of how this can be achieved.
    • Implement NSApplication.
    • Analyze Core Animation to see how to fit it into Qt. MUST be done before the following.
    • Implement the fundamental classes: NSEvent, NSView, NSWindow, NSCell, NSControl, …
    • Implement NS* widget classes in Qt Quick and QML.
  • Implement Carbon basics around Qt as well. Why? Because most “big” games for OS X still use Carbon.