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
Tim Peters
beaec0c3a1
We can't leave the checked-in tests broken.
2006-05-24 20:27:18 +00:00
Andrew Dalke
e5488ec01e
Added a slew of test for string replace, based various corner cases from
...
the Need For Speed sprint coding. Includes commented out overflow tests
which will be uncommented once the code is fixed.
This test will break the 8-bit string tests because
"".replace("", "A") == "" when it should == "A"
We have a fix for it, which should be added tomorrow.
2006-05-24 18:55:37 +00:00
Fredrik Lundh
347ee277aa
needforspeed: refactored the replace code slightly; special-case
...
constant-length changes; use fastsearch to locate the first match.
2006-05-24 16:35:18 +00:00
Bob Ippolito
eb62127842
refactor unpack, add unpack_from
2006-05-24 15:32:06 +00:00
Fredrik Lundh
d5e0dc51cf
needforspeedindeed: use fastsearch also for __contains__
2006-05-24 15:11:01 +00:00
Fredrik Lundh
6471ee4f18
needforspeed: use "fastsearch" for count and findstring helpers. this
...
results in a 2.5x speedup on the stringbench count tests, and a 20x (!)
speedup on the stringbench search/find/contains test, compared to 2.5a2.
for more on the algorithm, see:
http://effbot.org/zone/stringlib.htm
if you get weird results, you can disable the new algoritm by undefining
USE_FAST in Objects/unicodeobject.c.
enjoy /F
2006-05-24 14:28:11 +00:00
Fredrik Lundh
240bf2a8e4
use Py_ssize_t for string indexes (thanks, neal!)
2006-05-24 10:20:36 +00:00
Tim Peters
8ff672e62d
Add missing svn:eol-style property to text files.
2006-05-23 21:55:53 +00:00
Tim Peters
211219af4f
Whitespace normalization.
2006-05-23 21:54:23 +00:00
Tim Peters
1bddfb84ee
test_struct grew weird behavior under regrtest.py -R,
...
due to a module-level cache. Clearing the cache should
make it stop showing up in refleak reports.
2006-05-23 21:51:35 +00:00
Fredrik Lundh
7763351808
return 0 on misses, not -1.
2006-05-23 19:47:35 +00:00
Tim Peters
f178e5c1b7
Get the Windows build working again (recover from
...
`struct` module changes).
2006-05-23 19:34:37 +00:00
Andrew M. Kuchling
70bd199fa4
Add item
2006-05-23 19:32:35 +00:00
Bob Ippolito
07c023b10e
fix typo in _struct
2006-05-23 19:32:25 +00:00
Bob Ippolito
d3611eb3c6
forward declaration for PyStructType
2006-05-23 19:31:23 +00:00
Andrew M. Kuchling
150faff195
Add two items
2006-05-23 19:29:38 +00:00
Bob Ippolito
4de3f998bf
fix linking issue, warnings, in struct
2006-05-23 19:25:52 +00:00