summaryrefslogtreecommitdiffstats
path: root/Python/ceval.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Make a handy macro, Py_DEFAULT_RECURSION_LIMIT to allow to defineHye-Shik Chang2005-04-041-2/+5
| | | | | a default value of recursion limit from build systems. 1000 levels are still too high for some 64bit systems.
* Change the name of the macro used by --with-tsc builds to the lessMichael W. Hudson2005-01-181-29/+32
| | | | inscrutable READ_TIMESTAMP.
* comment tweakSkip Montanaro2005-01-081-1/+1
|
* Hye-Shik Chang's fix for Bug 875692.Kurt B. Kaiser2004-11-231-0/+6
| | | | | | | | | Improve signal handling, especially when using threads, by forcing an early re-execution of PyEval_EvalFrame() "periodic" code when things_to_do is not cleared by Py_MakePendingCalls(). M Misc/NEWS M Python/ceval.c
* SF patch 1044089: New C API function PyEval_ThreadsInitialized(), by NickTim Peters2004-10-111-3/+6
| | | | | Coghlan, for determining whether PyEval_InitThreads() has been called. Also purged the undocumented+unused _PyThread_Started int.
* SF bug #1014215: Unspecific errors with metaclassRaymond Hettinger2004-09-161-4/+16
| | | | | | | | | | | | | | High level error message was stomping useful detailed messages from lower level routines. The new approach is to augment string error messages returned by the low level routines. The provides both high and low level information. If the exception value is not a string, no changes are made. To see the improved messages in action, type: import random class R(random): pass class B(bool): pass
* 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
|