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
Bob Ippolito
232f3c91f9
patch #1493701 : performance enhancements for struct module
2006-05-23 19:12:41 +00:00
Bob Ippolito
7ccc95a315
patch #1493701 : performance enhancements for struct module
2006-05-23 19:11:34 +00:00
Bob Ippolito
27abce5ba8
revert #1493701
2006-05-23 19:09:51 +00:00
Andrew M. Kuchling
9deeeef092
Remove duplicate item
2006-05-23 19:00:45 +00:00
Bob Ippolito
fb8b84af54
Patch #1493701 : performance enhancements for struct module.
2006-05-23 18:46:41 +00:00
Tim Peters
b713ec2531
Bug #1334662 / patch #1335972 : int(string, base) wrong answers.
...
In rare cases of strings specifying true values near sys.maxint,
and oddball bases (not decimal or a power of 2), int(string, base)
could deliver insane answers. This repairs all such problems, and
also speeds string->int significantly. On my box, here are %
speedups for decimal strings of various lengths:
length speedup
------ -------
1 12.4%
2 15.7%
3 20.6%
4 28.1%
5 33.2%
6 37.5%
7 41.9%
8 46.3%
9 51.2%
10 19.5%
11 19.9%
12 23.9%
13 23.7%
14 23.3%
15 24.9%
16 25.3%
17 28.3%
18 27.9%
19 35.7%
Note that the difference between 9 and 10 is the difference between
short and long Python ints on a 32-bit box. The patch doesn't
actually do anything to speed conversion to long: the speedup is
due to detecting "unsigned long" overflow more quickly.
This is a bugfix candidate, but it's a non-trivial patch and it
would be painful to separate the "bug fix" from the "speed up" parts.
2006-05-23 18:45:30 +00:00
Fredrik Lundh
b63588c188
needforspeed: use append+reverse for rsplit, use "bloom filters" to
...
speed up splitlines and strip with charsets; etc. rsplit is now as
fast as split in all our tests (reverse takes no time at all), and
splitlines() is nearly as fast as a plain split("\n") in our tests.
and we're not done yet... ;-)
2006-05-23 18:44:25 +00:00
Bob Ippolito
7298f270a7
Update Misc/NEWS for gzip patch #1281707
2006-05-23 18:43:47 +00:00
Bob Ippolito
82d2558713
Update Misc/NEWS for gzip patch #1281707
2006-05-23 18:41:17 +00:00
Richard Jones
a372711fcc
fix broken merge
2006-05-23 18:32:11 +00:00
Richard Jones
cebbefc98d
Applied patch 1337051 by Neal Norwitz, saving 4 ints on frame objects.
2006-05-23 18:28:17 +00:00
Ronald Oussoren
69c347655d
An improved script for building the binary distribution on MacOSX.
2006-05-23 15:09:57 +00:00
Andrew M. Kuchling
3e134a5960
Use 'speed' instead of 'performance', because I agree with the argument
...
at http://zestyping.livejournal.com/193260.html that 'erformance' really means
something more general.
2006-05-23 12:49:35 +00:00
Andrew M. Kuchling
1cdace4294
Mention string improvements
2006-05-23 12:47:01 +00:00
Andrew M. Kuchling
c602723e45
Add some items; mention the sprint
2006-05-23 12:44:36 +00:00
Ronald Oussoren
b02daf794b
Patch #1488098 .
...
This patchs makes it possible to create a universal build on OSX 10.4 and use
the result to build extensions on 10.3. It also makes it possible to override
the '-arch' and '-isysroot' compiler arguments for specific extensions.
2006-05-23 12:01:11 +00:00
Ronald Oussoren
58f8eba372
Disable linking extensions with -lpython2.5 for darwin. This should fix bug
...
#1487105 .
2006-05-23 11:47:16 +00:00
Georg Brandl
658d513328
PyErr_NewException now accepts a tuple of base classes as its
...
"base" parameter.
2006-05-23 11:17:21 +00:00
Ronald Oussoren
da89b99533
Avoid creating a mess when installing a framework for the second time.
2006-05-23 11:04:24 +00:00
Richard Jones
7c88dcc5ab
Merge from rjones-funccall branch.
...
Applied patch zombie-frames-2.diff from sf patch 876206 with updates for
Python 2.5 and also modified to retain the free_list to avoid the 67%
slow-down in pybench recursion test. 5% speed up in function call pybench.
2006-05-23 10:37:38 +00:00
Fredrik Lundh
833bf9422e
needforspeed: fixed unicode "in" operator to use same implementation
...
approach as find/index
2006-05-23 10:12:21 +00:00
Fredrik Lundh
3d885e0195
needforspeed: check first *and* last character before doing a full memcmp
2006-05-23 10:10:57 +00:00
Tim Peters
1bacc641a0
unicode_repeat(): Change type of local to Py_ssize_t,
...
since that's what it should be.
2006-05-23 05:47:16 +00:00