Neil Mitchell's Blog (Haskell etc)

Monday, January 06, 2014

Optimising Haskell for a tight inner loop

›
Summary: I walk through optimising a Haskell string splitter to get a nice tight inner loop. We look at the Haskell code, the generated Core...
12 comments:
Saturday, January 04, 2014

Running Makefiles with Shake

›
Summary: Shake can interpret some Makefiles, just like Make. Since version 0.10 the Shake build system also installs a shake executable th...
13 comments:
Friday, January 03, 2014

Announcing Shake 0.11

›
Summary: Shake 0.11 is out, upgrading should be pretty easy. Shake is a Haskell library for writing build tools, and I've just released...
Thursday, December 12, 2013

Progress Reporting in Shake

›
Summary: Shake can predict you how long your build will take. The prediction makes use of stateful applicative streams. The Shake build syst...
5 comments:
Tuesday, November 19, 2013

The oldest Shake bug - async exceptions are hard

›
Summary: Shake could corrupt the build database under rare circumstances. Last week I finally figured out why, and fixed it. The Shake build...
2 comments:
Saturday, November 16, 2013

ACM Article - Leaking Space

›
I wrote an article for the Communcations of the ACM which is now available on the ACM Queue , entitled Leaking Space , all about space leak...
Tuesday, November 12, 2013

NSIS plugins and LZMA solid

›
Summary: If you use NSIS plugins along with LZMA solid compression, make sure you reference the plugins first. The NSIS Windows Installer s...
Monday, November 04, 2013

NSIS Haskell wrapper now supports plugins

›
Summary: I've just released NSIS-0.2.3 which supports NSIS plugins. My NSIS library is a Haskell EDSL to make it easier to write NSIS W...
2 comments:
Saturday, October 12, 2013

Haskell type graphs with Uniplate and Haskell-src-exts

›
Summary: Generating graphs from Haskell modules is easy, using Haskell-src-exts and Uniplate. In my recent Uniplate talk I showed a grap...
Wednesday, October 02, 2013

Upcoming talks

›
I'll be talking at two events this month - hope to see some people there! 9 Oct 2013 - Haskell eXchange 2013 Everyone should use a G...
Thursday, September 12, 2013

Repeated Word Detection with Haskell

›
Summary: I wrote a simple program to detect repeated words in a file. This post gives a walk-through of how I developed it. My wife is cur...
3 comments:
Wednesday, August 14, 2013

Destroying Performance with Strictness

›
Summary: New versions of unordered-containers cause a massive performance regression in uniplate (10x slower is typical), which I have fixed...
6 comments:
Tuesday, July 30, 2013

Standard Chartered are hiring

›
Summary: Haskell programmer willing to relocate to Singapore? Come work for Standard Chartered! Standard Chartered , the bank where I work...
Saturday, June 22, 2013

Building LLVM using Shake

›
Summary: You can now build LLVM using Shake, and a rebuild with nothing to do goes massively faster than make (0.8s vs 199s) and fractionall...
4 comments:
Sunday, May 26, 2013

Three types of build-system dependency

›
Summary: There are three types of dependencies you might want to express in a build system, all of which are supported by Shake. A build s...
20 comments:
Wednesday, April 17, 2013

Buffer smashing in NSIS

›
Summary: I've identified two fixed-size buffer errors in the NSIS compiler generator, one of which is a buffer overflow leading to a seg...
2 comments:
Tuesday, February 26, 2013

Shake Links

›
Summary: Shake is now hosted on GitHub and there is a mailing list. I've just converted Shake over to Git, hosted on GitHub, and creat...
6 comments:
Monday, February 25, 2013

Chasing a Space Leak in Shake

›
Summary: Shake v0.3 had a serious space leak that went undiagnosed for over a year, this post describes how I tracked it down. Introducti...
5 comments:
‹
›
Home
View web version

About Me

My photo
Neil Mitchell
View my complete profile
Powered by Blogger.