Mark Dickinson
d3e323215c
Refactor some longobject internals: PyLong_AsDouble and _PyLong_AsScaledDouble
...
(the latter renamed to _PyLong_Frexp) now use the same core code. The
exponent produced by _PyLong_Frexp now has type Py_ssize_t instead of the
previously used int, and no longer needs scaling by PyLong_SHIFT. This
frees the math module from having to know anything about the PyLong
implementation. This closes issue #5576 .
2010-01-02 14:45:40 +00:00
Mark Dickinson
99d652ef66
Issue #7534 : Fix handling of nans, infinities, and negative zero in **
...
operator, on IEEE 754 platforms. Thanks Marcos Donolo for original patch.
2009-12-30 12:12:23 +00:00
Mark Dickinson
4657283647
Issue #1811 : Improve accuracy and consistency of true division for integers.
2009-12-27 14:55:57 +00:00
Ezio Melotti
f84caf4eda
#6108 : unicode(exception) and str(exception) should return the same message
2009-12-24 22:25:17 +00:00
Mark Dickinson
e31d300664
Issue #7528 : Backport PyLong_AsLongAndOverflow from py3k to trunk.
...
Thanks Case Van Horsen for the patch.
2009-12-21 11:21:25 +00:00
Benjamin Peterson
0c0dcaf272
remove type_compare, since type_richcompare does the same trick
2009-12-16 03:36:22 +00:00
R. David Murray
0a0a1a842c
Issue #1680159 : unicode coercion during an 'in' operation was masking
...
any errors that might occur during coercion of the left operand and
turning them into a TypeError with a message text that was confusing in
the given context. This patch lets any errors through, as was already
done during coercion of the right hand side.
2009-12-14 16:28:26 +00:00
Benjamin Peterson
4895af4ef1
fix the ignoring of __cmp__ method on metaclasses #7491
2009-12-13 16:36:53 +00:00
Antoine Pitrou
c169c781a8
Issue #7466 : segmentation fault when the garbage collector is called
...
in the middle of populating a tuple. Patch by Florent Xicluna.
(note: no NEWS entry for trunk since the bug was introduced in 2.7/3.1)
2009-12-12 19:13:08 +00:00
Benjamin Peterson
5fb877027b
substitute PyDict_Check() for PyObject_IsInstance
2009-12-10 03:37:59 +00:00
Mark Dickinson
1691025ff2
Avoid undefined behaviour due to overflow in i_divmod (Objects/intobject.c).
2009-12-04 11:24:38 +00:00
Benjamin Peterson
91c12ebc3d
disable pymalloc tricks with the --with-valgrind option #2422
...
Patch from James Henstridge.
2009-12-03 02:52:39 +00:00
Mark Dickinson
34398184eb
Issue #7406 : Fix some occurrences of potential signed overflow in int
...
arithmetic.
2009-12-02 17:33:41 +00:00
Eric Smith
c4ab8339e9
Issue #3382 : Make '%F' and float.__format__('F') convert results to upper case. Much of the patch came from Mark Dickinson.
2009-11-29 17:40:57 +00:00
Mark Dickinson
31f0cfef0e
Include ieeefp.h (when available) in pyport.h instead of individually in
...
Objects/floatobject.c and Objects/complexobject.c. This should silence
compiler warnings about implicit declaration of the 'finite' function
on Solaris.
2009-11-28 12:30:36 +00:00
Mark Dickinson
9dd5e16c5d
Issue #7117 , continued: Remove substitution of %g-style formatting for
...
%f-style formatting, which used to occur at high precision. Float formatting
should now be consistent between 2.7 and 3.1.
2009-11-23 20:54:09 +00:00
Mark Dickinson
18cfada1ea
Remove restriction on precision when formatting floats. This is the
...
first step towards removing the %f -> %g switch (see issues 7117,
5859).
2009-11-23 18:46:41 +00:00
Benjamin Peterson
dc3c239b1e
#5037 proxy __unicode__ correctly
2009-11-19 03:00:02 +00:00
Raymond Hettinger
79628d311f
Issue 7263: Fix set.intersection() docstring.
2009-11-18 20:28:22 +00:00
Mark Dickinson
bd15a06fd3
Issue #7117 , continued: Change round implementation to use the correctly-rounded
...
string <-> float conversions; this makes sure that the result of the round
operation is correctly rounded, and hence displays nicely using the new float
repr.
2009-11-18 19:33:35 +00:00
Mark Dickinson
3d6790e49f
Silence another MSVC warning about unary minus.
2009-11-16 19:17:16 +00:00
Mark Dickinson
b2c3ca1e38
Silence MSVC warning about unary minus applied to unsigned type.
2009-11-16 17:33:25 +00:00
Mark Dickinson
82864d1ab1
Issue #7228 : Add '%lld' and '%llu' support to PyFormat_FromString,
...
PyFormat_FromStringV and PyErr_Format.
2009-11-15 16:18:58 +00:00
Mark Dickinson
009ae861f2
Avoid signed overflow in some xrange calculations, and extend
...
xrange tests to cover some special cases that caused problems
in py3k. This is a partial backport of r76292-76293 (see
issue #7298.)
2009-11-15 12:31:13 +00:00
Benjamin Peterson
c45a0cfb5f
grant list.index() a more informative error message #7252
2009-11-02 16:14:19 +00:00
Benjamin Peterson
e2caf1f60e
prevent a rather unlikely segfault
2009-11-02 15:06:45 +00:00
Mark Dickinson
c04c7c5b72
Issue #7117 : Use PyOS_string_to_double instead of PyOS_ascii_strtod in
...
complexobject.c. Also remove length restriction on unicode inputs to
the complex constructor.
2009-10-26 22:28:14 +00:00
Mark Dickinson
8568b19850
Issue #7117 : Use PyOS_string_to_double instead of PyOS_ascii_strtod in
...
floatobject.c. Also, remove limitation on length of unicode inputs to
float().
2009-10-26 21:11:20 +00:00
Eric Smith
c1bdf89145
Finished removing _PyOS_double_to_string, as mentioned in issue 7117.
2009-10-26 17:46:17 +00:00
Eric Smith
cfaf79c56e
Start to remove _PyOS_double_to_string, as mentioned in issue 7117.
2009-10-26 14:48:55 +00:00
Mark Dickinson
8d87dc0c29
Issue #1087418 : Small performance boost for bitwise operations on longs.
...
Initial patch by Gregory Smith; some tweaks added.
2009-10-25 20:39:06 +00:00
Eric Smith
8c3fb39440
Removed unused function PyFloat_AsStringEx. It is unused in floatobject.c, and it's not declared in any .h file.
2009-10-24 19:50:44 +00:00
Benjamin Peterson
97a57ec048
rewrite for style, clarify, and comments
...
Also, use the hasattr() like scheme of allowing BaseException exceptions through.
2009-10-22 02:50:38 +00:00
Benjamin Peterson
3c67afa714
whitespace
2009-10-22 02:26:47 +00:00
Eric Smith
b327258d4f
Removed usage of unsafe PyFloat_AsString.
2009-10-16 14:26:36 +00:00
Mark Dickinson
08133af12e
Issue #7142 : Fix uses of unicode in memoryview objects
2009-10-15 15:53:58 +00:00
Benjamin Peterson
196b0925ca
only clear a module's __dict__ if the module is the only one with a reference to it #7140
2009-10-15 15:44:46 +00:00
Mark Dickinson
9d109742c0
Fix missing semicolon
2009-10-15 15:18:55 +00:00
Georg Brandl
9b4e5820cb
#7116 : str.join() takes an iterable.
2009-10-14 18:48:32 +00:00
Amaury Forgeot d'Arc
5c92d4301d
#7112 : Fix compilation warning in unicodetype_db.h
...
makeunicodedata now generates double literals
2009-10-13 21:29:34 +00:00
Antoine Pitrou
beaf6a02f4
Issue #7084 : Fix a (very unlikely) crash when printing a list from one
...
thread, and mutating it from another one. Patch by Scott Dial.
2009-10-11 21:03:26 +00:00
Amaury Forgeot d'Arc
d0052d17b1
#1571184 : makeunicodedata.py now generates the functions _PyUnicode_ToNumeric,
...
_PyUnicode_IsLinebreak and _PyUnicode_IsWhitespace.
It now also parses the Unihan.txt for numeric values.
2009-10-06 19:56:32 +00:00
Mark Dickinson
71adc9328d
Style/consistency/nano-optimization nit: replace occurrences of
...
(high_bits << PyLong_SHIFT) + low_bits with
(high_bits << PyLong_SHIFT) | low_bits
in Objects/longobject.c. Motivation:
- shouldn't unnecessarily mix bit ops with arithmetic ops (style)
- this pattern should be spelt the same way thoughout (consistency)
- it's very very very slightly faster: no need to worry about
carries to the high digit (nano-optimization).
2009-09-28 16:52:40 +00:00
Kristján Valur Jónsson
b331802f97
http://bugs.python.org/issue6836
...
A missing 'const' wasn't detected by Visual Studio.
2009-09-28 15:56:25 +00:00
Kristján Valur Jónsson
02ca57ce4c
http://bugs.python.org/issue6836
...
The debug memory api now keeps track of which external API (PyMem_* or PyObject_*) was used to allocate each block and treats any API violation as an error. Added separate _PyMem_DebugMalloc functions for the Py_Mem API instead of having it use the _PyObject_DebugMalloc functions.
2009-09-28 13:12:38 +00:00
Mark Dickinson
4b9d473d0a
Issue #6713 : Improve decimal int -> string conversions. Thanks Gawain
...
Bolton for the suggestion and original patches.
2009-09-27 16:05:21 +00:00
Ezio Melotti
a9a7611fb6
#6994 : fix typo in enumerate docstring
2009-09-25 16:07:55 +00:00
Mark Dickinson
40ee861c0a
Silence MSVC compiler warnings.
2009-09-21 16:16:44 +00:00
Benjamin Peterson
dc782b55f2
backport keyword argument support for bytearray.decode
2009-09-18 21:46:21 +00:00
Benjamin Peterson
332d721750
add keyword arguments support to str/unicode encode and decode #6300
2009-09-18 21:14:55 +00:00
Benjamin Peterson
4fe03350b5
use macros
2009-09-17 21:33:46 +00:00
Georg Brandl
e9741f3ed8
Issue #6922 : Fix an infinite loop when trying to decode an invalid
...
UTF-32 stream with a non-raising error handler like "replace" or "ignore".
2009-09-17 11:28:09 +00:00
Mark Dickinson
aa2adc828a
Issue #6713 : Improve performance of str(n) and repr(n) for integers n
...
(up to 3.1 times faster in tests), by special-casing base 10 in
_PyLong_Format. (Backport of r74851 from py3k.)
2009-09-16 22:10:56 +00:00
Georg Brandl
0674d3fb5f
#6844 : do not emit DeprecationWarnings on access if Exception.message has been set by the user.
...
This works by always setting it in __dict__, except when it's implicitly set in __init__.
2009-09-16 20:30:09 +00:00
Mark Dickinson
1f4fc097f6
Fix potential signed-overflow bug in _PyLong_Format; also fix
...
a couple of whitespace issues.
2009-09-13 11:56:13 +00:00
Mark Dickinson
752a2daf32
Remove redundant assignment
2009-09-06 20:51:37 +00:00
Mark Dickinson
135a7cf540
Issue #6847 : s/bytes/bytearray/ in some bytearray error messages. Thanks Hagen Fürstenau.
2009-09-06 10:32:21 +00:00
Mark Dickinson
c8a7c7c3b9
Issue #6846 : bytearray.pop was returning ints in the range [-128, 128)
...
instead of [0, 256). Thanks Hagen Fürstenau for the report and fix.
2009-09-06 10:03:31 +00:00
Benjamin Peterson
6fcf9b50bc
remove the check that classmethod's argument is a callable
2009-09-01 22:27:57 +00:00
Mark Dickinson
2fdd58ad18
Silence gcc 'comparison always false' warning
2009-08-28 20:46:24 +00:00
Benjamin Peterson
4c6e8088f5
#6707 fix a crash with dir() on an uninitialized module
2009-08-15 13:16:38 +00:00
Eric Smith
5c4a5d2911
Issue 6330: Fix --enable-unicode=ucs4.
2009-07-30 13:39:44 +00:00
Raymond Hettinger
c2b9e1a134
Issue 6573: Fix set.union() for cases where self is in the argument chain.
2009-07-27 20:32:04 +00:00
Eric Smith
e94a826304
Sync trunk and py3k versions of string formatting. Will manually merge into py3k.
2009-07-27 01:58:25 +00:00
Benjamin Peterson
9119fbc683
clarify
2009-07-25 02:03:48 +00:00
Georg Brandl
ec812caf5d
Issue #6540 : Fixed crash for bytearray.translate() with invalid parameters.
2009-07-22 11:57:15 +00:00
Benjamin Peterson
24d9175ebe
must use _PyThreadState_Current so it isn't checked for NULL #6530
2009-07-21 14:08:40 +00:00
Alexandre Vassalotti
fd00916c2e
Grow the allocated buffer in PyUnicode_EncodeUTF7 to avoid buffer overrun.
...
Without this change, test_unicode.UnicodeTest.test_codecs_utf7 crashes in
debug mode. What happens is the unicode string u'\U000abcde' with a length
of 1 encodes to the string '+2m/c3g-' of length 8. Since only 5 bytes is
reserved in the buffer, a buffer overrun occurs.
2009-07-07 02:17:30 +00:00
Benjamin Peterson
1bf4765369
only order comparisons are removed in py3k #6119
2009-07-02 17:06:17 +00:00
Hirokazu Yamamoto
5c3dd9a1ee
Issue #6368 : Fixed unused variable warning on Unix.
2009-06-29 15:52:21 +00:00
Hirokazu Yamamoto
a3c5609079
Issue #4856 : Remove checks for win NT.
2009-06-28 10:23:00 +00:00
Amaury Forgeot d'Arc
595f7a5bf9
#2016 Fix a crash in function call when the **kwargs dictionary is mutated
...
during the function call setup.
This even gives a slight speedup, probably because tuple allocation
is faster than PyMem_NEW.
2009-06-25 22:29:29 +00:00
Raymond Hettinger
62641e9534
Issue 6329: Fix iteration for memoryviews.
2009-06-23 20:59:43 +00:00
Benjamin Peterson
bf9ec9ba67
add underscores
2009-06-16 23:13:09 +00:00
Georg Brandl
af01c03e14
Remove unused macro.
2009-06-16 17:43:44 +00:00
Alexandre Vassalotti
55bd1efb2a
Clear reference to the static PyExc_RecursionErrorInst in _PyExc_Fini.
2009-06-12 18:56:57 +00:00
Georg Brandl
18187e2167
#6224 : s/JPython/Jython/, and remove one link to a module nine years old.
2009-06-06 18:21:58 +00:00
Benjamin Peterson
064a381a14
use the offical api
2009-06-04 01:40:29 +00:00
Antoine Pitrou
25de0dd89b
Fix compilation error with gcc 4.3.2
2009-06-01 23:23:16 +00:00
Amaury Forgeot d'Arc
b02ceda3a5
#4547 : When debugging a very large function, it was not always
...
possible to update the lineno attribute of the current frame.
2009-06-01 20:53:18 +00:00
Antoine Pitrou
d11f7fcc0f
Uninitialized file type would lead to __exit__ lookup failure when site.py
...
tries to read *.pth files on interpreter startup.
2009-05-31 18:05:51 +00:00
Raymond Hettinger
578a228ee2
Issue 5982: Classmethod and staticmethod expose wrapped function with __func__.
2009-05-29 04:58:52 +00:00
Benjamin Peterson
1afec5d6bf
plug ref leak
2009-05-27 03:08:44 +00:00
Benjamin Peterson
39d43b4660
correctly handle descrs with __missing__
2009-05-27 02:43:46 +00:00
Benjamin Peterson
87e5006d8c
handle errors from _PyObject_LookupSpecial when __get__ fails
2009-05-25 02:40:21 +00:00
Jeffrey Yasskin
655d835415
Issue #6042 :
...
lnotab-based tracing is very complicated and isn't documented very well. There
were at least 3 comment blocks purporting to document co_lnotab, and none did a
very good job. This patch unifies them into Objects/lnotab_notes.txt which
tries to completely capture the current state of affairs.
I also discovered that we've attached 2 layers of patches to the basic tracing
scheme. The first layer avoids jumping to instructions that don't start a line,
to avoid problems in if statements and while loops. The second layer
discovered that jumps backward do need to trace at instructions that don't
start a line, so it added extra lnotab entries for 'while' and 'for' loops, and
added a special case for backward jumps within the same line. I replaced these
patches by just treating forward and backward jumps differently.
2009-05-23 23:23:01 +00:00
Eric Smith
4b94b192ff
Issue 6089: str.format raises SystemError.
2009-05-23 13:56:13 +00:00
Mark Dickinson
a4e0efa4b1
Issue #5829 : don't raise OverflowError for complex('1e500'). Backport of r72803.
2009-05-20 18:43:07 +00:00
Jeffrey Yasskin
c8d30fec16
Fix issue #1689458 by teaching frame_setlineno how to jump to the first line of
...
a code object.
2009-05-20 17:57:57 +00:00
Jeffrey Yasskin
61328eef1f
While I was modifying test_trace, it threw an exception when I accidentally
...
made it try to set the line number from the trace callback for a 'call' event.
This patch makes the error message a little more helpful in that case, and
makes it a little less likely that a future editor will make the same mistake
in test_trace.
2009-05-18 21:14:54 +00:00
Mark Dickinson
50626db437
Issue #6044 : remove confusing wording from complex -> integer and
...
complex -> float conversion error messages.
2009-05-17 10:38:30 +00:00
Hirokazu Yamamoto
b24bb27d22
Issue #3527 : Removed Py_WIN_WIDE_FILENAMES which is not used any more.
2009-05-17 02:52:09 +00:00
Benjamin Peterson
a27dbc68f0
completely ignore old-style stuff for type checking overloading
2009-05-16 22:40:56 +00:00
Benjamin Peterson
94eaba78b7
deal with old-style classes in issubclass and isinstance
2009-05-16 22:30:48 +00:00
Benjamin Peterson
fb6fb062e8
properly lookup __instancecheck__ and __subclasscheck__
2009-05-16 21:44:25 +00:00
Mark Dickinson
b1d45856c2
Issue #5981 : Fix some float.fromhex bugs related to inf and nan handling.
2009-05-11 15:33:08 +00:00
Benjamin Peterson
ceea163e7c
clear error state properly
2009-05-09 19:18:36 +00:00
Benjamin Peterson
a7dc949e17
ignore AttributeErrors for classic classes
2009-05-09 19:03:05 +00:00
Benjamin Peterson
784d455066
*sigh* deal with instances correctly
2009-05-09 17:23:03 +00:00
Benjamin Peterson
0a32f9c448
can't handle classic classes here
2009-05-09 17:13:10 +00:00