Rev 2614: (John Arbash Meinel) Implement _KnitIndex._load_data in pyrex. in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Fri Jul 13 05:12:17 BST 2007
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 2614
revision-id: pqm at pqm.ubuntu.com-20070713041212-ar46c24wgu0jhtm5
parent: pqm at pqm.ubuntu.com-20070713031727-kcz297vvphee2hhg
parent: john at arbash-meinel.com-20070713022334-qb6ewgo6v4251yd9
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Fri 2007-07-13 05:12:12 +0100
message:
(John Arbash Meinel) Implement _KnitIndex._load_data in pyrex.
added:
bzrlib/_knit_load_data_c.pyx knit_c.pyx-20070509143944-u42gy8w387a10m0j-1
bzrlib/_knit_load_data_py.py _knit_load_data_py.p-20070629000948-9a0nh4s118bi5y8n-1
bzrlib/benchmarks/bench_knit.py bench_knit.py-20070509145850-pan5jnd3hl7mfdya-1
modified:
.bzrignore bzrignore-20050311232317-81f7b71efa2db11a
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/benchmarks/__init__.py __init__.py-20060516064526-eb0d37c78e86065d
bzrlib/commit.py commit.py-20050511101309-79ec1a0168e0e825
bzrlib/errors.py errors.py-20050309040759-20512168c4e14fbd
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/smart/server.py server.py-20061110062051-chzu10y32vx8gvur-1
bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
bzrlib/tests/test_commit.py test_commit.py-20050914060732-279f057f8c295434
bzrlib/tests/test_errors.py test_errors.py-20060210110251-41aba2deddf936a8
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
bzrlib/transport/__init__.py transport.py-20050711165921-4978aa7ce1285ad5
bzrlib/transport/chroot.py chroot.py-20061011104729-0us9mgm97z378vnt-1
bzrlib/transport/decorator.py decorator.py-20060402223305-e913a0f25319ab42
bzrlib/transport/ftp.py ftp.py-20051116161804-58dc9506548c2a53
bzrlib/transport/http/__init__.py http_transport.py-20050711212304-506c5fd1059ace96
bzrlib/transport/local.py local_transport.py-20050711165921-9b1f142bfe480c24
bzrlib/transport/memory.py memory.py-20051016101338-cd008dbdf69f04fc
bzrlib/transport/remote.py ssh.py-20060608202016-c25gvf1ob7ypbus6-1
bzrlib/transport/sftp.py sftp.py-20051019050329-ab48ce71b7e32dfe
setup.py setup.py-20050314065409-02f8a0a6e3f9bc70
------------------------------------------------------------
revno: 2484.1.25
merged: john at arbash-meinel.com-20070713022334-qb6ewgo6v4251yd9
parent: john at arbash-meinel.com-20070705193928-xtm8nh4ucc8qosdn
parent: pqm at pqm.ubuntu.com-20070705224207-7pslqt12ofh4vnzx
parent: pqm at pqm.ubuntu.com-20070713012635-04mqh3w41pjxl5mg
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Thu 2007-07-12 21:23:34 -0500
message:
[merge] bzr.dev 2612
------------------------------------------------------------
revno: 2484.1.24
merged: john at arbash-meinel.com-20070705193928-xtm8nh4ucc8qosdn
parent: john at arbash-meinel.com-20070702183631-ylkveb8ux8imm6cx
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Thu 2007-07-05 14:39:28 -0500
message:
Add direct tests of how we handle incomplete/'broken' lines
------------------------------------------------------------
revno: 2484.1.23
merged: john at arbash-meinel.com-20070702183631-ylkveb8ux8imm6cx
parent: john at arbash-meinel.com-20070629171416-9vwyxcz9w0xt39z0
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Mon 2007-07-02 13:36:31 -0500
message:
When we append a new line, don't use text mode
------------------------------------------------------------
revno: 2484.1.22
merged: john at arbash-meinel.com-20070629171416-9vwyxcz9w0xt39z0
parent: john at arbash-meinel.com-20070629163350-pfpsrmoz6edxjdm5
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Fri 2007-06-29 12:14:16 -0500
message:
Remove unused function definitions.
This makes sure that we are only using functions we know that we need.
The remaining functions should all be safe wrt nulls in the data, etc.
------------------------------------------------------------
revno: 2484.1.21
merged: john at arbash-meinel.com-20070629163350-pfpsrmoz6edxjdm5
parent: john at arbash-meinel.com-20070629163115-f8f8032mkj6ntu0s
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Fri 2007-06-29 11:33:50 -0500
message:
Make sure we cast the long int back to a regular int
------------------------------------------------------------
revno: 2484.1.20
merged: john at arbash-meinel.com-20070629163115-f8f8032mkj6ntu0s
parent: john at arbash-meinel.com-20070629161646-ufelk4s0m1ig5md8
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Fri 2007-06-29 11:31:15 -0500
message:
Remove the parent_str==NULL check since the caller is already being safe.
------------------------------------------------------------
revno: 2484.1.19
merged: john at arbash-meinel.com-20070629161646-ufelk4s0m1ig5md8
parent: john at arbash-meinel.com-20070629160006-sdhws6bdttdbgua8
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Fri 2007-06-29 11:16:46 -0500
message:
Don't suppress the TypeError if it doesn't match our requirements.
------------------------------------------------------------
revno: 2484.1.18
merged: john at arbash-meinel.com-20070629160006-sdhws6bdttdbgua8
parent: john at arbash-meinel.com-20070629154156-qqtkp5u94qiwl5ua
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Fri 2007-06-29 11:00:06 -0500
message:
Test that we properly verify the size and position strings.
------------------------------------------------------------
revno: 2484.1.17
merged: john at arbash-meinel.com-20070629154156-qqtkp5u94qiwl5ua
parent: john at arbash-meinel.com-20070629153901-nxydiwh8t8ug76yl
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Fri 2007-06-29 10:41:56 -0500
message:
Workaround for Pyrex <0.9.5 and python >=2.5 incompatibilities.
Before raising an exception, Pyrex checks that it is a valid exception object.
However python 2.5 changed exceptions to be new-style classes, and this
fails the Pyrex 0.9.4 check. Pyrex 0.9.5 has been updated to do it
correctly.
We just set knownFailure in the test suite when this happens.
Note: You still get an exception, just TypeError instead of ValueError or IndexError.
So the code path will still abort, but the user won't get as nice of a message.
------------------------------------------------------------
revno: 2484.1.16
merged: john at arbash-meinel.com-20070629153901-nxydiwh8t8ug76yl
parent: john at arbash-meinel.com-20070629010927-jf6ybo016kpmb6y4
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Fri 2007-06-29 10:39:01 -0500
message:
Switch from strchr to memchr to ensure we never search all of memory.
------------------------------------------------------------
revno: 2484.1.15
merged: john at arbash-meinel.com-20070629010927-jf6ybo016kpmb6y4
parent: john at arbash-meinel.com-20070629003908-0u62qx1u883o81pw
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Thu 2007-06-28 20:09:27 -0500
message:
Add a NEWS entry describing the performance improvement
------------------------------------------------------------
revno: 2484.1.14
merged: john at arbash-meinel.com-20070629003908-0u62qx1u883o81pw
parent: john at arbash-meinel.com-20070629003100-xthewxf3hpdes9ix
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Thu 2007-06-28 19:39:08 -0500
message:
Fix up the benchmarks (bench_knit.py) for the new function locations.
I see something between 2-3x faster for reading .kndx files.
------------------------------------------------------------
revno: 2484.1.13
merged: john at arbash-meinel.com-20070629003100-xthewxf3hpdes9ix
parent: john at arbash-meinel.com-20070629001013-puyhbgbq0pgzvezu
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Thu 2007-06-28 19:31:00 -0500
message:
Add a test that KnitCorrupt is raised when parent strings are invalid.
And fix *both* implementations so that they do the right thing.
------------------------------------------------------------
revno: 2484.1.12
merged: john at arbash-meinel.com-20070629001013-puyhbgbq0pgzvezu
parent: john at arbash-meinel.com-20070628235539-ozvr23tlntgb7jhx
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Thu 2007-06-28 19:10:13 -0500
message:
Switch the layout to use a matching _knit_load_data_py.py and _knit_load_data_c.pyx
------------------------------------------------------------
revno: 2484.1.11
merged: john at arbash-meinel.com-20070628235539-ozvr23tlntgb7jhx
parent: john at arbash-meinel.com-20070509200435-buae2sjnyn2olunc
parent: pqm at pqm.ubuntu.com-20070628225335-facf1886gxehj2w1
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Thu 2007-06-28 18:55:39 -0500
message:
[merge] bzr.dev 2563 and add integer checking to the extension.
------------------------------------------------------------
revno: 2484.1.10
merged: john at arbash-meinel.com-20070509200435-buae2sjnyn2olunc
parent: john at arbash-meinel.com-20070509200141-6cnhjp8ldduugjxr
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Wed 2007-05-09 15:04:35 -0500
message:
Revert previous change since it doesn't help
------------------------------------------------------------
revno: 2484.1.9
merged: john at arbash-meinel.com-20070509200141-6cnhjp8ldduugjxr
parent: john at arbash-meinel.com-20070509194537-3h1zslf0rmozzgsq
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Wed 2007-05-09 15:01:41 -0500
message:
Moving check_header into C shows no appreciable advantage, even though
it means we remove a f.read() call.
------------------------------------------------------------
revno: 2484.1.8
merged: john at arbash-meinel.com-20070509194537-3h1zslf0rmozzgsq
parent: john at arbash-meinel.com-20070509193428-rkwiu3vbglrdyz47
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Wed 2007-05-09 14:45:37 -0500
message:
A bit of cleanup. remove unused variables.
------------------------------------------------------------
revno: 2484.1.7
merged: john at arbash-meinel.com-20070509193428-rkwiu3vbglrdyz47
parent: john at arbash-meinel.com-20070509184520-hd6la926t5hfshbr
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Wed 2007-05-09 14:34:28 -0500
message:
minor cleanup
------------------------------------------------------------
revno: 2484.1.6
merged: john at arbash-meinel.com-20070509184520-hd6la926t5hfshbr
parent: john at arbash-meinel.com-20070509182208-7xygjy8m8nwdfhm2
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Wed 2007-05-09 13:45:20 -0500
message:
Use direct functions when possible, and avoid extra dict lookups.
test_read_50k_index_c 338ms
test_read_50k_index_c_again 351ms
test_read_50k_index_py 901ms
test_read_50k_index_py_again 1023ms
------------------------------------------------------------
revno: 2484.1.5
merged: john at arbash-meinel.com-20070509182208-7xygjy8m8nwdfhm2
parent: john at arbash-meinel.com-20070509164944-8dzfnsgdamvujo4b
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Wed 2007-05-09 13:22:08 -0500
message:
Simplistic implementations of custom parsers for options and parents
drops us down to under half the time.
Also, defining a function as 'cdef int foo() except -1'
allows any exceptions to be propagated, rather than giving 'unraisable exception' warnings.
------------------------------------------------------------
revno: 2484.1.4
merged: john at arbash-meinel.com-20070509164944-8dzfnsgdamvujo4b
parent: john at arbash-meinel.com-20070509152053-6wm1c1cg9wstaezq
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Wed 2007-05-09 11:49:44 -0500
message:
First step towards custom parsing.
By steping through the main string instead of splitting into lines
we save approx 40%
test_read_50k_index_c 617ms
test_read_50k_index_c_again 592ms
test_read_50k_index_py 895ms
test_read_50k_index_py_again 1038ms
------------------------------------------------------------
revno: 2484.1.3
merged: john at arbash-meinel.com-20070509152053-6wm1c1cg9wstaezq
parent: john at arbash-meinel.com-20070509151224-20uys53nsfunfv5k
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Wed 2007-05-09 10:20:53 -0500
message:
Change to 50k entries, since this puts us in the 1s ballpark
------------------------------------------------------------
revno: 2484.1.2
merged: john at arbash-meinel.com-20070509151224-20uys53nsfunfv5k
parent: john at arbash-meinel.com-20070509144042-9uyruriejyp98751
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Wed 2007-05-09 10:12:24 -0500
message:
Add benchmarks for loading a knit index with a lot of records.
Because of (deterministic) variations, the benchmarks are run 2 times.
For some reason, the second run of a benchmark is approx 40ms faster,
and the 3rd run is slow again.
------------------------------------------------------------
revno: 2484.1.1
merged: john at arbash-meinel.com-20070509144042-9uyruriejyp98751
parent: pqm at pqm.ubuntu.com-20070508203256-wcxwdphd1y2psezh
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_index_pyrex
timestamp: Wed 2007-05-09 09:40:42 -0500
message:
Add an initial function to read knit indexes in pyrex.
Update the LowLevelKnitIndex tests so that they can be run
against both the python and pyrex implementations.
Diff too large for email (1645 lines, the limit is 1000).
More information about the bazaar-commits
mailing list