Just as we've done before, when we tackled this problem we decided to look at what has worked in the past. Finding inspiration in the elegant simplicity of C, we knew we'd found the right solution. And so, we're pleased to announce the immediate availability of a manual memory management system in Cappuccino.
var o = [CPobject new]; // +new returns with a retain count of 1! var p = $$(o); // returns a pointer to o o === $(p); // we dereference the pointer and get the right object!
Zombies come standard, too! Just set OBJJZOMBIEDETECTION to true and objj_msgSend will throw an exception if you ever message an object that's been dealloc'd.
We've even take the time to properly -autorelease all objects returned from class methods in Foundation, but we've made absolutely no effort to properly retain those objects in Cappuccino code that uses them yet. So we need your help. Every line must be scrutinized (but we shouldn't to automate this process, as it would surely be too error prone). Rather than focus on developing new features or fixing bugs in the issue tracker, we hope that all Cappuccino contributors will spend their time writing memory management code so that we can fully realize this web development revolution!
We'll be including these exciting new features in a future release, so you should get started adding manual memory management code to every single line of Cappuccino you've ever written! In the meantime, check out the working code on Github.
Please note this is an April Fools joke!