Difference between revisions of "Features/GObject Introspection"

From Sugar Labs
Jump to navigation Jump to search
(Created page with '<noinclude>{{GoogleTrans-en}}{{TOCright}}</noinclude> == Summary == Use GObject-based libraries via introspection, instead of build-time bindings. == Owner == * Name: [[User:To…')
 
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<noinclude>{{GoogleTrans-en}}{{TOCright}}</noinclude>
+
<noinclude>{{GoogleTrans-en}}{{TOCright}}
 +
[[Category:FeatureLanded|GObject Introspection]]</noinclude>
  
 
== Summary ==
 
== Summary ==
Line 5: Line 6:
  
 
== Owner ==
 
== Owner ==
* Name: [[User:Tomeu|Tomeu Vizoso]]
+
* Name:  
* Email: tomeu@sugarlabs.org
+
* Email:  
  
 
== Current status ==
 
== Current status ==
* Targeted release: 0.88
+
* Targeted release: 0.92
* Last updated: July 13th 2009
+
* Last updated: Oct 12th 2010
 
* Percentage of completion: 0%
 
* Percentage of completion: 0%
  
 
== Detailed Description ==
 
== Detailed Description ==
http://live.gnome.org/PyBank/ will allow us to load classes and other symbols as we need them, reducing memory usage and startup time.
+
Several of the Python modules we are using right now will [http://live.gnome.org/GnomeGoals/PythonIntrospectionPorting become deprecated] in the [http://live.gnome.org/Schedule next GNOME release]. [http://live.gnome.org/PyGObject PyGObject] has gained support for [http://live.gnome.org/GObjectIntrospection GObject Introspection], which will allow us to keep using the GNOME platform without needing static bindings.
  
 
== Benefit to Sugar ==
 
== Benefit to Sugar ==
This will reduce overall memory usage and startup time of the shell and activities. Also will make easier use libraries written in languages other than Python.
+
Sugar will continue to be packaged by distributions. Additionally, the move to dynamic bindings will reduce overall memory usage and startup time of the shell and activities. Also will make easier use libraries written in languages other than Python.
  
 
== Scope ==
 
== Scope ==
Will need changes in about every sugar module, including activities, but we'll have a script that will make it easier. Not all activities need to switch at the same time.
+
Will need changes in about every sugar module, including activities, but we'll have a script that will make it easier. Not all activities may need to switch at the same time.
  
 
== How To Test ==
 
== How To Test ==
Run Sugar and activities as ususal, notice startup is faster and check with 'free' the amount of free memory.
+
Run Sugar and activities as usual, notice startup is faster and check with 'free' the amount of free memory.
  
 
== User Experience ==
 
== User Experience ==
Line 29: Line 30:
  
 
== Dependencies ==
 
== Dependencies ==
Yes, we depend on work in other GNOME projects: http://live.gnome.org/GObjectIntrospection/ and http://live.gnome.org/PyBank/ .
+
All our dependencies that are part of the GNOME platform will need to be updated to GNOME 3.0.
  
 
== Contingency Plan ==
 
== Contingency Plan ==
None necessary, revert to previous release behaviour.
+
None necessary, revert to previous release behaviour. We may need to fork and maintain static bindings.
  
 
== Documentation ==
 
== Documentation ==
 
http://live.gnome.org/GObjectIntrospection
 
http://live.gnome.org/GObjectIntrospection
http://live.gnome.org/PyBank/
+
 
 +
http://live.gnome.org/PyGObject/IntrospectionPorting
  
 
== Release Notes ==
 
== Release Notes ==
Line 44: Line 46:
 
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
 
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
  
 
[[Category:Feature Page Incomplete]]
 
[[Category:Feature]]
 
 
----
 
----
 
''You can add categories to tie features back to real deployments/schools requesting them, for example <nowiki>[[</nowiki>Category:Features requested by School Xyz]]''
 
''You can add categories to tie features back to real deployments/schools requesting them, for example <nowiki>[[</nowiki>Category:Features requested by School Xyz]]''

Latest revision as of 15:29, 5 November 2013

Summary

Use GObject-based libraries via introspection, instead of build-time bindings.

Owner

  • Name:
  • Email:

Current status

  • Targeted release: 0.92
  • Last updated: Oct 12th 2010
  • Percentage of completion: 0%

Detailed Description

Several of the Python modules we are using right now will become deprecated in the next GNOME release. PyGObject has gained support for GObject Introspection, which will allow us to keep using the GNOME platform without needing static bindings.

Benefit to Sugar

Sugar will continue to be packaged by distributions. Additionally, the move to dynamic bindings will reduce overall memory usage and startup time of the shell and activities. Also will make easier use libraries written in languages other than Python.

Scope

Will need changes in about every sugar module, including activities, but we'll have a script that will make it easier. Not all activities may need to switch at the same time.

How To Test

Run Sugar and activities as usual, notice startup is faster and check with 'free' the amount of free memory.

User Experience

The shell and activities should start much faster and you can launch more activities before systems with low memory and no swap (like the XO) become unresponsive and crash.

Dependencies

All our dependencies that are part of the GNOME platform will need to be updated to GNOME 3.0.

Contingency Plan

None necessary, revert to previous release behaviour. We may need to fork and maintain static bindings.

Documentation

http://live.gnome.org/GObjectIntrospection

http://live.gnome.org/PyGObject/IntrospectionPorting

Release Notes

TBW

Comments and Discussion


You can add categories to tie features back to real deployments/schools requesting them, for example [[Category:Features requested by School Xyz]]