Neil Mitchell's Blog (Haskell etc)

Saturday, July 26, 2014

Converting Make to Shake

›
Summary: I have converted over 10,000 lines from Make to Shake. Here are some tips I learnt along the way. Make is the de facto build system...
2 comments:
Wednesday, July 23, 2014

Applicative vs Monadic build systems

›
Summary: Shake is a monadic build system, and monadic build systems are more powerful than applicative ones. Several people have wondered ...
4 comments:
Sunday, June 29, 2014

Optimisation with Continuations

›
Summary: Continuations are confusing. Here we solve a simple problem (that is at the heart of the Shake build system) using continuations. I...
8 comments:
Sunday, June 22, 2014

Announcing ghc-make

›
Summary: I've released ghc-make , which is an alternative to ghc --make . I've just released v0.2 of ghc-make ( on Hackage , on Git...
2 comments:
Tuesday, June 03, 2014

Shake file hashes/digests

›
Summary: Shake can now be configured to check file hashes/digests instead of modification times, which is great if you frequently switch git...
3 comments:
Tuesday, May 27, 2014

Shake 0.13 released

›
Summary: Shake 0.13 is out, which contains a few API changes and several new features. I've just released Shake 0.13 . There are several...
Thursday, May 15, 2014

Shake as a dependency library

›
Summary: You can use Shake as a library to implement other build tools. The Shake build tool is often used to define a specific build syste...
5 comments:
Monday, May 05, 2014

Build system performance: Shake vs Ninja

›
Summary: Ninja is a build system focused on being fast. Some limited benchmarking suggests the Shake build system might be faster. The Shake...
6 comments:
Tuesday, April 01, 2014

Exceptional Testing

›
Summary: Failing properties should throw exceptions, not return False. When testing properties in Haskell with QuickCheck we usually write...
2 comments:
Thursday, March 13, 2014

HLint API

›
Summary: HLint now has a real API. HLint is a tool for making suggestions about your Haskell source code, available as a standalone tool ...
Monday, February 24, 2014

The Build System Shootout

›
Summary: I am collecting examples to show how build systems relate in terms of power. Contributions welcome. A while back I tried to classi...
4 comments:
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...
‹
›
Home
View web version

About Me

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