1. 30 Tem, 2001 4 kayıt (commit)
  2. 26 Tem, 2001 3 kayıt (commit)
  3. 23 Tem, 2001 3 kayıt (commit)
  4. 19 Tem, 2001 1 kayıt (commit)
  5. 18 Tem, 2001 1 kayıt (commit)
  6. 17 Tem, 2001 1 kayıt (commit)
  7. 16 Tem, 2001 5 kayıt (commit)
  8. 15 Tem, 2001 1 kayıt (commit)
  9. 12 Tem, 2001 1 kayıt (commit)
  10. 09 Tem, 2001 1 kayıt (commit)
  11. 05 Tem, 2001 2 kayıt (commit)
  12. 03 Tem, 2001 1 kayıt (commit)
    • Fred Drake's avatar
      This change adjusts the profiling/tracing support so that the common · 9e3ad784
      Fred Drake yazdı
      path (with no profile/trace function) through eval_code2() and
      eval_frame() avoids several checks.
      
      In the common cases of calls, returns, and exception propogation,
      eval_code2() and eval_frame() used to test two values in the
      thread-state: the profiling function and the tracing function.  With
      this change, a flag is set in the thread-state if either of these is
      active, allowing a single check to suffice when both are NULL.  This
      also simplifies the code needed when either function is in use but is
      already active (to avoid profiling/tracing the profiler/tracer); the
      flag is set to 0 when the profile/trace code is entered, allowing the
      same check to suffice for "already in the tracer" for call/return/
      exception events.
      9e3ad784
  13. 28 Haz, 2001 1 kayıt (commit)
  14. 27 Haz, 2001 3 kayıt (commit)
    • Fred Drake's avatar
      Revise the interface to the profiling and tracing support for the · 5755ce69
      Fred Drake yazdı
      Python interpreter.
      
      This change adds two new C-level APIs:  PyEval_SetProfile() and
      PyEval_SetTrace().  These can be used to install profile and trace
      functions implemented in C, which can operate at much higher speeds
      than Python-based functions.  The overhead for calling a C-based
      profile function is a very small fraction of a percent of the overhead
      involved in calling a Python-based function.
      
      The machinery required to call a Python-based profile or trace
      function been moved to sysmodule.c, where sys.setprofile() and
      sys.setprofile() simply become users of the new interface.
      
      As a side effect, SF bug #436058 is fixed; there is no longer a
      _PyTrace_Init() function to declare.
      5755ce69
    • Fredrik Lundh's avatar
    • Martin v. Löwis's avatar
      Encode surrogates in UTF-8 even for a wide Py_UNICODE. · ce9b5a55
      Martin v. Löwis yazdı
      Implement sys.maxunicode.
      Explicitly wrap around upper/lower computations for wide Py_UNICODE.
      When decoding large characters with UTF-8, represent expected test
      results using the \U notation.
      ce9b5a55
  15. 26 Haz, 2001 7 kayıt (commit)
  16. 23 Haz, 2001 4 kayıt (commit)
    • Tim Peters's avatar
      Change the semantics of "return" in generators, as discussed on the · ad1a18b7
      Tim Peters yazdı
      Iterators list and Python-Dev; e.g., these all pass now:
      
      def g1():
          try:
              return
          except:
              yield 1
      assert list(g1()) == []
      
      def g2():
          try:
              return
          finally:
              yield 1
      assert list(g2()) == [1]
      
      def g3():
          for i in range(3):
              yield None
          yield None
      assert list(g3()) == [None] * 4
      
      compile.c:  compile_funcdef and com_return_stmt:  Just van Rossum's patch
      to compile the same code for "return" regardless of function type (this
      goes back to the previous scheme of returning Py_None).
      
      ceval.c:  gen_iternext:  take a return (but not a yield) of Py_None as
      meaning the generator is exhausted.
      ad1a18b7
    • Tim Peters's avatar
      gen_iternext(): Don't assume that the current thread state's frame is · 5eb4b87a
      Tim Peters yazdı
      not NULL.  I don't think it can be NULL from Python code, but if using
      generators via the C API I expect a NULL frame is possible.
      5eb4b87a
    • Tim Peters's avatar
      PyFrameObject: rename f_stackbottom to f_stacktop, since it points to · 8c963695
      Tim Peters yazdı
      the next free valuestack slot, not to the base (in America, stacks push
      and pop at the top -- they mutate at the bottom in Australia <winK>).
      eval_frame():  assert that f_stacktop isn't NULL upon entry.
      frame_delloc():  avoid ordered pointer comparisons involving f_stacktop
      when f_stacktop is NULL.
      8c963695
    • Tim Peters's avatar
      Disallow 'yield' in a 'try' block when there's a 'finally' clause. · 95c80f84
      Tim Peters yazdı
      Derived from Thomas Wouters's patch on the Iterators list, but doesn't
      try to read c->c_block[c->c_nblocks].
      95c80f84
  17. 21 Haz, 2001 1 kayıt (commit)