Raymond Hettinger
c8aa08b172
Some (but not all) of the why code bitfield tests ran faster as
...
separate equality tests. Now, all are set to their best timing.
2004-04-11 14:59:33 +00:00
Raymond Hettinger
5bed456056
Revert 2.393, elimination of pre-decrementing, which
...
did not stand-up to additional timings.
2004-04-10 23:34:17 +00:00
Raymond Hettinger
7eddd78a15
Use continue instead of break whereever possible.
2004-04-07 14:38:08 +00:00
Raymond Hettinger
d3b836d202
* Improve readability and remove data dependencies by converting
...
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.
2004-04-07 13:17:27 +00:00
Raymond Hettinger
467a698bd2
Small code improvements for readability, code size, and/or speed.
...
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
2004-04-07 11:39:21 +00:00
Raymond Hettinger
7c9586545e
Simplify previous checkin (bitfields for WHY codes).
...
Restores the self-documenting enum declaration.
2004-04-06 10:11:10 +00:00
Raymond Hettinger
06032cb664
Coded WHY flags as bitfields (taking inspiration from tp_flags).
...
This allows multiple flags to be tested in a single compare
which eliminates unnecessary compares and saves a few bytes.
2004-04-06 09:37:35 +00:00
Tim Peters
8a5c3c76be
Since the fast_yield branch target was introduced, it appears that most
...
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).
2004-04-05 19:36:21 +00:00
Jeremy Hylton
d4ceb31664
Bump the magic number to avoid sharing bytecode between 2.3 and 2.4.
...
Revise the long comment that explained details of the magic number
in gory detail.
2004-04-01 02:45:22 +00:00
Andrew MacIntyre
da4d6cb573
OS/2 VACPP build updates/fixes
2004-03-29 11:53:38 +00:00
Armin Rigo
01ab279056
Marshal clean-up (SF patch #873224 )
2004-03-26 15:09:27 +00:00
Nicholas Bastin
2786d90617
A few more PyThreadState_Get to PyThreadState_GET conversions
2004-03-25 02:16:23 +00:00
Nicholas Bastin
e5662aedef
Changed random calls to PyThreadState_Get() to use the macro
2004-03-24 22:22:12 +00:00
Nicholas Bastin
c69ebe8d50
Enable the profiling of C functions (builtins and extensions)
2004-03-24 21:57:10 +00:00
Martin v. Löwis
83969eeeeb
Decref all if ensure_fromlist fails. Fixes #876533 .
...
Backported to 2.3.
2004-03-23 16:28:13 +00:00
Armin Rigo
5d2c68359b
Lost reference.
2004-03-22 20:16:58 +00:00
Armin Rigo
bf57a14522
Fix SF bug #765624 .
2004-03-22 19:24:58 +00:00
Armin Rigo
80d937e986
Fix for line events in the case:
...
def f(a):
if a:
print 5
else:
pass
2004-03-22 17:52:53 +00:00
Nicholas Bastin
a7604bf1b4
Moved tracebackobject to traceback.h, Closes SF Bug #497067
2004-03-21 18:37:23 +00:00
Raymond Hettinger
ff5bc50bb0
Improve byte coding for multiple assignments.
...
Gives 30% speedup on "a,b=1,2" and 25% on "a,b,c=1,2,3".
2004-03-21 15:12:00 +00:00
Armin Rigo
9dbf9084e8
Cancelled checkin, sorry.
2004-03-20 21:50:13 +00:00
Armin Rigo
1515fc2a01
A 2% speed improvement with gcc on low-endian machines. My guess is that this
...
new pattern for NEXTARG() is detected and optimized as a single (*short)
loading.
2004-03-20 20:03:17 +00:00
Raymond Hettinger
fba1cfc49a
LIST_APPEND is predicably followed by JUMP_ABSOLUTE.
...
Reduces loop overhead by an additional 10%.
2004-03-12 16:33:17 +00:00
Raymond Hettinger
2d783e9b16
Move the code for BREAK and CONTINUE_LOOP to be near FOR_ITER.
...
Makes it more likely that all loop operations are in the cache
at the same time.
2004-03-12 09:12:22 +00:00
Raymond Hettinger
db0de9e7ca
Speedup for-loops by inlining PyIter_Next(). Saves duplicate tests
...
and a function call resulting in a 15% reduction of total loop overhead
(as measured by timeit.Timer('pass')).
2004-03-12 08:41:36 +00:00
Raymond Hettinger
f114a3ae63
Refactor and optimize code for UNPACK_SEQUENCE.
...
* 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.
2004-03-08 23:25:30 +00:00
Raymond Hettinger
dd80f76265
SF patch #910929 : Optimize list comprehensions
...
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.
2004-03-07 07:31:06 +00:00
Hye-Shik Chang
30e97dbe96
SF Patch #902444 : Use process scope thread on FreeBSD. System scope
...
is too expensive on FreeBSD's KSE threading infrastructure and
even test_threadedimport fails on default setting.
2004-03-04 06:35:57 +00:00
Skip Montanaro
6babcc2ad4
typo
2004-03-03 08:42:23 +00:00
Skip Montanaro
786ea6bc23
Add pystack definition to Misc/gdbinit with some explanation of its behavior
...
and add flag comments to ceval.c and main.c alerting people to the coupling
between pystack and the layout of those files.
2004-03-01 15:44:05 +00:00
Michael W. Hudson
ecfeb7f095
This is my patch #876198 plus a NEWS entry and a header frob.
...
Remove the ability to use (from C) arbitrary objects supporting the
read buffer interface as the co_code member of code objects.
2004-02-12 15:28:27 +00:00
Skip Montanaro
7befb9966e
remove support for missing ANSI C header files (limits.h, stddef.h, etc).
2004-02-10 16:50:21 +00:00
Raymond Hettinger
a72169871d
SF patch #884022 : dynamic execution profiling vs opcode prediction
...
(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.
2004-02-08 19:59:27 +00:00
Skip Montanaro
f1afe6682c
Remove support for systems defining Py_PTHREAD_D[467] in
...
Python/thread_pthread.h.
2004-02-07 13:00:18 +00:00
Raymond Hettinger
1dd8309246
SF patch #864059 : optimize eval_frame
...
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.
2004-02-06 18:32:33 +00:00
Hye-Shik Chang
ff83c2bacc
Fix input() builtin function to respect compiler flags.
...
(SF patch 876178, patch by mwh, unittest by perky)
2004-02-02 13:39:01 +00:00
Skip Montanaro
b9949dbe6c
Remove support for DYNIX, IRIX 4, --with-sgi-dl, --with-dl-dld
2004-01-17 04:04:13 +00:00
Skip Montanaro
4d474becd8
remove DGUX support.
2004-01-17 00:29:32 +00:00
Raymond Hettinger
b86269db45
Apply pre-sizing optimization to a broader class of objects.
...
Formerly, the length was only fetched from sequence objects.
Now, any object that reports its length can benefit from pre-sizing.
2004-01-04 11:00:08 +00:00
Raymond Hettinger
77f3c87113
Apply map/zip pre-sizing optimization to a broader class of objects.
...
Formerly, the length was only fetched from sequence objects.
Now, any object that reports its length can benefit from pre-sizing.
2004-01-04 08:54:44 +00:00
Jeremy Hylton
ecd9129c94
Add comment to mollify Tim.
2004-01-02 23:25:32 +00:00
Hye-Shik Chang
7db07e6972
Fix gcc 3.3 warnings related to Py_UNICODE_WIDE.
2003-12-29 01:36:01 +00:00
Raymond Hettinger
64958a15d7
Guido grants a Christmas wish:
...
sorted() becomes a regular function instead of a classmethod.
2003-12-17 20:43:33 +00:00
Fred Drake
d75ede3238
Remove the PendingDeprecationWarning from apply(). apply() will
...
remain deprecated in the documentation.
2003-12-05 17:34:27 +00:00
Tim Peters
1d7323e4e7
Py_Finalize(): disabled the second call of cyclic gc, and added extensive
...
comments about why both calls to cyclic gc here can cause problems.
I'll backport to 2.3 maint. Since the calls were introduced in 2.3,
that will be the end of it.
2003-12-01 21:35:27 +00:00
Guido van Rossum
6c9e130524
- Removed FutureWarnings related to hex/oct literals and conversions
...
and left shifts. (Thanks to Kalle Svensson for SF patch 849227.)
This addresses most of the remaining semantic changes promised by
PEP 237, except for repr() of a long, which still shows the trailing
'L'. The PEP appears to promise warnings for operations that
changed semantics compared to Python 2.3, but this is not
implemented; we've suffered through enough warnings related to
hex/oct literals and I think it's best to be silent now.
2003-11-29 23:52:13 +00:00
Jack Jansen
eddc1449ba
Getting rid of all the code inside #ifdef macintosh too.
2003-11-20 01:44:59 +00:00
Jack Jansen
4bae2d5e46
Getting rid of code dependent on GUSI or the MetroWerks compiler.
2003-11-19 22:52:23 +00:00
Jack Jansen
a53f4eba19
Getting rid of code conditional on TARGET_API_MAC_*.
2003-11-19 16:34:04 +00:00
Jack Jansen
37249c5524
WITHOUT_FRAMEWORKS conditional code bites the dust: this was for
...
pre-carbon MacOS9 support.
2003-11-19 15:32:46 +00:00