Cobbler is an attempt to add objects to the C language in order to better understand the implementations of different kinds of object systems.
A primitive static object system is being developed using just C Macros and functions.
A dynamic object system library will also be created using a C framework.
- To create a simple static object system with simple data inheritance using pure C.
- To better understand the usage of C Macros.
- To better understand implementations of static object systems (such as that of C++).
- To add a type of inherited struct that implements reference counting.
- To create a simple dynamic object system framework with data and method inheritance using pure C.
- To better understand dynamic object system implementations that take advantage of message passing.
- To better understand meta-programming in dynamic object systems.
- To implement ordered multiple inheritance in a dynamic object system.
- To add state machine behavior to a dynamic object system (such as that of the Plaid language).
The primitive static object system is seeing progress. It has not yet seen any testing, but seems to compile fine... so far. Implemented primitive objects include a linked-list primitive, string primitive, and a value/number primitive. Primitive objects follow the reference counting memory management model, with a posix-compliant thread-safe autorelease implementation. (These are known as own, disown, and autodisown)
- Tests for the primitive static object system.
- A dynamic object system framework, implemented using the primitive object system.