1. 14 Apr, 2007 1 commit
    • Robert Bradshaw's avatar
      Cache __builtin__ name lookups so they are performed on module load rather than at every use. · 6fd9a195
      Robert Bradshaw authored
      The code "__Pyx_GetName(__pyx_b, __pyx_n_[string])" is performed in several
      thousand places throughout the sage library, and can be quite expensive
      (a dictionary lookup, possibly raising an error, etc.) This is redundant
      as the result will always be the same. I perform the lookup once
      (on loading the module), then have a pointer to the result for all subsequent use.
      
      The most common examples are bool/str/int (both as function calls and
      in isinstance), True/False, and raisign errors.
      
      A side feature is that on loading a module with an illegal __builtin__ name,
      it will complain at load time rather than at run time.
      6fd9a195
  2. 27 Feb, 2007 1 commit
    • Robert Bradshaw's avatar
      Inline keyword for cdef functions, variable assignment on declaration (+optimization) · a72407b4
      Robert Bradshaw authored
      "cdef inline foo()" now valid, and will place inline in the resulting c code
      
      "cdef o = expr" and "cdef type x = expr" now valid.
      This may not seem like a huge change, but it ended up requiring
      quite a bit of work. The variables are still all declared at the
      top, but the assignment takes place at the specified line in the
      code.
      
      If an assignment is made at declaration, the variable is initalized to
      0 rather than None (also skipping an INCREF) and Py_XDECREF is used on
      exiting the function (in case an error occured before the actual value
      was calculated). Hence these variables MUST NOT be used before they are
      defined or it will probably segfault.
      a72407b4
  3. 24 Feb, 2007 2 commits
  4. 23 Feb, 2007 3 commits
  5. 22 Feb, 2007 1 commit
  6. 21 Feb, 2007 1 commit
  7. 27 Jan, 2007 1 commit
  8. 17 Jan, 2007 1 commit
  9. 16 Jan, 2007 2 commits
  10. 11 Jan, 2007 1 commit
  11. 10 Jan, 2007 1 commit
  12. 18 Dec, 2006 2 commits
    • William Stein's avatar
      Peter Johnson (peter@tortall.net) weakref patch · 061558c7
      William Stein authored
      I recently ran into this problem myself (as the current code causes
      Python to crash), so I whipped up a quick patch that fixes it for me.
      I think it follows all of the weakref guidelines now.
      
      The patch is against the LXML svn pyrex
      (http://codespeak.net/svn/lxml/pyrex/).  Is there a different SVN I
      should be pointing to?  It patches functions generate_new_function,
      generate_dealloc_function, generate_traverse_function, and
      generate_clear_function.
      
      The patch just compares the entry.name against "__weakref__"; this
      could probably be centralized in the Entry object if so desired.
      061558c7
    • William Stein's avatar
      Apply Nick Alexander's patch so that Sagex that embeds positions in module,... · 6f8e8da4
      William Stein authored
      Apply Nick Alexander's patch so that Sagex that embeds positions in module, cdef class, and def class docstrings.
      6f8e8da4
  13. 30 Nov, 2006 1 commit
    • William Stein's avatar
      Eric Huss's readonly variable patch: · f4961542
      William Stein authored
      There's a minor bug, if you try to cdef a readonly variable at the module
      scope, the compiler raises an UnboundLocalError exception.  The attached
      patch seems to clear up the problem and gets the compiler to report the
      correct error.
      f4961542
  14. 25 Nov, 2006 1 commit
  15. 03 Nov, 2006 5 commits
  16. 02 Nov, 2006 1 commit
  17. 29 Oct, 2006 2 commits
  18. 27 Oct, 2006 1 commit
  19. 25 Oct, 2006 2 commits
  20. 23 Oct, 2006 1 commit
  21. 22 Oct, 2006 7 commits
  22. 20 Oct, 2006 2 commits