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

Reply via email to