On 7/31/07, Quentin Mathé <[EMAIL PROTECTED]> wrote: > Le 30 juil. 07 à 13:22, David Chisnall a écrit : > > > Whenever I encounter a bug in GNUstep that I know how to fix, I fix > > it in a category and send it to someone to push upstream. Since > > GNUstep releases only happen every six months, would it be worth > > maintaining a library of categories that patch the current GNUstep > > release that all Étoilé components can link to? StepChat, for > > example, fixes a bug in NSOutlineView that can cause application > > crashes, which could be useful in anything else which modifies the > > contents of an outline view. > > We could have a bundle that keeps together all bug fixes and gets > automatically injected in all AppKit-based applications with AppKit > user bundle mechanism. > However we need to be very careful and very clear about what is put > in this bundle, because it could result in very weird bugs when other > categories already patch the same methods. This is specially > important with Camaelon and EtoileWildMenus which patch many methods. > I already had category method conflict to solve between Camaelon and > EtoileWildMenus. They can be very tricky because the category loading > order seems to vary with each application, therefore you cannot > predict the behavior of any applications which call a method patched > by two categories or more. > > A more solid solution could be to implement a method holder class > mechanism. This would be a simple class whose instances hold various > methods and which can be asked to replace methods in some precise > class when everything is loaded. Replacing method would be done by > method swizzlling and we could record each method replacement thereby > also log a warning when a method is replaced two times. > GNUstep behavior concept may be helpful to implement this if they > still work. GNUstep behavior is a GNUstep addition which allows to > define a set of method you can share between several classes (like > concrete protocol or a category which can be shared).
I would say it is too tricky to do in regular basis. Since 0.2 is released, the -trunk can target current GNUstep -trunk. So as long as the patch get into GNUstep, we should be fine. Yen-Ju > > Cheers, > Quentin. > > -- > Quentin Mathé > [EMAIL PROTECTED] > > > _______________________________________________ > Etoile-dev mailing list > [email protected] > https://mail.gna.org/listinfo/etoile-dev > _______________________________________________ Etoile-dev mailing list [email protected] https://mail.gna.org/listinfo/etoile-dev
