Commit graph

34592 commits

Author SHA1 Message Date
Tim Peters
d89fc22dc6 Patch #1494387: SVN longobject.c compiler warnings
The SIGCHECK macro defined here has always been bizarre, but
it apparently causes compiler warnings on "Sun Studio 11".
I believe the warnings are bogus, but it doesn't hurt to make
the macro definition saner.

Bugfix candidate (but I'm not going to bother).
2006-05-25 22:28:46 +00:00
Tim Peters
c285e62d76 Repair idiot typo, and complete the job of trying to
use the Windows time.clock() implementation on Win64.
2006-05-25 22:25:25 +00:00
Brett Cannon
4c803f1c81 Move over to use of METH_O and METH_NOARGS. 2006-05-25 22:00:14 +00:00
Bob Ippolito
45c6472f99 Add missing files from x86 darwin ctypes patch 2006-05-25 21:58:05 +00:00
Tim Peters
d95d593f47 Whitespace normalization. 2006-05-25 21:52:19 +00:00
Tim Peters
7a822dabad Some Win64 pre-release in 2000 didn't support
QueryPerformanceCounter(), but we believe Win64 does
support it now.  So use in time.clock().

It would be peachy if someone with a Win64 box tried
this ;-)
2006-05-25 21:50:17 +00:00
Brett Cannon
36850456ca Change test_values so that it compares the lowercasing of group names since getgrall() can return all lowercase names while getgrgid() returns proper casing.
Discovered on Ubuntu 5.04 (custom).
2006-05-25 21:33:11 +00:00
Ronald Oussoren
f5bc414334 Fix minor typo in prep_cif.c 2006-05-25 21:30:54 +00:00
Georg Brandl
485dbd105f Add a x-ref to newer calling APIs. 2006-05-25 21:11:56 +00:00
Bob Ippolito
964e02a901 fix test_float regression and 64-bit size mismatch issue 2006-05-25 21:09:45 +00:00
Bob Ippolito
955b64c031 squelch gcc4 darwin/x86 compiler warnings 2006-05-25 20:52:38 +00:00
Brett Cannon
0ed05875b2 Swap out bare malloc()/free() use for PyMem_MALLOC()/PyMem_FREE() . 2006-05-25 20:44:08 +00:00
Georg Brandl
9d67d5e9f7 Someone seems to just have copy-pasted the docs of
tp_compare to tp_richcompare ;)
2006-05-25 20:28:10 +00:00
Bob Ippolito
66c0935d67 enable darwin/x86 support for libffi and hence ctypes (doesn't yet support --enable-universalsdk) 2006-05-25 19:59:56 +00:00
Bob Ippolito
a99865b12e Use faster struct pack/unpack functions for the endian table that matches the host's 2006-05-25 19:56:56 +00:00
Bob Ippolito
04ab994dca Use LONG_MIN and LONG_MAX to check Python integer bounds instead of the incorrect INT_MIN and INT_MAX 2006-05-25 19:33:38 +00:00
Fredrik Lundh
554da412a8 needforspeed: use insert+reverse instead of append 2006-05-25 19:19:05 +00:00
Georg Brandl
684fd0c8ec Replace PyObject_CallFunction calls with only object args
with PyObject_CallFunctionObjArgs, which is 30% faster.
2006-05-25 19:15:31 +00:00
Bob Ippolito
3b0cae9cc0 fix a struct regression where long would be returned for short unsigned integers 2006-05-25 19:15:27 +00:00
Bob Ippolito
3fc2bb9ccd Fix Cygwin compiler issue 2006-05-25 19:03:19 +00:00
Jack Diederich
60cbb3fe49 * eliminate warning by reverting tmp_s type to 'const char*' 2006-05-25 18:47:15 +00:00
Bob Ippolito
94f68ee8ba Struct now unpacks to PY_LONG_LONG directly when possible, also include #ifdef'ed out code that will return int instead of long when in bounds (not active since it's an API and doc change) 2006-05-25 18:44:50 +00:00
Fredrik Lundh
c3434b3834 needforspeed: use fastsearch also for find/index and contains. the
related tests are now about 10x faster.
2006-05-25 18:44:29 +00:00
Georg Brandl
cfecd599b6 Guard the _active.remove() call to avoid errors when there is no _active list. 2006-05-25 18:44:09 +00:00
Bob Ippolito
a85bf202ac Faster path for PyLong_FromLongLong, using PyLong_FromLong algorithm 2006-05-25 18:20:23 +00:00
Andrew Dalke
598710c727 Added overflow test for adding two (very) large strings where the
new string is over max Py_ssize_t.  I have no way to test it on my
box or any box I have access to.  At least it doesn't break anything.
2006-05-25 18:18:39 +00:00
Andrew M. Kuchling
f344c94c85 Comment typo 2006-05-25 18:11:16 +00:00
Andrew Dalke
b552c4d848 Code had returned an ssize_t, upcast to long, then converted with PyInt_FromLong.
Now using PyInt_FromSsize_t.
2006-05-25 18:03:25 +00:00
Fredrik Lundh
af72237abc needforspeed: use "fastsearch" for count. this results in a 3x speedup
for the related stringbench tests.
2006-05-25 17:55:31 +00:00
Andrew Dalke
8c9091074b Fixed problem identified by Georg. The special-case in-place code for replace
made a copy of the string using PyString_FromStringAndSize(s, n) and modify
the copied string in-place.  However, 1 (and 0) character strings are shared
from a cache.  This cause "A".replace("A", "a") to change the cached version
of "A" -- used by everyone.

Now may the copy with NULL as the string and do the memcpy manually.  I've
added regression tests to check if this happens in the future.  Perhaps
there should be a PyString_Copy for this case?
2006-05-25 17:53:00 +00:00
Tim Peters
da53afa1b0 A new table to help string->integer conversion was added yesterday to
both mystrtoul.c and longobject.c.  Share the table instead.  Also
cut its size by 64 entries (they had been used for an inscrutable
trick originally, but the code no longer tries to use that trick).
2006-05-25 17:34:03 +00:00
Fredrik Lundh
e68955cf32 needforspeed: new replace implementation by Andrew Dalke. replace is
now about 3x faster on my machine, for the replace tests from string-
bench.
2006-05-25 17:08:14 +00:00
Fredrik Lundh
0c71f88fc9 needforspeed: check for overflow in replace (from Andrew Dalke) 2006-05-25 16:46:54 +00:00
Kristján Valur Jónsson
44aa9f7139 Fix incorrect documentation for the Py_IS_FINITE(X) macro. 2006-05-25 16:39:27 +00:00
Andrew M. Kuchling
cc1ecf4d6d Fix another typo 2006-05-25 16:34:54 +00:00
Andrew Dalke
2bddcbf10e Added tests for implementation error we came up with in the need for speed sprint. 2006-05-25 16:30:52 +00:00
Andrew M. Kuchling
1d2576dbf0 Fix comment typos 2006-05-25 16:23:15 +00:00
Fredrik Lundh
dfe503d3f0 needforspeed: _toupper/_tolower is a SUSv2 thing; fall back on ISO C
versions if they're not defined.
2006-05-25 16:10:12 +00:00
Kristján Valur Jónsson
f94323fbb4 Added a new macro, Py_IS_FINITE(X). On windows there is an intrinsic for this and it is more efficient than to use !Py_IS_INFINITE(X) && !Py_IS_NAN(X). No change on other platforms 2006-05-25 15:53:30 +00:00
Fredrik Lundh
4b4e33ef14 needforspeed: make new upper/lower work properly for single-character
strings too... (thanks to georg brandl for spotting the exact problem
faster than anyone else)
2006-05-25 15:49:45 +00:00
Fredrik Lundh
39ccef607e needforspeed: speed up upper and lower for 8-bit string objects.
(the unicode versions of these are still 2x faster on windows,
though...)

based on work by Andrew Dalke, with tweaks by yours truly.
2006-05-25 15:22:03 +00:00
Andrew M. Kuchling
c620bada3a Add entry; and fix a typo 2006-05-25 12:27:59 +00:00
Thomas Wouters
143bdfcee6 Update graminit.c for the fix for #1488915, Multiple dots in relative import
statement raise SyntaxError, and add testcase.
2006-05-25 11:26:25 +00:00
Thomas Wouters
cf8229ea3b Fix #1488915, Multiple dots in relative import statement raise SyntaxError. 2006-05-25 11:25:51 +00:00
Walter Dörwald
c611f17418 Replace tab inside comment with space. 2006-05-25 08:53:28 +00:00
Fred Drake
61bbe6c37c fix broken links in PDF
(SF patch #1281291, contributed by Rory Yorke)
2006-05-25 02:42:25 +00:00
Andrew M. Kuchling
3cdf24bc99 Minor edits; add an item 2006-05-25 00:23:03 +00:00
Tim Peters
696cf43b58 Heavily fiddled variant of patch #1442927: PyLong_FromString optimization.
``long(str, base)`` is now up to 6x faster for non-power-of-2 bases.  The
largest speedup is for inputs with about 1000 decimal digits.  Conversion
from non-power-of-2 bases remains quadratic-time in the number of input
digits (it was and remains linear-time for bases 2, 4, 8, 16 and 32).

Speedups at various lengths for decimal inputs, comparing 2.4.3 with
current trunk.  Note that it's actually a bit slower for 1-digit strings:

  len  speedup
 ----  -------
   1     -4.5%
   2      4.6%
   3      8.3%
   4     12.7%
   5     16.9%
   6     28.6%
   7     35.5%
   8     44.3%
   9     46.6%
  10     55.3%
  11     65.7%
  12     77.7%
  13     73.4%
  14     75.3%
  15     85.2%
  16    103.0%
  17     95.1%
  18    112.8%
  19    117.9%
  20    128.3%
  30    174.5%
  40    209.3%
  50    236.3%
  60    254.3%
  70    262.9%
  80    295.8%
  90    297.3%
 100    324.5%
 200    374.6%
 300    403.1%
 400    391.1%
 500    388.7%
 600    440.6%
 700    468.7%
 800    498.0%
 900    507.2%
1000    501.2%
2000    450.2%
3000    463.2%
4000    452.5%
5000    440.6%
6000    439.6%
7000    424.8%
8000    418.1%
9000    417.7%
2006-05-24 21:10:40 +00:00
Tim Peters
f4049089c5 Disable the damn empty-string replace test -- it can't
be make to pass now for unicode if it passes for str, or
vice versa.
2006-05-24 21:00:45 +00:00
Tim Peters
f47b1cd839 Whitespace normalization. 2006-05-24 20:29:44 +00:00