Re: Large changes ahead... MERGED!



On Tue, 2004-11-23 at 10:16 +0100, Dirk-Jan C. Binnema wrote:
> Hi Alexander,
> 
> Not to take away any of your valuable hacking time, could you explain
> the background of your work in a couple of lines? I.e. did you remove
> all dependencies on bonobo? What are you using instead? Is it
> faster/more stable/easier to maintain? 

NautilusViews (essentially the thing in the middle of the nautilus
window, like icon view and list view) are no longer Bonobo components,
and are not activated via bonobo-activation. Instead NautilusView is a
GInterface with a complimentary API for registration and creation. These
views are always in-process, and no out-of-process calls are required to
select or activate the view.

Furthermore, the user interface is created and managed using the new
GtkUIManager APIs, instead of using BonoboUI like we did before.

As part of the change, much complexity that was added to the codebase to
handle properties of bonobo (out-of-process calls, reentrancy) has been
eliminatied. For instance, a lot of code that used to queue idle
handlers to execute code when calling into a view (to avoid reentrancy
problems) has been converted into ordinary function calls or signal
emits.

The primary advantages of the new code is:
* Significantly lower complexity, allowing easier maintainance
* Use the currently recommended and best maintained APIs for the ui
 (bonobo isn't getting much work these days)

Secundary advantages are:
* better performance, especially wrt window creation
  (i haven't measured this, but i believe it is so)
* While this large change is likely to introduce instabilities, once 
  stabilized i think this is a better codebase wrt stability. There are
  still some very hard to debug crashes in bugzilla that are likely
  related to bonobo reentrancy or race condition wrt out-of-process
  calls. These are now gone, in favour of easily debuggable normal code.

Bonobo is still used for "unique application" support and is currently
used for the metadata server. Nautilus itself no longer links to
libbonoboui, however that dependency is pulled in from libgnomeui.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander Larsson                                            Red Hat, Inc 
                   alexl redhat com    alla lysator liu se 
He's an ungodly umbrella-wielding photographer with no name. She's a 
supernatural hypochondriac socialite from out of town. They fight crime! 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]