Bryan O’Sullivan’s website. Recent blog posts below.
Converting a Mercurial tree repeatedly with files removed
Here’s a useful little tip if you need to use hg convert to generate a stripped-down copy of a Mercurial repository. For instance, maybe we have a tree that someone committed a large file to by accident, or perhaps someone accidentally checked some closed source code into an open source tree. If such a commit makes it into a busy repository, it can be a while before anyone notices. Worse, we can’t necessarily expect everyone who’s downstream of that repository to immediately drop everything they’re doing and find a way to switch over to the freshly-scrubbed tree you want to publish. ...
Budding Aspen, Sierra Palisades
[!DSC_0243](http://www.flickr.com/photos/bosu/4729810316/)
PADL ’11 call for papers
GHC I/O manager progress: ready to merge, and paper accepted!
Thanks to diligent work by Johan, our new I/O manager is ready to merge into the main GHC tree. All the tests pass, and it’s performing well. I’ll post an update when it gets merged into HEAD. We also heard back from the peer reviewers for this year’s Haskell Symposium that our paper describing the new I/O manager has been accepted. The reviewers had some very helpful suggestions for how we can clarify the paper and improve its presentation, so I’ll be working on a final draft over the next couple of weeks (I’m currently on vacation in Ireland, so paper revisions aren’t yet at the top of my priority list). ...
What’s in a find function?
Sightings of the GHC event manager in the wild
After a few months of blissfully doing precious little hacking in our spare time, Johan and I have returned to work on the new event manager for GHC. I spent the past few days writing a paper about the motivation, design, and internals of the new event manager, which I submitted to this year’s Haskell Symposium at about 2am this morning. ...
What’s in a parser? Attoparsec rewired (2/2)
In my first of this pair of articles, I laid out some of the qualities I’ve been looking for in a parsing library. Before I dive back into detail, I want to show off some numbers. The new Attoparsec code is fast. !Performance What did I benchmark? I captured some real HTTP GET requests from a live public web server, averaging 431 bytes per request. I chucked them into a file, and measured the time needed to parse the entire contents of the file with the following libraries: ...
What’s in a parsing library? (1/2)
My goal in working on the new GHC I/O manager has been to get the Haskell network stack into a state where it could be used to attack high-performance and scalable networking problems, domains in which it has historically been weak. While it’s encouraging to have an excellent networking stack (Johan and I now have this thoroughly in hand), the next thing I’d look for is libraries to help build networked applications. One of the fundamental things that such apps need to do well is parse data, be it received from the network or read from files. ...
Minuscule linkscrape of mischief
While I’ve been in my corner hacking on low-level Haskell nonsense, apparently someone figured out how to make the internets more better. To wit, a few judiciously curated sources of visual edification: for great justice unhappy hipsters riot right click