Hi Niels!

On Sun, 2013-10-06 at 10:40:24 +0200, Niels Thykier wrote:
> On 2013-02-01 07:53, Guillem Jover wrote:
> > On Sun, 2012-12-16 at 18:47:03 +0100, Guillem Jover wrote:
> >> On Sun, 2012-12-16 at 17:49:46 +0100, Niels Thykier wrote:
> >>> Trying to use Dpkg::Control on a "Packages_amd64" file[1], I got a bit
> >>> annoyed with its performance.  I believe the problem is basically that
> >>> Dpkg::Control(::Hash) uses its tied hash when parsing and thereby
> >>> "wasting" a lot time.
> >>
> >> Right, this seems a bit too much. I'm working right now on optimizing
> >> the parsing code w/o sacrificing the general interface.
> > 
> > Just a quick reply, the two obvious fixes I implemented locally were
> > to move the capitalization to the output functions, and to change the
> > parser to bypass the tied hash. Then, as mentioned in the other bug
> > report, in addition adding support for the user to ignore ordering and
> > always using direct hash speeds up things a bit. Here are some numbers
> > (although I might have messed up the tests at the time, I'll run those
> > again once I'm cleaning this up before pushing):

> Thanks for working on this bug.

No problem.

> As far as I can tell, you reported that you had fixes for this bug back
> in Feburary.  I had a look today at the public dpkg git repository and I
> cannot see any of the commits you mentioned; is there something that has
> been holding up these changes in the past 8 months?

Yeah, I mentioned it in passing in [0] (should have probably CCed you,
sorry). The patches I had were problematic in that they might not
preserve backward compat in some usage cases, and that switching old
code to always expect lower-case field names seems error-prone as it's
not easy to spot the code users. I'll rereview the patches to see if
some can be salvaged, otherwise what I'd like to do is cleanup much of
the current Dpkg::Control mess by introducing a new hierarchy, something
like Dpkg::Deb822 or similar, which would also not have circular deps by
having field definitions by class, instead of a global one.

  [0] <http://lists.debian.org/[email protected]>

Hope that explains.

Thanks,
Guillem


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to