One of my slowly-progressing spare-time projects is yet another object system for C called "cobj". This one is different from the others (such as C++, Objective-C, GTK, OOPC, etc.) because it is explicitly designed to support the long-term maintenance of ABI compatibility, which is particularly useful for systems that can load binary code modules at run-time. Although Java etc. has mostly made this kind of technology obsolete, there is still plenty of low-level code that is written in C that can benefit from OO techniques, such as JVMs and Unix kernels; indeed, the starting-point for cobj was FreeBSD's kernel object system, kobj. To this basis I have added ideas from CLOS, such as a simple metaobject protocol and the idea of a metacircular implementation (cobj is written in cobj), and a better desugaring preprocessor. It is still a work in progess, though, so email me if you want more information. You can also look at FreeBSD PR#35978 and a couple of my posts to comp.std.c which are related to cobj.

Tony Finch <>

$dotat: doc/web/writing/cobj.html,v 1.2 2003/07/03 14:18:08 fanf2 Exp $