This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author isoschiz
Recipients christian.heimes, flox, isoschiz, jcea, pitrou, r.david.murray, serhiy.storchaka, sijinjoseph
Date 2013-04-14.15:51:49
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1365954709.66.0.264048565306.issue17618@psf.upfronthosting.co.za>
In-reply-to
Content
I've updated the Ascii85 algorithms to remove the quadratic complexity, and use a single struct.pack/unpack. They should now be much quicker for large input strings.

It's difficult to factor out commonality with b85* because the encodings and rules differ. This is especially true for decode (where Ascii85 allows arbitrary whitespace, so it either has to be stepped through as I've implemented it, or it would have to first be sanitised with .replace() or similar, which is expensive for large inputs). For encode, the special cases supported by Ascii85 make it impossible to *just* use a lookup table, and the simplified algorithm for encoding means it isn't necessary to use one at all. I also wanted to keep the Mercurial code intact as much as possible, so it can be kept in sync in future if necessary.

My notes from the previous diff also still apply if anyone has thoughts on those.
History
Date User Action Args
2013-04-14 15:51:50isoschizsetrecipients: + isoschiz, jcea, pitrou, christian.heimes, r.david.murray, flox, sijinjoseph, serhiy.storchaka
2013-04-14 15:51:49isoschizsetmessageid: <1365954709.66.0.264048565306.issue17618@psf.upfronthosting.co.za>
2013-04-14 15:51:49isoschizlinkissue17618 messages
2013-04-14 15:51:49isoschizcreate