1. 14 Oct, 2013 3 commits
  2. 10 Oct, 2013 1 commit
  3. 08 Oct, 2013 1 commit
  4. 07 Oct, 2013 6 commits
  5. 05 Oct, 2013 2 commits
  6. 26 Sep, 2013 2 commits
  7. 23 Sep, 2013 1 commit
  8. 11 Sep, 2013 1 commit
  9. 02 Sep, 2013 1 commit
  10. 05 Aug, 2013 3 commits
  11. 29 Jul, 2013 2 commits
  12. 27 Jul, 2013 1 commit
    • Simon Feltman's avatar
      Add callable and descriptor protocols to PyGICallableInfo · 35f79b22
      Simon Feltman authored
      Add tp_call (__call__) function to callable info objects.
      This allows for replacement of wrapped invoke methods directly
      with the already created callable info object. This has the
      additional side effect of making doc strings lazily bound
      (only generated when __doc__ is accessed).
      
      Add tp_desc_get (__get__) to PyGIFunctionInfo which returns
      a bound version of itself for methods and constructors.
      
      Update various internal type checks to reflect the changes.
      Update tests to reflect the new callable type being the same
      across Python 2 & 3.
      
      This patch gives roughly a %17 speedup for Gtk imports and
      an %11 speedup for GI method calls.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=704037
      35f79b22
  13. 26 Jul, 2013 2 commits
  14. 10 Jul, 2013 2 commits
    • Daniel Drake's avatar
      Speed up MRO calculation · a93755dd
      Daniel Drake authored
      Optimize gi.type.mro() with the following observations and tricks:
      
      1. Python prepares all the base classes before trying to calculate the
         MRO of the current one (it first needs to populate __bases__, for
         example). So we can assume that the base class MRO is already available
         in __mro__ and this will have been previously calculated (by us, in the
         case of gi classes). This avoids repeating a lot of MRO-calculating work,
         and also avoids (re)calculating MROs for inheritance chains that don't
         have any gi classes in them anyway.
      
      2. With that simplification in place, we can avoid recursion, which is not
         all that great in Python...
      
      3. ...except in the uncommon case of a Python2 old-style classes, where
         __mro__ is not available. There doesn't seem to be any existing
         function to calculate or read MRO of old-style python classes, so just
         keep doing as before: calculate the C3 MRO of the old-style class via
         recursion. That behaviour is not really correct, and the recursion is
         not desirable, so we print a warning here.
      
      This makes the "hello world" Sugar app start up approximately 0.5 seconds
      faster on XO-1.5.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=703829
      a93755dd
    • Daniel Drake's avatar
      tests: Add tests for MRO override · 7aca9578
      Daniel Drake authored
      Add tests for the MRO override to prevent against unintended
      behaviour changes.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=703829
      7aca9578
  15. 06 Jul, 2013 1 commit
  16. 03 Jul, 2013 3 commits
  17. 02 Jul, 2013 1 commit
  18. 13 May, 2013 1 commit
  19. 12 May, 2013 1 commit
  20. 23 Apr, 2013 1 commit
  21. 22 Apr, 2013 2 commits
  22. 18 Apr, 2013 2 commits