1. 08 May, 2009 1 kayıt (commit)
  2. 14 Şub, 2008 1 kayıt (commit)
  3. 12 Haz, 2006 1 kayıt (commit)
  4. 26 May, 2006 1 kayıt (commit)
    • Tim Peters's avatar
      Patch 1145039. · 7df5e7f4
      Tim Peters yazdı
      set_exc_info(), reset_exc_info():  By exploiting the
      likely (who knows?) invariant that when an exception's
      `type` is NULL, its `value` and `traceback` are also NULL,
      save some cycles in heavily-executed code.
      
      This is a "a kronar saved is a kronar earned" patch:  the
      speedup isn't reliably measurable, but it obviously does
      reduce the operation count in the normal (no exception
      raised) path through PyEval_EvalFrameEx().
      
      The tim-exc_sanity branch tries to push this harder, but
      is still blowing up (at least in part due to pre-existing
      subtle bugs that appear to have no other visible
      consequences!).
      
      Not a bugfix candidate.
      7df5e7f4
  5. 23 May, 2006 1 kayıt (commit)
  6. 02 Tem, 2004 1 kayıt (commit)
  7. 11 Eyl, 2002 1 kayıt (commit)
  8. 12 Agu, 2002 1 kayıt (commit)
  9. 14 Tem, 2002 1 kayıt (commit)
  10. 29 Agu, 2001 1 kayıt (commit)
  11. 23 Haz, 2001 1 kayıt (commit)
    • 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
  12. 18 Haz, 2001 1 kayıt (commit)
  13. 13 Mar, 2001 1 kayıt (commit)
    • Jeremy Hylton's avatar
      Variety of small INC/DECREF patches that fix reported memory leaks · 30c9f399
      Jeremy Hylton yazdı
      with free variables.  Thanks to Martin v. Loewis for finding two of
      the problems.  This fixes SF buf 405583.
      
      There is also a C API change: PyFrame_New() is reverting to its
      pre-2.1 signature.  The change introduced by nested scopes was a
      mistake.  XXX Is this okay between beta releases?
      
      cell_clear(), the GC helper, must decref its reference to break
      cycles.
      
      frame_dealloc() must dealloc all cell vars and free vars in addition
      to locals.
      
      eval_code2() setup code must INCREF cells it copies out of the
      closure.
      
      The STORE_DEREF opcode implementation must DECREF the object it passes
      to PyCell_Set().
      30c9f399
  14. 29 Ock, 2001 1 kayıt (commit)
    • Jeremy Hylton's avatar
      Remove f_closure slot of frameobject and use f_localsplus instead. · 2b724da8
      Jeremy Hylton yazdı
      This change eliminates an extra malloc/free when a frame with free
      variables is created.  Any cell vars or free vars are stored in
      f_localsplus after the locals and before the stack.
      
      eval_code2() fills in the appropriate values after handling
      initialization of locals.
      
      To track the size the frame has an f_size member that tracks the total
      size of f_localsplus. It used to be implicitly f_nlocals + f_stacksize.
      2b724da8
  15. 25 Ock, 2001 1 kayıt (commit)
    • Jeremy Hylton's avatar
      PEP 227 implementation · 64949cb7
      Jeremy Hylton yazdı
      The majority of the changes are in the compiler.  The mainloop changes
      primarily to implement the new opcodes and to pass a function's
      closure to eval_code2().  Frames and functions got new slots to hold
      the closure.
      
      Include/compile.h
          Add co_freevars and co_cellvars slots to code objects.
          Update PyCode_New() to take freevars and cellvars as arguments
      Include/funcobject.h
          Add func_closure slot to function objects.
          Add GetClosure()/SetClosure() functions (and corresponding
          macros) for getting at the closure.
      Include/frameobject.h
          PyFrame_New() now takes a closure.
      Include/opcode.h
          Add four new opcodes: MAKE_CLOSURE, LOAD_CLOSURE, LOAD_DEREF,
          STORE_DEREF.
          Remove comment about old requirement for opcodes to fit in 7
          bits.
      compile.c
          Implement changes to code objects for co_freevars and co_cellvars.
      
          Modify symbol table to use st_cur_name (string object for the name
          of the current scope) and st_cur_children (list of nested blocks).
          Also define st_nested, which might more properly be called
          st_cur_nested.  Add several DEF_XXX flags to track def-use
          information for free variables.
      
          New or modified functions of note:
          com_make_closure(struct compiling *, PyCodeObject *)
              Emit LOAD_CLOSURE opcodes as needed to pass cells for free
              variables into nested scope.
          com_addop_varname(struct compiling *, int, char *)
              Emits opcodes for LOAD_DEREF and STORE_DEREF.
          get_ref_type(struct compiling *, char *name)
              Return NAME_CLOSURE if ref type is FREE or CELL
          symtable_load_symbols(struct compiling *)
              Decides what variables are cell or free based on def-use info.
              Can now raise SyntaxError if nested scopes are mixed with
              exec or from blah import *.
          make_scope_info(PyObject *, PyObject *, int, int)
              Helper functions for symtable scope stack.
          symtable_update_free_vars(struct symtable *)
              After a code block has been analyzed, it must check each of
              its children for free variables that are not defined in the
              block.  If a variable is free in a child and not defined in
              the parent, then it is defined by block the enclosing the
              current one or it is a global.  This does the right logic.
          symtable_add_use() is now a macro for symtable_add_def()
          symtable_assign(struct symtable *, node *)
              Use goto instead of for (;;)
      
          Fixed bug in symtable where name of keyword argument in function
          call was treated as assignment in the scope of the call site. Ex:
              def f():
                  g(a=2) # a was considered a local of f
      
      ceval.c
          eval_code2() now take one more argument, a closure.
          Implement LOAD_CLOSURE, LOAD_DEREF, STORE_DEREF, MAKE_CLOSURE>
      
          Also: When name error occurs for global variable, report that the
          name was global in the error mesage.
      
      Objects/frameobject.c
          Initialize f_closure to be a tuple containing space for cellvars
          and freevars.  f_closure is NULL if neither are present.
      Objects/funcobject.c
          Add support for func_closure.
      Python/import.c
          Change the magic number.
      Python/marshal.c
          Track changes to code objects.
      64949cb7
  16. 01 Eyl, 2000 1 kayıt (commit)
  17. 09 Tem, 2000 1 kayıt (commit)
  18. 30 Haz, 2000 2 kayıt (commit)
  19. 04 Ara, 1998 1 kayıt (commit)
  20. 05 May, 1997 1 kayıt (commit)
  21. 20 Ock, 1997 1 kayıt (commit)
  22. 30 Ara, 1996 1 kayıt (commit)
  23. 25 Eki, 1996 1 kayıt (commit)
  24. 24 May, 1996 1 kayıt (commit)
  25. 18 Tem, 1995 1 kayıt (commit)
  26. 27 Şub, 1995 1 kayıt (commit)
  27. 17 Ock, 1995 1 kayıt (commit)
  28. 12 Ock, 1995 1 kayıt (commit)
  29. 09 Ock, 1995 1 kayıt (commit)
  30. 04 Ock, 1995 1 kayıt (commit)
    • Guido van Rossum's avatar
      Added 1995 copyright. · 5799b520
      Guido van Rossum yazdı
      object.h: made sizes and refcnts signed ints.
      stringobject.h: make getstrsize() signed int.
      methodobject.h: add METH_VARARGS and METH_FREENAME flag bit definitions.
      5799b520
  31. 18 Agu, 1994 1 kayıt (commit)
  32. 01 Agu, 1994 1 kayıt (commit)
  33. 28 Tem, 1993 1 kayıt (commit)
    • Guido van Rossum's avatar
      * Added support for X11 modules. · a3309960
      Guido van Rossum yazdı
      * Makefile: change location of FORMS library.
      * posixmodule.c: turn #if 0 into #ifdef MSDOS (stuff in unistd.h or not)
      * Almost all .h files: added CPP magic to avoid duplicate inclusions and
        to support inclusion from C++.
      a3309960
  34. 25 May, 1993 1 kayıt (commit)
    • Guido van Rossum's avatar
      * classobject.c: in instance_getattr, don't make a method out of a · eb6b33a8
      Guido van Rossum yazdı
        function found as instance data.
      * socketmodule.c: added 'flags' argument sendto/recvfrom, rewrite
        argument parsing in send/recv.
      * More changes related to access (terminology change: owner instead of
        class; allow any object as owner; local/global variables are owned
        by their dictionary, only class/instance data is owned by the class;
        "from...import *" now only imports objects with public access; etc.)
      eb6b33a8
  35. 20 May, 1993 1 kayıt (commit)
  36. 30 Mar, 1993 1 kayıt (commit)
  37. 29 Mar, 1993 1 kayıt (commit)
    • Guido van Rossum's avatar
      * Changed all copyright messages to include 1993. · 9bfef44d
      Guido van Rossum yazdı
      * Stubs for faster implementation of local variables (not yet finished)
      * Added function name to code object.  Print it for code and function
        objects.  THIS MAKES THE .PYC FILE FORMAT INCOMPATIBLE (the version
        number has changed accordingly)
      * Print address of self for built-in methods
      * New internal functions getattro and setattro (getattr/setattr with
        string object arg)
      * Replaced "dictobject" with more powerful "mappingobject"
      * New per-type functio tp_hash to implement arbitrary object hashing,
        and hashobject() to interface to it
      * Added built-in functions hash(v) and hasattr(v, 'name')
      * classobject: made some functions static that accidentally weren't;
        added __hash__ special instance method to implement hash()
      * Added proper comparison for built-in methods and functions
      9bfef44d
  38. 18 Eki, 1992 1 kayıt (commit)
    • Guido van Rossum's avatar
      * bltinmodule.c: added built-in function cmp(a, b) · a9e7dc10
      Guido van Rossum yazdı
      * flmodule.c: added {do,check}_only_forms to fl's list of functions;
        and don't print a message when an unknown object is returned.
      
      * pythonrun.c: catch SIGHUP and SIGTERM to do essential cleanup.
      
      * Made jpegmodule.c smaller by using getargs() and mkvalue() consistently.
      
      * Increased parser stack size to 500 in parser.h.
      
      * Implemented custom allocation of stack frames to frameobject.c and
        added dynamic stack overflow checks (value stack only) to ceval.c.
        (There seems to be a bug left: sometimes stack traces don't make sense.)
      a9e7dc10
  39. 05 Nis, 1992 1 kayıt (commit)