summaryrefslogtreecommitdiff
path: root/Python/ceval.c
Commit message (Collapse)AuthorAgeFilesLines
* Centralize WITH_TSC processing.Martin v. Löwis2004-08-291-37/+3
|
* This is my patch:Michael W. Hudson2004-08-121-1/+33
| | | | | | [ 1005891 ] support --with-tsc on PPC plus a trivial change to settscdump's docstring and a Misc/NEWS entry.
* This was quite a dark bug in my recent in-place string concatenationArmin Rigo2004-08-071-1/+1
| | | | | | hack: it would resize *interned* strings in-place! This occurred because their reference counts do not have their expected value -- stringobject.c hacks them. Mea culpa.
* SF patch #980695: efficient string concatenationRaymond Hettinger2004-08-061-2/+91
| | | | (Original patch by Armin Rigo).
* Fix for the unfortunate fact that PyDict_GetItem and PyObject_GetItemMichael W. Hudson2004-08-021-2/+4
| | | | | | | have differing refcount semantics. If anyone sees a prettier way to acheive the same ends, then please go for it. I think this is the first time I've ever used Py_XINCREF.
* Completed the patch for Bug #215126.Raymond Hettinger2004-08-021-3/+3
| | | | | | | * Fixes an incorrect variable in a PyDict_CheckExact. * Allow general mapping locals arguments for the execfile() function and exec statement. * Add tests.
* Remove unused macros in .c filesNeal Norwitz2004-07-081-3/+0
|
* This closes patch:Michael W. Hudson2004-07-071-1/+1
| | | | | | | | | | | | | | | | | [ 960406 ] unblock signals in threads although the changes do not correspond exactly to any patch attached to that report. Non-main threads no longer have all signals masked. A different interface to readline is used. The handling of signals inside calls to PyOS_Readline is now rather different. These changes are all a bit scary! Review and cross-platform testing much appreciated.
* SF Bug #215126: Over restricted type checking on eval() functionRaymond Hettinger2004-07-021-4/+16
| | | | | | The builtin eval() function now accepts any mapping for the locals argument. Time sensitive steps guarded by PyDict_CheckExact() to keep from slowing down the normal case. My timings so no measurable impact.
* Patch #966493: Cleanup generator/eval_frame exposure.Martin v. Löwis2004-06-271-14/+6
|
* Get ceval.c to compile again by moving declarations before other statments.Raymond Hettinger2004-06-261-1/+2
|
* Massive performance improvement for C extension and builtin tracing codeNicholas Bastin2004-06-251-51/+27
|
* Less ugly #ifdefs for C profiling fixNicholas Bastin2004-06-221-12/+5
|
* One forgotten C profiling #ifdefNicholas Bastin2004-06-221-1/+2
|
* Making C profiling a configure option (at least temporarily)Nicholas Bastin2004-06-221-0/+12
|
* Install two code generation optimizations that depend on NOP.Raymond Hettinger2004-06-211-0/+3
| | | | Reduces the cost of "not" to almost zero.
* Performance tweak: allow stack_pointer and oparg to be register variables.Armin Rigo2004-06-171-7/+16
| | | | SF patch #943898
* Patch #510695: Add TSC profiling for the VM.Martin v. Löwis2004-06-081-2/+150
|
* SF bug #963956: Bad error mesage when subclassing a moduleRaymond Hettinger2004-06-051-0/+9
| | | | | | Add a more informative message for the common user mistake of subclassing from a module name rather than another class (i.e. random instead of random.random).
* Patch #957398: Add public API for Generator Object/Type.Martin v. Löwis2004-06-011-138/+8
|
* Some (but not all) of the why code bitfield tests ran faster asRaymond Hettinger2004-04-111-3/+4
| | | | separate equality tests. Now, all are set to their best timing.
* Revert 2.393, elimination of pre-decrementing, whichRaymond Hettinger2004-04-101-17/+13
| | | | did not stand-up to additional timings.
* Use continue instead of break whereever possible.Raymond Hettinger2004-04-071-2/+8
|
* * Improve readability and remove data dependencies by convertingRaymond Hettinger2004-04-071-14/+18
| | | | | | | | pre-increment forms to post-increment forms. Post-incrementing also eliminates the need for negative array indices for oparg fetches. * In exception handling code, check for class based exceptions before the older string based exceptions.
* Small code improvements for readability, code size, and/or speed.Raymond Hettinger2004-04-071-58/+54
| | | | | | | | | | | | | | | | | | | | | | | BINARY_SUBSCR: * invert test for normal case fall through * eliminate err handling code by jumping to slow_case LOAD_LOCALS: * invert test for normal case fall through * continue instead of break for the non-error case STORE_NAME and DELETE_NAME: * invert test for normal case fall through LOAD_NAME: * continue instead of break for the non-error case DELETE_FAST: * invert test for normal case fall through LOAD_DEREF: * invert test for normal case fall through * continue instead of break for the non-error case
* Simplify previous checkin (bitfields for WHY codes).Raymond Hettinger2004-04-061-12/+14
| | | | Restores the self-documenting enum declaration.
* Coded WHY flags as bitfields (taking inspiration from tp_flags).Raymond Hettinger2004-04-061-20/+16
| | | | | This allows multiple flags to be tested in a single compare which eliminates unnecessary compares and saves a few bytes.
* Since the fast_yield branch target was introduced, it appears that mostTim Peters2004-04-051-41/+41
| | | | | | | tests of "why" against WHY_YIELD became useless. This patch removes them, but assert()s that why != WHY_YIELD everywhere such a test was removed. The test suite ran fine under a debug build (i.e., the asserts never triggered).
* Changed random calls to PyThreadState_Get() to use the macroNicholas Bastin2004-03-241-5/+5
|
* Enable the profiling of C functions (builtins and extensions)Nicholas Bastin2004-03-241-3/+48
|
* Fix SF bug #765624.Armin Rigo2004-03-221-5/+12
|
* Cancelled checkin, sorry.Armin Rigo2004-03-201-10/+6
|
* A 2% speed improvement with gcc on low-endian machines. My guess is that thisArmin Rigo2004-03-201-6/+10
| | | | | new pattern for NEXTARG() is detected and optimized as a single (*short) loading.
* LIST_APPEND is predicably followed by JUMP_ABSOLUTE.Raymond Hettinger2004-03-121-1/+5
| | | | Reduces loop overhead by an additional 10%.
* Move the code for BREAK and CONTINUE_LOOP to be near FOR_ITER.Raymond Hettinger2004-03-121-9/+9
| | | | | Makes it more likely that all loop operations are in the cache at the same time.
* Speedup for-loops by inlining PyIter_Next(). Saves duplicate testsRaymond Hettinger2004-03-121-8/+10
| | | | | and a function call resulting in a 15% reduction of total loop overhead (as measured by timeit.Timer('pass')).
* Refactor and optimize code for UNPACK_SEQUENCE.Raymond Hettinger2004-03-081-27/+13
| | | | | | | | | | * Defer error handling for wrong number of arguments to the unpack_iterable() function. Cuts the code size almost in half. * Replace function calls to PyList_Size() and PyTuple_Size() with their smaller and faster macro counterparts. * Move the constant structure references outside of the inner loops.
* SF patch #910929: Optimize list comprehensionsRaymond Hettinger2004-03-071-0/+9
| | | | | Add a new opcode, LIST_APPEND, and apply it to the code generation for list comprehensions. Reduces the per-loop overhead by about a third.
* Add pystack definition to Misc/gdbinit with some explanation of its behaviorSkip Montanaro2004-03-011-0/+4
| | | | | and add flag comments to ceval.c and main.c alerting people to the coupling between pystack and the layout of those files.
* This is my patch #876198 plus a NEWS entry and a header frob.Michael W. Hudson2004-02-121-1/+1
| | | | | Remove the ability to use (from C) arbitrary objects supporting the read buffer interface as the co_code member of code objects.
* remove support for missing ANSI C header files (limits.h, stddef.h, etc).Skip Montanaro2004-02-101-11/+0
|
* SF patch #884022: dynamic execution profiling vs opcode predictionRaymond Hettinger2004-02-081-0/+9
| | | | | | | | | (Contributed by Andrew I MacIntyre.) disables opcode prediction when dynamic execution profiling is in effect, so the profiling counters at the top of the main interpreter loop in eval_frame() are updated for each opcode.
* SF patch #864059: optimize eval_frameRaymond Hettinger2004-02-061-5/+6
| | | | | | Simplified version of Neal Norwitz's patch which adds gotos for opcodes that set "why". This skips a number of tests where the outcome of the tests are known in advance.
* Getting rid of all the code inside #ifdef macintosh too.Jack Jansen2003-11-201-5/+1
|
* Make undetected error on stack unwind a fatal error.Jeremy Hylton2003-11-051-4/+4
|
* Deleting cyclic object comparison.Armin Rigo2003-10-281-20/+36
| | | | | SF patch 825639 http://mail.python.org/pipermail/python-dev/2003-October/039445.html
* oh dear. Wrong manipulation. Committed a version of ceval.c from myArmin Rigo2003-10-251-28/+20
| | | | | | no-cyclic-comparison patch at the same time as errors.c. Reverting ceval.c to the previous revision.
* Made function declaration a proper C prototypeArmin Rigo2003-10-251-20/+28
|
* Simplify and speedup uses of Py_BuildValue():Raymond Hettinger2003-10-121-3/+3
| | | | | | * Py_BuildValue("(OOO)",a,b,c) --> PyTuple_Pack(3,a,b,c) * Py_BuildValue("()",a) --> PyTuple_New(0) * Py_BuildValue("O", a) --> Py_INCREF(a)
* Fix SF #762455, segfault when sys.stdout is changed in getattrNeal Norwitz2003-06-291-0/+6
| | | | Will backport.