Jeffrey Yasskin
68d6852006
Backport r69961 to trunk, replacing JUMP_IF_{TRUE,FALSE} with
...
POP_JUMP_IF_{TRUE,FALSE} and JUMP_IF_{TRUE,FALSE}_OR_POP. This avoids executing
a POP_TOP on each conditional and sometimes allows the peephole optimizer to
skip a JUMP_ABSOLUTE entirely. It speeds up list comprehensions significantly.
2009-02-28 19:03:21 +00:00
Collin Winter
8725dce2ae
Issue 5176: special-case string formatting in BINARY_MODULO implementation. This shows a modest (1-3%) speed-up in templating systems, for example.
2009-02-20 19:30:41 +00:00
Mark Dickinson
9e58a37252
Silence 'arg may be used uninitialized in this function' warning from gcc.
2009-02-08 17:33:11 +00:00
Benjamin Peterson
78821ddf8c
fix building the core with --disable-unicode
...
I changed some bytearray methods to use strings instead of unicode like bytes_repr
Also, bytearray.fromhex() can take strings as well as unicode
2009-01-25 17:15:10 +00:00
Benjamin Peterson
e18ef194d9
allow unicode keyword arguments for the ** syntax #4978
2009-01-20 14:21:16 +00:00
Kristján Valur Jónsson
0e91938e58
Issue 4293: Make Py_AddPendingCall() thread safe
2009-01-09 20:31:26 +00:00
Antoine Pitrou
d0c3515bc5
Issue #2183 : Simplify and optimize bytecode for list comprehensions.
2008-12-17 00:38:28 +00:00
Amaury Forgeot d'Arc
ad9b5992e3
#4559 : When a context manager's __exit__() method returns an object whose
...
conversion to bool raises an exception, 'with' loses that exception.
Reviewed by Jeffrey Yasskin.
Already ported to 2.5, will port to 2.6 and 3.0
2008-12-10 23:22:49 +00:00
Jeffrey Yasskin
2d873bd68b
Issue 4597: Fix several cases in EvalFrameEx where an exception could be
...
"raised" without setting x, err, or why to let the eval loop know.
2008-12-08 18:55:24 +00:00
Jeffrey Yasskin
fd8a1ec486
Speed up Python (according to pybench and 2to3-on-itself) by 1-2% by caching
...
whether any thread has tracing turned on, which saves one load instruction in
the fast_next_opcode path in PyEval_EvalFrameEx(). See issue 4477.
2008-12-03 06:46:45 +00:00
Antoine Pitrou
c2cc80c64e
Raymond's patch for #1819 : speedup function calls with named parameters
...
(35% faster according to pybench)
2008-07-25 22:13:52 +00:00
Jesse Noller
5e62ca4fea
Apply patch for 874900: threading module can deadlock after fork
2008-07-16 20:03:47 +00:00
Raymond Hettinger
afae11ea88
Update comment on prediction macros.
2008-07-05 02:11:55 +00:00
Georg Brandl
aa76d77e2b
Add a comment about incref'ing w.
2008-07-01 20:56:03 +00:00
Amaury Forgeot d'Arc
bdd941fac3
#3242 : fix a crash in "print", if sys.stdout is set to a custom object,
...
whose write() method installs another sys.stdout.
Will backport.
2008-07-01 20:38:04 +00:00
Gregory P. Smith
dd96db63f6
This reverts r63675 based on the discussion in this thread:
...
http://mail.python.org/pipermail/python-dev/2008-June/079988.html
Python 2.6 should stick with PyString_* in its codebase. The PyBytes_* names
in the spirit of 3.0 are available via a #define only. See the email thread.
2008-06-09 04:58:54 +00:00
Christian Heimes
593daf545b
Renamed PyString to PyBytes
2008-05-26 12:51:38 +00:00
Benjamin Peterson
f19a7b90bd
A little reformating of Py3k warnings
2008-04-27 18:40:21 +00:00
Benjamin Peterson
9f4f48114f
Use PyErr_WarnPy3k throughout
2008-04-27 03:01:45 +00:00
Georg Brandl
d5b635f196
Make Py3k warnings consistent w.r.t. punctuation; also respect the
...
EOL 80 limit and supply more alternatives in warning messages.
2008-03-25 08:29:14 +00:00
Guido van Rossum
504153d55b
Issue #2341 : Add a Py3k warning when raising an exception that doesn't
...
derive from BaseException.
2008-03-18 04:26:48 +00:00
Guido van Rossum
20bda581e3
Clean up the Py3k warnings for non-BaseException-subclasses a bit. We
...
now don't warn for some corner cases that deserve a warning, rather
than warning double or incorrectly for some other corner cases.
2008-03-18 03:15:05 +00:00
Guido van Rossum
04edb528ca
- Issue #2371 : Add a Py3k warning when catching an exception that
...
doesn't derive from BaseException.
2008-03-18 02:49:46 +00:00
Nick Coghlan
7af53be66f
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
2008-03-07 14:13:28 +00:00
Jeffrey Yasskin
9063a99042
compile.c always emits END_FINALLY after WITH_CLEANUP, so predict that in
...
ceval.c. This is worth about a .03-.04us speedup on a simple with block.
2008-03-03 01:27:03 +00:00
Neal Norwitz
8250fbeac6
Reduce buffer size since we do not need 1k
2008-01-27 17:12:15 +00:00
Guido van Rossum
1d9a9eaa89
Fix two crashers.
2008-01-23 20:19:01 +00:00
Christian Heimes
e93237dfcc
#1629 : Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
2007-12-19 02:37:44 +00:00
Raymond Hettinger
fd7ed407d7
Give meaning to the oparg for BUILD_MAP: estimated size of the dictionary.
...
Allows dictionaries to be pre-sized (upto 255 elements) saving time lost
to re-sizes with their attendant mallocs and re-insertions.
Has zero effect on small dictionaries (5 elements or fewer), a slight
benefit for dicts upto 22 elements (because they had to resize once
anyway), and more benefit for dicts upto 255 elements (saving multiple
resizes during the build-up and reducing the number of collisions on
the first insertions). Beyond 255 elements, there is no addional benefit.
2007-12-18 21:24:09 +00:00
Raymond Hettinger
effde12f5f
Speed-up dictionary constructor by about 10%.
...
New opcode, STORE_MAP saves the compiler from awkward stack manipulations
and specializes for dicts using PyDict_SetItem instead of PyObject_SetItem.
Old disassembly:
0 BUILD_MAP 0
3 DUP_TOP
4 LOAD_CONST 1 (1)
7 ROT_TWO
8 LOAD_CONST 2 ('x')
11 STORE_SUBSCR
12 DUP_TOP
13 LOAD_CONST 3 (2)
16 ROT_TWO
17 LOAD_CONST 4 ('y')
20 STORE_SUBSCR
New disassembly:
0 BUILD_MAP 0
3 LOAD_CONST 1 (1)
6 LOAD_CONST 2 ('x')
9 STORE_MAP
10 LOAD_CONST 3 (2)
13 LOAD_CONST 4 ('y')
16 STORE_MAP
2007-12-18 18:26:18 +00:00
Christian Heimes
52729ac856
Silence a warning about an unsed variable in debug builds
2007-12-14 02:33:57 +00:00
Georg Brandl
2d3953bd78
Fix typo.
2007-12-05 07:02:47 +00:00
Amaury Forgeot d'Arc
0d75f09177
Merge from py3k branch:
...
Correction for issue1265 (pdb bug with "with" statement).
When an unfinished generator-iterator is garbage collected, PyEval_EvalFrameEx
is called with a GeneratorExit exception set. This leads to funny results
if the sys.settrace function itself makes use of generators.
A visible effect is that the settrace function is reset to None.
Another is that the eventual "finally" block of the generator is not called.
It is necessary to save/restore the exception around the call to the trace
function.
This happens a lot with py3k: isinstance() of an ABCMeta instance runs
def __instancecheck__(cls, instance):
"""Override for isinstance(instance, cls)."""
return any(cls.__subclasscheck__(c)
for c in {instance.__class__, type(instance)})
which lets an opened generator expression each time it returns True.
Backport candidate, even if the case is less frequent in 2.5.
2007-11-13 21:54:28 +00:00
Raymond Hettinger
dc1d1ba9cf
Add build option for faster loop execution.
2007-11-07 02:45:46 +00:00
Thomas Wouters
e2176020f9
Try harder to stay within the 79-column limit. There's still two places that go (way) over, but those are harder to fix without suffering in readability.
2007-09-20 17:35:10 +00:00
Thomas Wouters
ae406c6018
Whitespace cleanup.
2007-09-19 17:27:43 +00:00
Martin v. Löwis
6819210b9e
PEP 3123: Provide forward compatibility with Python 3.0, while keeping
...
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
PyVarObject_HEAD_INIT.
2007-07-21 06:55:02 +00:00
Georg Brandl
2134e754f2
Patch #1686487 : you can now pass any mapping after '**' in function calls.
2007-05-21 20:34:16 +00:00
Georg Brandl
bc1b5f1669
Remove an XXX that is unnecessary.
2007-05-11 09:41:37 +00:00
Kristján Valur Jónsson
2f2f57916c
Fix a bug when using the __lltrace__ opcode tracer, and a problem sith signed chars in frameobject.c which can occur with opcodes > 127
2007-04-13 22:07:33 +00:00
Georg Brandl
5cb76c19ba
Patch #1682205 : a TypeError while unpacking an iterable is no longer
...
masked by a generic one with the message "unpack non-sequence".
2007-03-21 09:00:39 +00:00
Georg Brandl
0fca97a5fb
Patch #1674228 : when assigning a slice (old-style), check for the
...
sq_ass_slice instead of the sq_slice slot.
2007-03-05 22:28:08 +00:00
Jeremy Hylton
7c1e347f73
Reformat long lines.
2007-02-26 16:14:51 +00:00
Jeremy Hylton
714b112ae5
Put declarations before code.
2007-02-25 16:01:58 +00:00
Jeremy Hylton
c5ceb251b3
Fix crash in exec when unicode filename can't be decoded.
...
I can't think of an easy way to test this behavior. It only occurs
when the file system default encoding and the interpreter default
encoding are different, such that you can open the file but not decode
its name.
2007-02-25 15:57:45 +00:00
Brett Cannon
129bd52146
No more raising of string exceptions!
...
The next step of PEP 352 (for 2.6) causes raising a string exception to trigger
a TypeError. Trying to catch a string exception raises a DeprecationWarning.
References to string exceptions has been removed from the docs since they are
now just an error.
2007-01-30 21:34:36 +00:00
Raymond Hettinger
4bd97d4549
SF# 1409443: Expand comment to cover the interaction between f->f_lasti and the PREDICT macros.
2007-01-06 01:14:41 +00:00
Armin Rigo
7037085959
Forgot a case where the locals can now be a general mapping
...
instead of just a dictionary. (backporting...)
2006-11-29 21:59:22 +00:00
Andrew M. Kuchling
1f3ebe0b10
[Bug #1542016 ] Report PCALL_POP value. This makes the return value of sys.callstats() match its docstring.
...
Backport candidate. Though it's an API change, this is a pretty obscure
portion of the API.
2006-10-27 13:22:46 +00:00
Neal Norwitz
df6a6494cb
Move/copy assert for tstate != NULL before first use.
...
Verify that PyEval_Get{Globals,Locals} returned valid pointers.
Klocwork 231-232
2006-08-13 18:10:10 +00:00