Jason Dagit <aoeu> added the comment:

> or add new repositories to the zoo which display
> interesting/pathological characteristics...

Would you be opposed to a repository created like this:
 a) download linux kernel tarball
 b) untar it
 c) darcs init in kernel source
 d) darcs add --recursive .

That would create a massive pending.  The downside is that it's huge.  I think 
last time I 
did that the pending file had some 30k filepaths in it.  With that repository, 
when you do 
'echo d | darcs record', it really stresses our path munging code, our diffing 
code, and 
our pending reading code.  To display the first patch it tries to build up 
every patch 
that is mentioned in pending, including calculating the diffs.  Or at least, 
that's what 
it did about a year ago.  I don't know that it stresses the parser in an 
interesting way.  
Mainly because hunks are not stored in the pending.  So it would stress 
filepath parsing 
and I know that all the character escaping we do is really costly on that 
pathological 
example.

Reading the inventory and changes from a big repository are good ways to 
benchmark the 
patchinfo parser.  I suspect that won't challenge the actual patch parser 
though.  I think 
to challenge it you would need to display the patches.  Perhaps some xml output 
from 
changes would do that?  Perhaps it's enough to just do 'darcs changes -s'.

I think the main places where the parser needs to be fast is reading hunk lines 
(which 
means optimizing linesStartingWith), reading patchinfos, and picking the 
correct patch 
type in readPrim.  For the latter, what I mean, is that it branches based on 
primitive 
patch type but it has to look at the next token to figure out which branch to 
take. We 
could do some sort of statistics over some existing repos (say ghc, darcs, and 
xmonad) and 
figure out which repository types are the most common and put those at the top 
of the 
alternatives.  So, if hunk patches are the most common that option should come 
first as 
it's the path that will be taken most often.

I hope that helps or gives some ideas.

__________________________________
Darcs bug tracker <b...@darcs.net>
<http://bugs.darcs.net/patch318>
__________________________________
_______________________________________________
darcs-users mailing list
darcs-users@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to