Re: Converting a large project to GC
Re: Converting a large project to GC
- Subject: Re: Converting a large project to GC
- From: Greg Parker <email@hidden>
- Date: Wed, 4 May 2011 12:11:34 -0700
On May 4, 2011, at 6:03 AM, Joao Manuel Da Silva Neves wrote:
> Apple's documentation states: "The process of migrating a large project that uses reference counting can be difficult and error-prone—some patterns that work correctly with manual memory management will be incorrect after translation. In general, it is recommended that you use garbage collection only in new projects. If you already have a well-architected, well-understood application that uses reference counting, there should be little reason to migrate to GC"
>
> Unfortunately we have a large project (think Apple's Aperture) that we're considering for migration to GC in order to reduce memory crashers and simplify memory management in the future.
> Has anyone tried converting a large project to GC? If YES was it successful and worth it? What were the main issues encountered during the conversion?
(Please don't post to multiple lists.)
Xcode converted to GC a few years ago.
Good:
* Lots and lots of crashes simply went away.
* Complex data structures and workflows were greatly simplified when they didn't need to worry about retain cycles.
Bad:
* Finding and fixing the many small GC-unsafe patterns is hard. (For example, uses of non-retaining CoreFoundation containers.)
* Rearchitecting larger GC-incompatible designs is hard. (For example, saving changes to a file upon last release.)
* If you are the first GC client of some system framework, you may find GC bugs in that framework. (This is less common now than when Xcode adopted GC.)
* Interoperating with C++ or CoreFoundation is hard.
* Any existing plug-ins will not be GC-compatible.
--
Greg Parker email@hidden Runtime Wrangler
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden