[Python-checkins] cpython (merge 2.7 -> 2.7): Merge 2.7 heads.
robert.collins
python-checkins at python.org
Mon Aug 24 02:10:57 CEST 2015
https://hg.python.org/cpython/rev/61b77bdfbc54
changeset: 97467:61b77bdfbc54
branch: 2.7
parent: 97466:3256764fadae
parent: 97462:ea2f6fd04307
user: Robert Collins <rbtcollins at hp.com>
date: Mon Aug 24 12:10:23 2015 +1200
summary:
Merge 2.7 heads.
files:
Doc/library/xml.etree.elementtree.rst | 30 +-
Include/pymath.h | 24 +-
Lib/distutils/msvc9compiler.py | 2 +-
Lib/idlelib/NEWS.txt | 26 +-
Lib/idlelib/ScriptBinding.py | 2 +-
Lib/idlelib/StackViewer.py | 10 +-
Lib/test/regrtest.py | 14 +-
Lib/uuid.py | 8 +-
Misc/ACKS | 2 +
Misc/NEWS | 71 +-
Parser/tokenizer.c | 5 +-
Python/ceval.c | 346 +++++++-------
12 files changed, 307 insertions(+), 233 deletions(-)
diff --git a/Doc/library/xml.etree.elementtree.rst b/Doc/library/xml.etree.elementtree.rst
--- a/Doc/library/xml.etree.elementtree.rst
+++ b/Doc/library/xml.etree.elementtree.rst
@@ -600,21 +600,29 @@
.. attribute:: text
+ tail
- The *text* attribute can be used to hold additional data associated with
- the element. As the name implies this attribute is usually a string but
- may be any application-specific object. If the element is created from
- an XML file the attribute will contain any text found between the element
- tags.
+ These attributes can be used to hold additional data associated with
+ the element. Their values are usually strings but may be any
+ application-specific object. If the element is created from
+ an XML file, the *text* attribute holds either the text between
+ the element's start tag and its first child or end tag, or ``None``, and
+ the *tail* attribute holds either the text between the element's
+ end tag and the next tag, or ``None``. For the XML data
+ .. code-block:: xml
- .. attribute:: tail
+ <a><b>1<c>2<d/>3</c></b>4</a>
- The *tail* attribute can be used to hold additional data associated with
- the element. This attribute is usually a string but may be any
- application-specific object. If the element is created from an XML file
- the attribute will contain any text found after the element's end tag and
- before the next tag.
+ the *a* element has ``None`` for both *text* and *tail* attributes,
+ the *b* element has *text* ``"1"`` and *tail* ``"4"``,
+ the *c* element has *text* ``"2"`` and *tail* ``None``,
+ and the *d* element has *text* ``None`` and *tail* ``"3"``.
+
+ To collect the inner text of an element, see :meth:`itertext`, for
+ example ``"".join(element.itertext())``.
+
+ Applications may store arbitrary objects in these attributes.
.. attribute:: attrib
diff --git a/Include/pymath.h b/Include/pymath.h
--- a/Include/pymath.h
+++ b/Include/pymath.h
@@ -152,7 +152,29 @@
* doesn't support NaNs.
*/
#if !defined(Py_NAN) && !defined(Py_NO_NAN)
-#define Py_NAN (Py_HUGE_VAL * 0.)
+#if !defined(__INTEL_COMPILER)
+ #define Py_NAN (Py_HUGE_VAL * 0.)
+#else /* __INTEL_COMPILER */
+ #if defined(ICC_NAN_STRICT)
+ #pragma float_control(push)
+ #pragma float_control(precise, on)
+ #pragma float_control(except, on)
+ #if defined(_MSC_VER)
+ __declspec(noinline)
+ #else /* Linux */
+ __attribute__((noinline))
+ #endif /* _MSC_VER */
+ static double __icc_nan()
+ {
+ return sqrt(-1.0);
+ }
+ #pragma float_control (pop)
+ #define Py_NAN __icc_nan()
+ #else /* ICC_NAN_RELAXED as default for Intel Compiler */
+ static union { unsigned char buf[8]; double __icc_nan; } __nan_store = {0,0,0,0,0,0,0xf8,0x7f};
+ #define Py_NAN (__nan_store.__icc_nan)
+ #endif /* ICC_NAN_STRICT */
+#endif /* __INTEL_COMPILER */
#endif
/* Py_OVERFLOWED(X)
diff --git a/Lib/distutils/msvc9compiler.py b/Lib/distutils/msvc9compiler.py
--- a/Lib/distutils/msvc9compiler.py
+++ b/Lib/distutils/msvc9compiler.py
@@ -426,7 +426,7 @@
self.ldflags_shared = ['/DLL', '/nologo', '/INCREMENTAL:NO']
if self.__version >= 7:
self.ldflags_shared_debug = [
- '/DLL', '/nologo', '/INCREMENTAL:no', '/DEBUG', '/pdb:None'
+ '/DLL', '/nologo', '/INCREMENTAL:no', '/DEBUG'
]
self.ldflags_static = [ '/nologo']
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -1,7 +1,29 @@
+What's New in IDLE 2.7.11?
+=========================
+
+*Release date:
+
+- Issue #23672: Allow Idle to edit and run files with astral chars in name.
+ Patch by Mohd Sanad Zaki Rizvi.
+
+- Issue 24745: Idle editor default font. Switch from Courier to
+ platform-sensitive TkFixedFont. This should not affect current customized
+ font selections. If there is a problem, edit $HOME/.idlerc/config-main.cfg
+ and remove 'fontxxx' entries from [Editor Window]. Patch by Mark Roseman.
+
+- Issue #21192: Idle editor. When a file is run, put its name in the restart bar.
+ Do not print false prompts. Original patch by Adnan Umer.
+
+- Issue #13884: Idle menus. Remove tearoff lines. Patch by Roger Serwy.
+
+- Issue #15809: IDLE shell now uses locale encoding instead of Latin1 for
+ decoding unicode literals.
+
+
What's New in IDLE 2.7.10?
=========================
-*Release data: 2015-05-23*
+*Release date: 2015-05-23*
- Issue #23583: Fixed writing unicode to standard output stream in IDLE.
@@ -20,7 +42,7 @@
What's New in IDLE 2.7.9?
=========================
-*Release data: 2014-12-10*
+*Release date: 2014-12-10*
- Issue #16893: Update Idle doc chapter to match current Idle and add new
information.
diff --git a/Lib/idlelib/ScriptBinding.py b/Lib/idlelib/ScriptBinding.py
--- a/Lib/idlelib/ScriptBinding.py
+++ b/Lib/idlelib/ScriptBinding.py
@@ -71,7 +71,7 @@
try:
tabnanny.process_tokens(tokenize.generate_tokens(f.readline))
except tokenize.TokenError as msg:
- msgtxt, (lineno, start) = msg
+ msgtxt, (lineno, start) = msg.args
self.editwin.gotoline(lineno)
self.errorbox("Tabnanny Tokenizing Error",
"Token Error: %s" % msgtxt)
diff --git a/Lib/idlelib/StackViewer.py b/Lib/idlelib/StackViewer.py
--- a/Lib/idlelib/StackViewer.py
+++ b/Lib/idlelib/StackViewer.py
@@ -10,8 +10,7 @@
def StackBrowser(root, flist=None, tb=None, top=None):
if top is None:
- from Tkinter import Toplevel
- top = Toplevel(root)
+ top = tk.Toplevel(root)
sc = ScrolledCanvas(top, bg="white", highlightthickness=0)
sc.frame.pack(expand=1, fill="both")
item = StackTreeItem(flist, tb)
@@ -108,12 +107,9 @@
def IsExpandable(self):
return len(self.object) > 0
- def keys(self):
- return self.object.keys()
-
def GetSubList(self):
sublist = []
- for key in self.keys():
+ for key in self.object.keys():
try:
value = self.object[key]
except KeyError:
@@ -124,7 +120,7 @@
sublist.append(item)
return sublist
-def _stack_viewer(parent):
+def _stack_viewer(parent): # htest #
root = tk.Tk()
root.title("Test StackViewer")
width, height, x, y = list(map(int, re.split('[x+]', parent.geometry())))
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -624,14 +624,12 @@
for time, test in test_times[:10]:
print "%s: %.1fs" % (test, time)
if bad:
- bad = set(bad) - set(environment_changed)
- if bad:
- print count(len(bad), "test"), "failed:"
- printlist(bad)
- if environment_changed:
- print "{} altered the execution environment:".format(
- count(len(environment_changed), "test"))
- printlist(environment_changed)
+ print count(len(bad), "test"), "failed:"
+ printlist(bad)
+ if environment_changed:
+ print "{} altered the execution environment:".format(
+ count(len(environment_changed), "test"))
+ printlist(environment_changed)
if skipped and not quiet:
print count(len(skipped), "test"), "skipped:"
printlist(skipped)
diff --git a/Lib/uuid.py b/Lib/uuid.py
--- a/Lib/uuid.py
+++ b/Lib/uuid.py
@@ -441,10 +441,14 @@
_uuid_generate_random = _uuid_generate_time = _UuidCreate = None
try:
import ctypes, ctypes.util
+ import sys
# The uuid_generate_* routines are provided by libuuid on at least
# Linux and FreeBSD, and provided by libc on Mac OS X.
- for libname in ['uuid', 'c']:
+ _libnames = ['uuid']
+ if not sys.platform.startswith('win'):
+ _libnames.append('c')
+ for libname in _libnames:
try:
lib = ctypes.CDLL(ctypes.util.find_library(libname))
except:
@@ -455,6 +459,7 @@
_uuid_generate_time = lib.uuid_generate_time
if _uuid_generate_random is not None:
break # found everything we were looking for
+ del _libnames
# The uuid_generate_* functions are broken on MacOS X 10.5, as noted
# in issue #8621 the function generates the same sequence of values
@@ -463,7 +468,6 @@
#
# Assume that the uuid_generate functions are broken from 10.5 onward,
# the test can be adjusted when a later version is fixed.
- import sys
if sys.platform == 'darwin':
import os
if int(os.uname()[2].split('.')[0]) >= 9:
diff --git a/Misc/ACKS b/Misc/ACKS
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -573,6 +573,7 @@
Chris Hoffman
Stefan Hoffmeister
Albert Hofkamp
+Chris Hogan
Tomas Hoger
Jonathan Hogg
Kamilla Holanda
@@ -1139,6 +1140,7 @@
Wes Rishel
Daniel Riti
Juan M. Bello Rivas
+Mohd Sanad Zaki Rizvi
Davide Rizzo
Anthony Roach
Carl Robben
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@
Core and Builtins
-----------------
+- Issue #21167: NAN operations are now handled correctly when python is
+ compiled with ICC even if -fp-model strict is not specified.
+
- Issue #24467: Fixed possible buffer over-read in bytearray. The bytearray
object now always allocates place for trailing null byte and it's buffer now
is always null-terminated.
@@ -37,6 +40,8 @@
- Issue #22812: Fix unittest discovery examples.
Patch from Pam McA'Nulty.
+- Issue #24634: Importing uuid should not try to load libc on Windows
+
- Issue #23652: Make it possible to compile the select module against the
libc headers from the Linux Standard Base, which do not include some
EPOLL macros. Initial patch by Matt Frank.
@@ -100,7 +105,7 @@
- Issue #24257: Fixed segmentation fault in sqlite3.Row constructor with faked
cursor type.
-- Issue #24286: Dict view were not registered with the MappingView abstract
+- Issue #24286: Dict view were not registered with the MappingView abstract
base classes. This caused key and item views in OrderedDict to not be equal
to their regular dict counterparts.
@@ -139,6 +144,19 @@
IDLE
----
+- Issue #23672: Allow Idle to edit and run files with astral chars in name.
+ Patch by Mohd Sanad Zaki Rizvi.
+
+- Issue 24745: Idle editor default font. Switch from Courier to
+ platform-sensitive TkFixedFont. This should not affect current customized
+ font selections. If there is a problem, edit $HOME/.idlerc/config-main.cfg
+ and remove 'fontxxx' entries from [Editor Window]. Patch by Mark Roseman.
+
+- Issue #21192: Idle editor. When a file is run, put its name in the restart bar.
+ Do not print false prompts. Original patch by Adnan Umer.
+
+- Issue #13884: Idle menus. Remove tearoff lines. Patch by Roger Serwy.
+
- Issue #15809: IDLE shell now uses locale encoding instead of Latin1 for
decoding unicode literals.
@@ -179,9 +197,9 @@
Core and Builtins
-----------------
-- Issue #23971: Fix underestimated presizing in dict.fromkeys().
-
-- Issue #23757: PySequence_Tuple() incorrectly called the concrete list API
+- Issue #23971: Fix underestimated presizing in dict.fromkeys().
+
+- Issue #23757: PySequence_Tuple() incorrectly called the concrete list API
when the data was a list subclass.
- Issue #23629: Fix the default __sizeof__ implementation for variable-sized
@@ -772,7 +790,7 @@
- Issue #16233: A module browser (File : Class Browser, Alt+C) requires a
editor window with a filename. When Class Browser is requested otherwise,
from a shell, output window, or 'Untitled' editor, Idle no longer displays
- an error box. It now pops up an Open Module box (Alt+M). If a valid name
+ an error box. It now pops up an Open Module box (Alt+M). If a valid name
is entered and a module is opened, a corresponding browser is also opened.
- Issue #4832: Save As to type Python files automatically adds .py to the
@@ -910,18 +928,18 @@
- Issue #21672: Fix the behavior of ntpath.join on UNC-style paths.
-- Issue #19145: The times argument for itertools.repeat now handles
+- Issue #19145: The times argument for itertools.repeat now handles
negative values the same way for keyword arguments as it does for
positional arguments.
-- Issue #21832: Require named tuple inputs to be exact strings.
-
-- Issue #8343: Named group error messages in the re module did not show
+- Issue #21832: Require named tuple inputs to be exact strings.
+
+- Issue #8343: Named group error messages in the re module did not show
the name of the erroneous group.
- Issue #21491: SocketServer: Fix a race condition in child processes reaping.
-- Issue #21635: The difflib SequenceMatcher.get_matching_blocks() method
+- Issue #21635: The difflib SequenceMatcher.get_matching_blocks() method
cache didn't match the actual result. The former was a list of tuples
and the latter was a list of named tuples.
@@ -958,7 +976,7 @@
- Issue #8743: Fix interoperability between set objects and the
collections.Set() abstract base class.
-- Issue #21481: Argparse equality and inequality tests now return
+- Issue #21481: Argparse equality and inequality tests now return
NotImplemented when comparing to an unknown type.
IDLE
@@ -1100,7 +1118,7 @@
- Issue #21470: Do a better job seeding the random number generator by
using enough bytes to span the full state space of the Mersenne Twister.
-- Issue #21469: Reduced the risk of false positives in robotparser by
+- Issue #21469: Reduced the risk of false positives in robotparser by
checking to make sure that robots.txt has been read or does not exist
prior to returning True in can_fetch().
@@ -1597,7 +1615,7 @@
- Issue #19131: The aifc module now correctly reads and writes sampwidth of
compressed streams.
-- Issue #19158: a rare race in BoundedSemaphore could allow .release() too
+- Issue #19158: A rare race in BoundedSemaphore could allow .release() too
often.
- Issue #18037: 2to3 now escapes '\u' and '\U' in native strings.
@@ -3598,7 +3616,7 @@
greater or equal to the default value, the value with which the interpreter
was built.
-- Issue #11802: The cache in filecmp now has a maximum size of 100 so that
+- Issue #11802: The cache in filecmp now has a maximum size of 100 so that
it won't grow without bound.
- Issue #12404: Remove C89 incompatible code from mmap module. Patch by Akira
@@ -3984,7 +4002,7 @@
- Issue #11277: mmap.mmap() calls fcntl(fd, F_FULLFSYNC) on Mac OS X to get
around a mmap bug with sparse files. Patch written by Steffen Daode Nurpmeso.
-- Issue #10761: Fix tarfile.extractall failure when symlinked files are
+- Issue #10761: Fix tarfile.extractall failure when symlinked files are
present. Initial patch by Scott Leerssen.
- Issue #11763: don't use difflib in TestCase.assertMultiLineEqual if the
@@ -4495,7 +4513,7 @@
- Issue #8530: Prevent stringlib fastsearch from reading beyond the front
of an array.
-- Issue #83755: Implicit set-to-frozenset conversion was not thread-safe.
+- Issue #83755: Implicit set-to-frozenset conversion was not thread-safe.
- Issue #9416: Fix some issues with complex formatting where the
output with no type specifier failed to match the str output:
@@ -4892,7 +4910,7 @@
os.getgroups() can now return more than 16 groups on MacOSX.
- Issue #9277: Fix bug in struct.pack for bools in standard mode
- (e.g., struct.pack('>?')): if conversion to bool raised an exception
+ (e.g., struct.pack('>?')): if conversion to bool raised an exception
then that exception wasn't properly propagated on machines where
char is unsigned.
@@ -4940,7 +4958,7 @@
- Issue #9275: The OSX installer once again installs links to binaries in
``/usr/local/bin``.
-- Issue #9392: A framework build on OSX will once again use a versioned name
+- Issue #9392: A framework build on OSX will once again use a versioned name
of the ``2to3`` tool, that is you can use ``2to3-2.7`` to select the Python
2.7 edition of 2to3.
@@ -6899,7 +6917,7 @@
- Issue #6851: Fix urllib.urlopen crash on secondairy threads on OSX 10.6
-- Issue #4606: Passing 'None' if ctypes argtype is set to POINTER(...) does now
+- Issue #4606: Passing 'None' if ctypes argtype is set to POINTER(...) does now
always result in NULL.
- Issue #5042: ctypes Structure sub-subclass does now initialize correctly with
@@ -7744,7 +7762,7 @@
wasn't working with file paths containing spaces.
- Issue #5783: Windows: Version string for the .chm help file changed,
- file not being accessed Patch by Guilherme Polo/
+ file not being accessed. Patch by Guilherme Polo/
- Issue #1529142: Allow multiple IDLE GUI/subprocess pairs to exist
simultaneously. Thanks to David Scherer for suggesting the use of an
@@ -8440,7 +8458,7 @@
- Issue #3437: Bug fix in robotparser parsing of Allow: lines.
-- Issue #1592: Improve error reporting when operations are attempted
+- Issue #1592: Improve error reporting when operations are attempted
on a closed shelf.
- Deprecate the "ast" parser function aliases.
@@ -8662,7 +8680,7 @@
- Add future_builtins.ascii().
-- Several set methods now accept multiple arguments: update(), union(),
+- Several set methods now accept multiple arguments: update(), union(),
intersection(), intersection_update(), difference(), and difference_update().
- Issue #2898: Added sys.getsizeof() to retrieve size of objects in bytes.
@@ -8698,7 +8716,7 @@
-----------------
- Issue #1179: [CVE-2007-4965] Integer overflow in imageop module.
-- Issue #3116: marshal.dumps() had quadratic behavior for strings > 32Mb.
+- Issue #3116: marshal.dumps() had quadratic behavior for strings > 32Mb.
- Issue #2138: Add factorial() to the math module.
@@ -9680,9 +9698,9 @@
- When __slots__ are set to a unicode string, make it work the same as
setting a plain string, ie don't expand to single letter identifiers.
-- Request #1191699: Slices can now be pickled.
-
-- Request #1193128: str.translate() now allows a None argument for
+- Request #1191699: Slices can now be pickled.
+
+- Request #1193128: str.translate() now allows a None argument for
translations that only remove characters without re-mapping the
remaining characters.
@@ -11201,3 +11219,4 @@
----
**(For information about older versions, consult the HISTORY file.)**
+
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -235,7 +235,10 @@
if (begin < t) {
char* r = new_string(begin, t - begin);
- char* q = get_normal_name(r);
+ char* q;
+ if (!r)
+ return NULL;
+ q = get_normal_name(r);
if (r != q) {
PyMem_FREE(r);
r = new_string(q, strlen(q));
diff --git a/Python/ceval.c b/Python/ceval.c
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -709,73 +709,73 @@
/* This macro is used when several opcodes defer to the same implementation
(e.g. SETUP_LOOP, SETUP_FINALLY) */
#define TARGET_WITH_IMPL(op, impl) \
- TARGET_##op: \
- opcode = op; \
- oparg = NEXTARG(); \
- case op: \
- goto impl; \
+ TARGET_##op: \
+ opcode = op; \
+ oparg = NEXTARG(); \
+ case op: \
+ goto impl; \
#define TARGET_WITH_IMPL_NOARG(op, impl) \
- TARGET_##op: \
- opcode = op; \
- case op: \
- goto impl; \
+ TARGET_##op: \
+ opcode = op; \
+ case op: \
+ goto impl; \
#define TARGET_NOARG(op) \
- TARGET_##op: \
- opcode = op; \
- case op:\
+ TARGET_##op: \
+ opcode = op; \
+ case op:\
#define TARGET(op) \
- TARGET_##op: \
- opcode = op; \
- oparg = NEXTARG(); \
- case op:\
+ TARGET_##op: \
+ opcode = op; \
+ oparg = NEXTARG(); \
+ case op:\
#define DISPATCH() \
- { \
- int _tick = _Py_Ticker - 1; \
- _Py_Ticker = _tick; \
- if (_tick >= 0) { \
- FAST_DISPATCH(); \
- } \
- continue; \
- }
+ { \
+ int _tick = _Py_Ticker - 1; \
+ _Py_Ticker = _tick; \
+ if (_tick >= 0) { \
+ FAST_DISPATCH(); \
+ } \
+ continue; \
+ }
#ifdef LLTRACE
#define FAST_DISPATCH() \
- { \
- if (!lltrace && !_Py_TracingPossible) { \
- f->f_lasti = INSTR_OFFSET(); \
- goto *opcode_targets[*next_instr++]; \
- } \
- goto fast_next_opcode; \
- }
+ { \
+ if (!lltrace && !_Py_TracingPossible) { \
+ f->f_lasti = INSTR_OFFSET(); \
+ goto *opcode_targets[*next_instr++]; \
+ } \
+ goto fast_next_opcode; \
+ }
#else
#define FAST_DISPATCH() { \
- if (!_Py_TracingPossible) { \
- f->f_lasti = INSTR_OFFSET(); \
- goto *opcode_targets[*next_instr++]; \
- } \
- goto fast_next_opcode;\
+ if (!_Py_TracingPossible) { \
+ f->f_lasti = INSTR_OFFSET(); \
+ goto *opcode_targets[*next_instr++]; \
+ } \
+ goto fast_next_opcode;\
}
#endif
#else
#define TARGET(op) \
- case op:
+ case op:
#define TARGET_WITH_IMPL(op, impl) \
- /* silence compiler warnings about `impl` unused */ \
- if (0) goto impl; \
- case op:\
+ /* silence compiler warnings about `impl` unused */ \
+ if (0) goto impl; \
+ case op:\
#define TARGET_NOARG(op) \
- case op:\
+ case op:\
#define TARGET_WITH_IMPL_NOARG(op, impl) \
- if (0) goto impl; \
- case op:\
+ if (0) goto impl; \
+ case op:\
#define DISPATCH() continue
#define FAST_DISPATCH() goto fast_next_opcode
@@ -1206,9 +1206,9 @@
/* case STOP_CODE: this is an error! */
TARGET_NOARG(NOP)
- {
- FAST_DISPATCH();
- }
+ {
+ FAST_DISPATCH();
+ }
TARGET(LOAD_FAST)
{
@@ -1216,7 +1216,7 @@
if (x != NULL) {
Py_INCREF(x);
PUSH(x);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
format_exc_check_arg(PyExc_UnboundLocalError,
UNBOUNDLOCAL_ERROR_MSG,
@@ -1229,7 +1229,7 @@
x = GETITEM(consts, oparg);
Py_INCREF(x);
PUSH(x);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
PREDICTED_WITH_ARG(STORE_FAST);
@@ -1237,14 +1237,14 @@
{
v = POP();
SETLOCAL(oparg, v);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
TARGET_NOARG(POP_TOP)
{
v = POP();
Py_DECREF(v);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
TARGET_NOARG(ROT_TWO)
@@ -1253,7 +1253,7 @@
w = SECOND();
SET_TOP(w);
SET_SECOND(v);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
TARGET_NOARG(ROT_THREE)
@@ -1264,11 +1264,11 @@
SET_TOP(w);
SET_SECOND(x);
SET_THIRD(v);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
TARGET_NOARG(ROT_FOUR)
- {
+ {
u = TOP();
v = SECOND();
w = THIRD();
@@ -1278,7 +1278,7 @@
SET_THIRD(x);
SET_FOURTH(u);
FAST_DISPATCH();
- }
+ }
TARGET_NOARG(DUP_TOP)
@@ -1286,7 +1286,7 @@
v = TOP();
Py_INCREF(v);
PUSH(v);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
@@ -1300,7 +1300,7 @@
STACKADJ(2);
SET_TOP(x);
SET_SECOND(w);
- FAST_DISPATCH();
+ FAST_DISPATCH();
} else if (oparg == 3) {
x = TOP();
Py_INCREF(x);
@@ -1312,7 +1312,7 @@
SET_TOP(x);
SET_SECOND(w);
SET_THIRD(v);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
Py_FatalError("invalid argument to DUP_TOPX"
" (bytecode corruption?)");
@@ -1326,7 +1326,7 @@
x = PyNumber_Positive(v);
Py_DECREF(v);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1336,7 +1336,7 @@
x = PyNumber_Negative(v);
Py_DECREF(v);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1348,13 +1348,13 @@
if (err == 0) {
Py_INCREF(Py_True);
SET_TOP(Py_True);
- DISPATCH();
+ DISPATCH();
}
else if (err > 0) {
Py_INCREF(Py_False);
SET_TOP(Py_False);
err = 0;
- DISPATCH();
+ DISPATCH();
}
STACKADJ(-1);
break;
@@ -1366,7 +1366,7 @@
x = PyObject_Repr(v);
Py_DECREF(v);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1376,7 +1376,7 @@
x = PyNumber_Invert(v);
Py_DECREF(v);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1388,7 +1388,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1400,7 +1400,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if(x!=NULL) DISPATCH();
+ if(x!=NULL) DISPATCH();
break;
}
@@ -1413,7 +1413,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
}
@@ -1426,7 +1426,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1438,7 +1438,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1453,7 +1453,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1487,7 +1487,7 @@
skip_decref_vx:
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1514,7 +1514,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1540,7 +1540,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1552,7 +1552,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1564,7 +1564,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1576,7 +1576,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1588,7 +1588,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1600,7 +1600,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1612,7 +1612,7 @@
Py_DECREF(w);
if (err == 0) {
PREDICT(JUMP_ABSOLUTE);
- DISPATCH();
+ DISPATCH();
}
break;
}
@@ -1625,7 +1625,7 @@
Py_DECREF(w);
if (err == 0) {
PREDICT(JUMP_ABSOLUTE);
- DISPATCH();
+ DISPATCH();
}
break;
}
@@ -1638,7 +1638,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1650,7 +1650,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1663,7 +1663,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
}
@@ -1677,7 +1677,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1689,7 +1689,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1701,7 +1701,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1733,7 +1733,7 @@
skip_decref_v:
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1758,7 +1758,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1770,7 +1770,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1782,7 +1782,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1794,7 +1794,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1806,7 +1806,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1818,7 +1818,7 @@
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -1826,10 +1826,10 @@
TARGET_WITH_IMPL_NOARG(SLICE, _slice)
TARGET_WITH_IMPL_NOARG(SLICE_1, _slice)
- TARGET_WITH_IMPL_NOARG(SLICE_2, _slice)
- TARGET_WITH_IMPL_NOARG(SLICE_3, _slice)
- _slice:
- {
+ TARGET_WITH_IMPL_NOARG(SLICE_2, _slice)
+ TARGET_WITH_IMPL_NOARG(SLICE_3, _slice)
+ _slice:
+ {
if ((opcode-SLICE) & 2)
w = POP();
else
@@ -1844,17 +1844,17 @@
Py_XDECREF(v);
Py_XDECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
- }
+ }
TARGET_WITH_IMPL_NOARG(STORE_SLICE, _store_slice)
TARGET_WITH_IMPL_NOARG(STORE_SLICE_1, _store_slice)
- TARGET_WITH_IMPL_NOARG(STORE_SLICE_2, _store_slice)
- TARGET_WITH_IMPL_NOARG(STORE_SLICE_3, _store_slice)
- _store_slice:
- {
+ TARGET_WITH_IMPL_NOARG(STORE_SLICE_2, _store_slice)
+ TARGET_WITH_IMPL_NOARG(STORE_SLICE_3, _store_slice)
+ _store_slice:
+ {
if ((opcode-STORE_SLICE) & 2)
w = POP();
else
@@ -1870,17 +1870,17 @@
Py_DECREF(u);
Py_XDECREF(v);
Py_XDECREF(w);
- if (err == 0) DISPATCH();
+ if (err == 0) DISPATCH();
break;
- }
+ }
TARGET_WITH_IMPL_NOARG(DELETE_SLICE, _delete_slice)
TARGET_WITH_IMPL_NOARG(DELETE_SLICE_1, _delete_slice)
- TARGET_WITH_IMPL_NOARG(DELETE_SLICE_2, _delete_slice)
- TARGET_WITH_IMPL_NOARG(DELETE_SLICE_3, _delete_slice)
- _delete_slice:
- {
+ TARGET_WITH_IMPL_NOARG(DELETE_SLICE_2, _delete_slice)
+ TARGET_WITH_IMPL_NOARG(DELETE_SLICE_3, _delete_slice)
+ _delete_slice:
+ {
if ((opcode-DELETE_SLICE) & 2)
w = POP();
else
@@ -1895,9 +1895,9 @@
Py_DECREF(u);
Py_XDECREF(v);
Py_XDECREF(w);
- if (err == 0) DISPATCH();
+ if (err == 0) DISPATCH();
break;
- }
+ }
TARGET_NOARG(STORE_SUBSCR)
{
@@ -1910,7 +1910,7 @@
Py_DECREF(u);
Py_DECREF(v);
Py_DECREF(w);
- if (err == 0) DISPATCH();
+ if (err == 0) DISPATCH();
break;
}
@@ -1923,7 +1923,7 @@
err = PyObject_DelItem(v, w);
Py_DECREF(v);
Py_DECREF(w);
- if (err == 0) DISPATCH();
+ if (err == 0) DISPATCH();
break;
}
@@ -2006,7 +2006,7 @@
Py_DECREF(v);
Py_XDECREF(stream);
stream = NULL;
- if (err == 0) DISPATCH();
+ if (err == 0) DISPATCH();
break;
}
@@ -2018,8 +2018,8 @@
TARGET_NOARG(PRINT_NEWLINE)
{
- if (stream == NULL || stream == Py_None)
- {
+ if (stream == NULL || stream == Py_None)
+ {
w = PySys_GetObject("stdout");
if (w == NULL) {
PyErr_SetString(PyExc_RuntimeError,
@@ -2046,7 +2046,7 @@
#endif
TARGET(RAISE_VARARGS)
- {
+ {
u = v = w = NULL;
switch (oparg) {
case 3:
@@ -2067,15 +2067,15 @@
break;
}
break;
- }
+ }
TARGET_NOARG(LOAD_LOCALS)
{
- if ((x = f->f_locals) != NULL)
- {
+ if ((x = f->f_locals) != NULL)
+ {
Py_INCREF(x);
PUSH(x);
- DISPATCH();
+ DISPATCH();
}
PyErr_SetString(PyExc_SystemError, "no locals");
break;
@@ -2120,7 +2120,7 @@
Py_DECREF(v);
}
}
- DISPATCH();
+ DISPATCH();
}
PREDICTED(END_FINALLY);
@@ -2175,7 +2175,7 @@
else
err = PyObject_SetItem(x, w, v);
Py_DECREF(v);
- if (err == 0) DISPATCH();
+ if (err == 0) DISPATCH();
break;
}
t = PyObject_Repr(w);
@@ -2222,7 +2222,7 @@
PUSH(w);
}
Py_DECREF(v);
- DISPATCH();
+ DISPATCH();
} else if (PyList_CheckExact(v) &&
PyList_GET_SIZE(v) == oparg) {
PyObject **items = \
@@ -2253,7 +2253,7 @@
err = PyObject_SetAttr(v, w, u); /* v.w = u */
Py_DECREF(v);
Py_DECREF(u);
- if (err == 0) DISPATCH();
+ if (err == 0) DISPATCH();
break;
}
@@ -2274,7 +2274,7 @@
v = POP();
err = PyDict_SetItem(f->f_globals, w, v);
Py_DECREF(v);
- if (err == 0) DISPATCH();
+ if (err == 0) DISPATCH();
break;
}
@@ -2328,7 +2328,7 @@
Py_INCREF(x);
}
PUSH(x);
- DISPATCH();
+ DISPATCH();
}
TARGET(LOAD_GLOBAL)
@@ -2352,7 +2352,7 @@
if (x != NULL) {
Py_INCREF(x);
PUSH(x);
- DISPATCH();
+ DISPATCH();
}
d = (PyDictObject *)(f->f_builtins);
e = d->ma_lookup(d, w, hash);
@@ -2364,7 +2364,7 @@
if (x != NULL) {
Py_INCREF(x);
PUSH(x);
- DISPATCH();
+ DISPATCH();
}
goto load_global_error;
}
@@ -2383,7 +2383,7 @@
}
Py_INCREF(x);
PUSH(x);
- DISPATCH();
+ DISPATCH();
}
TARGET(DELETE_FAST)
@@ -2391,7 +2391,7 @@
x = GETLOCAL(oparg);
if (x != NULL) {
SETLOCAL(oparg, NULL);
- DISPATCH();
+ DISPATCH();
}
format_exc_check_arg(
PyExc_UnboundLocalError,
@@ -2406,7 +2406,7 @@
x = freevars[oparg];
Py_INCREF(x);
PUSH(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -2416,7 +2416,7 @@
w = PyCell_Get(x);
if (w != NULL) {
PUSH(w);
- DISPATCH();
+ DISPATCH();
}
err = -1;
/* Don't stomp existing exception */
@@ -2444,7 +2444,7 @@
x = freevars[oparg];
PyCell_Set(x, w);
Py_DECREF(w);
- DISPATCH();
+ DISPATCH();
}
TARGET(BUILD_TUPLE)
@@ -2456,7 +2456,7 @@
PyTuple_SET_ITEM(x, oparg, w);
}
PUSH(x);
- DISPATCH();
+ DISPATCH();
}
break;
}
@@ -2470,7 +2470,7 @@
PyList_SET_ITEM(x, oparg, w);
}
PUSH(x);
- DISPATCH();
+ DISPATCH();
}
break;
}
@@ -2490,7 +2490,7 @@
break;
}
PUSH(x);
- DISPATCH();
+ DISPATCH();
}
break;
}
@@ -2499,7 +2499,7 @@
{
x = _PyDict_NewPresized((Py_ssize_t)oparg);
PUSH(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -2513,7 +2513,7 @@
err = PyDict_SetItem(v, w, u); /* v[w] = u */
Py_DECREF(u);
Py_DECREF(w);
- if (err == 0) DISPATCH();
+ if (err == 0) DISPATCH();
break;
}
@@ -2529,7 +2529,7 @@
Py_DECREF(w);
if (err == 0) {
PREDICT(JUMP_ABSOLUTE);
- DISPATCH();
+ DISPATCH();
}
break;
}
@@ -2541,7 +2541,7 @@
x = PyObject_GetAttr(v, w);
Py_DECREF(v);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -2579,7 +2579,7 @@
if (x == NULL) break;
PREDICT(POP_JUMP_IF_FALSE);
PREDICT(POP_JUMP_IF_TRUE);
- DISPATCH();
+ DISPATCH();
}
TARGET(IMPORT_NAME)
@@ -2624,7 +2624,7 @@
READ_TIMESTAMP(intr1);
Py_DECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -2642,7 +2642,7 @@
READ_TIMESTAMP(intr1);
PyFrame_LocalsToFast(f, 0);
Py_DECREF(v);
- if (err == 0) DISPATCH();
+ if (err == 0) DISPATCH();
break;
}
@@ -2654,14 +2654,14 @@
x = import_from(v, w);
READ_TIMESTAMP(intr1);
PUSH(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
TARGET(JUMP_FORWARD)
{
JUMPBY(oparg);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
PREDICTED_WITH_ARG(POP_JUMP_IF_FALSE);
@@ -2670,12 +2670,12 @@
w = POP();
if (w == Py_True) {
Py_DECREF(w);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
if (w == Py_False) {
Py_DECREF(w);
JUMPTO(oparg);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
err = PyObject_IsTrue(w);
Py_DECREF(w);
@@ -2685,7 +2685,7 @@
JUMPTO(oparg);
else
break;
- DISPATCH();
+ DISPATCH();
}
PREDICTED_WITH_ARG(POP_JUMP_IF_TRUE);
@@ -2694,12 +2694,12 @@
w = POP();
if (w == Py_False) {
Py_DECREF(w);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
if (w == Py_True) {
Py_DECREF(w);
JUMPTO(oparg);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
err = PyObject_IsTrue(w);
Py_DECREF(w);
@@ -2711,7 +2711,7 @@
;
else
break;
- DISPATCH();
+ DISPATCH();
}
TARGET(JUMP_IF_FALSE_OR_POP)
@@ -2720,11 +2720,11 @@
if (w == Py_True) {
STACKADJ(-1);
Py_DECREF(w);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
if (w == Py_False) {
JUMPTO(oparg);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
err = PyObject_IsTrue(w);
if (err > 0) {
@@ -2736,7 +2736,7 @@
JUMPTO(oparg);
else
break;
- DISPATCH();
+ DISPATCH();
}
TARGET(JUMP_IF_TRUE_OR_POP)
@@ -2745,11 +2745,11 @@
if (w == Py_False) {
STACKADJ(-1);
Py_DECREF(w);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
if (w == Py_True) {
JUMPTO(oparg);
- FAST_DISPATCH();
+ FAST_DISPATCH();
}
err = PyObject_IsTrue(w);
if (err > 0) {
@@ -2762,7 +2762,7 @@
}
else
break;
- DISPATCH();
+ DISPATCH();
}
PREDICTED_WITH_ARG(JUMP_ABSOLUTE);
@@ -2779,7 +2779,7 @@
*/
goto fast_next_opcode;
#else
- DISPATCH();
+ DISPATCH();
#endif
}
@@ -2792,7 +2792,7 @@
if (x != NULL) {
SET_TOP(x);
PREDICT(FOR_ITER);
- DISPATCH();
+ DISPATCH();
}
STACKADJ(-1);
break;
@@ -2808,7 +2808,7 @@
PUSH(x);
PREDICT(STORE_FAST);
PREDICT(UNPACK_SEQUENCE);
- DISPATCH();
+ DISPATCH();
}
if (PyErr_Occurred()) {
if (!PyErr_ExceptionMatches(
@@ -2820,7 +2820,7 @@
x = v = POP();
Py_DECREF(v);
JUMPBY(oparg);
- DISPATCH();
+ DISPATCH();
}
TARGET_NOARG(BREAK_LOOP)
@@ -2842,9 +2842,9 @@
TARGET_WITH_IMPL(SETUP_LOOP, _setup_finally)
TARGET_WITH_IMPL(SETUP_EXCEPT, _setup_finally)
- TARGET(SETUP_FINALLY)
- _setup_finally:
- {
+ TARGET(SETUP_FINALLY)
+ _setup_finally:
+ {
/* NOTE: If you add any new block-setup opcodes that
are not try/except/finally handlers, you may need
to update the PyGen_NeedsFinalizing() function.
@@ -2852,8 +2852,8 @@
PyFrame_BlockSetup(f, opcode, INSTR_OFFSET() + oparg,
STACK_LEVEL());
- DISPATCH();
- }
+ DISPATCH();
+ }
@@ -2884,8 +2884,8 @@
STACK_LEVEL());
PUSH(x);
- DISPATCH();
- }
+ DISPATCH();
+ }
}
TARGET_NOARG(WITH_CLEANUP)
@@ -2988,14 +2988,14 @@
#endif
stack_pointer = sp;
PUSH(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
TARGET_WITH_IMPL(CALL_FUNCTION_VAR, _call_function_var_kw)
TARGET_WITH_IMPL(CALL_FUNCTION_KW, _call_function_var_kw)
- TARGET(CALL_FUNCTION_VAR_KW)
- _call_function_var_kw:
+ TARGET(CALL_FUNCTION_VAR_KW)
+ _call_function_var_kw:
{
int na = oparg & 0xff;
int nk = (oparg>>8) & 0xff;
@@ -3033,7 +3033,7 @@
Py_DECREF(w);
}
PUSH(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
@@ -3110,7 +3110,7 @@
Py_DECREF(v);
Py_XDECREF(w);
SET_TOP(x);
- if (x != NULL) DISPATCH();
+ if (x != NULL) DISPATCH();
break;
}
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list