Dear Library colleagues
It’s not very easy to find http://haskell.org/haskellwiki/Library_submissions, the Haskell library submission process.
Starting at haskell.org I thought that the “standard libraries” link should do the job, but it doesn’t. Maybe the standard libraries link should lead to a page that points to the Haddock stuff but also gives other info such as how to submit changes? I don’t believe I know how to edit the main page, or even if I should, so I’m just emailing the suggestion
Simon
From: Louis Wasserman [mailto:wasserman.louis@gmail.com]
Sent: 16 March 2010 13:41
To: Simon Peyton-Jones
Subject: Re: Feedback request: priority queues in containers
Bah. Have done this before, but a while ago, and I couldn't find the page reminding me of the specific details of what to do for library submissions.
Thanks!
Louis Wasserman
wasserman.louis@gmail.com
http://profiles.google.com/wasserman.louis
On Tue, Mar 16, 2010 at 8:34 AM, Simon Peyton-Jones <simonpj@microsoft.com> wrote:
Louis: If you want to propose changes to standard libraries, there’s a well-documented procedure. (Of course, if you just want to release a package of your own there’s no procedure!)
http://haskell.org/haskellwiki/Library_submissions
Simon
From: glasgow-haskell-users-bounces@haskell.org [mailto:glasgow-haskell-users-bounces@haskell.org] On Behalf Of Louis Wasserman
Sent: 16 March 2010 13:29
To: glasgow-haskell-users@haskell.org
Subject: Feedback request: priority queues in containers
Hey,
I'd like to request some more feedback on the proposed implementation for priority queues in containers. Mostly, I feel like adding a new module to containers should be contentious, and there hasn't been as much griping or contention as I expected. The silence is feeling kind of eerie!
I'm inclined to set a deadline of next Wednesday, Mar 24, because the ticket was started two weeks ago and the current implementation has been essentially unchanged for a week. After that point, I'll consider the patch final.
The proposed implementation benchmarked competitively with every alternative implementation that we tested, and offers good asymptotics in nearly every operation. Specifically, we use a binomial heap, which offers
This implementation seems to offer the best balance between practical performance and asymptotic behavior. Moreover, this implementation is extremely memory-efficient, resulting in better performance on large data sets. (See the ticket for benchmarks. The most accurate benchmarks are towards the end.)
A couple potentially contentious design decisions:
These design decisions seem to be sufficient to handle most traditional uses for priority queues. In particular, this approach offers a superset of the functionality offered by Java's built-in priority queue implementation, which makes the same design decisions, but of course, is all imperative and yucky! (Also, it offers inferior asymptotics, heh.)
I made a particular effort to offer the sort of utility functions that are found in the other modules of containers. In particular, it offers:
I'm really satisfied with the patch as-is, modulo maybe tinkering with the code style a little. I'm also working on an article for TMR on priority queues in Haskell, some of the different structures we considered, and particularly the new type-safety implementation I came up with for binomial heaps in the writing of this implementation.
In conclusion, I want to be sure people actually like this approach! So check it out. Complaints are appreciated, but even "I think your implementation is absolutely perfect" would reassure me. =)