[Haskell-cafe] Optimizing Parsec 3 -- was: Wiki software?

Paulo Tanimoto tanimoto at arizona.edu
Mon Nov 30 23:26:08 EST 2009


Hello!

On Mon, Nov 23, 2009 at 12:29 PM, Antoine Latter <aslatter at gmail.com> wrote:
> On Sun, Nov 22, 2009 at 11:56 AM, Antoine Latter <aslatter at gmail.com> wrote:
>>
>> Running 'pandoc --strict' over the Markdown readme.text takes:
>>
>> ~0.09s with pandoc built against parsec-2
>> ~0.19s with pandoc built against parsec-3
>>
>> on my machine.
>>
>> I have a branch of parsec-3 which seems to brings us back to parsec-2
>> numbers, but also fails the rst-reader test-case in the pandoc testing
>> suite:
>>
>> http://community.haskell.org/~aslatter/code/parsec/cps
>
> In reply to my own post, the branch of parsec posted now passes all of
> the pandoc test cases.
>
> If there are any other consumers of the parsec library that have tests
> I can run let me know.
>
> The 'many' combinator is one of those things that can look right, be
> wrong, yet work for almost everything.
>

I finally had some time to test it.  After running it multiple times
(of course, it would be nice to use criterion here), I'm getting
numbers in this neighborhood:

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.12.0.20091121

$ time pandoc --strict README > /dev/null

parsec 2:
---
real	0m0.140s
user	0m0.130s
sys	0m0.010s

parsec 3 - antoine's:
---
real	0m0.151s
user	0m0.150s
sys	0m0.010s

parsec 3 - hackage:
---
real	0m0.243s
user	0m0.240s
sys	0m0.010s


Nice work, Antoine!

Paulo


More information about the Haskell-Cafe mailing list