Neil Mitchell's Blog (Haskell etc)

Thursday, March 03, 2016

Compiling GHC on Windows

›
Summary: How to compile GHC on Windows using Stack and the new Shake-based GHC build system. Regularly updated instructions are at https://g...
Wednesday, February 17, 2016

Selling Haskell in the pub

›
Summary: A Haskell sales pitch without any code. I often find myself in a pub, without pen or paper, trying to persuade someone to try Haske...
2 comments:
Monday, February 01, 2016

New HLint version and API features

›
Summary: In the new version of HLint, errors are warnings and warnings are suggestions. I plan to remove the old API very soon. I've jus...
3 comments:
Tuesday, January 19, 2016

One Bag of Huel

›
I've been a fan of the idea of meal replacement products for a while - the Matrix gruel always seemed simple and appealing. One such p...
1 comment:
Thursday, January 14, 2016

A simple Haskell function

›
Summary: An example of a small function I recently wrote - from type signature to tests. When writing a build system there are lots of nast...
6 comments:
Monday, December 21, 2015

Solving the GCHQ puzzle "by hand"

›
The GCHQ 2015 Christmas puzzle is a Nonogram puzzle, which involves filling in squares on a grid to reveal a picture, guided by constraint...
Wednesday, December 09, 2015

MinGHC is Dead, Long Live Stack

›
Summary: The MinGHC project has now finished. The MinGHC project was started to produce a minimal Windows installer which didn't contai...
Tuesday, December 08, 2015

What's the point of Stackage LTS?

›
Summary: Stackage LTS is mostly pointless. Stackage provides a set of precise versions of a subset of Hackage which all place nicely toget...
11 comments:
Wednesday, October 28, 2015

ViewPatterns and lambda expansion

›
Summary: One of HLint's rules reduced sharing in the presence of view patterns. Lambda desugaring and optimisation could be improved in ...
Monday, October 26, 2015

FilePaths are subtle, symlinks are hard

›
Summary: When thinking about the filepath .. , remember symlinks, or you will trip yourself up. As the maintainer of the Haskell filepath pa...
8 comments:
Monday, October 12, 2015

Defining your own Shake build system

›
Summary: The video of my recent Shake talk is now online. My Haskell eXchange 2015 talk "Defining your own build system with Shake...
2 comments:
Tuesday, September 22, 2015

Three Space Leaks

›
Summary: Using the technique from the previous post , here are three space leaks I found. Every large Haskell program almost inevitably cont...
5 comments:
Monday, September 21, 2015

Detecting Space Leaks

›
Summary: Below is a technique for easily detecting space leaks. It's even found a space leak in the base library. Every large Haskell pr...
6 comments:
Monday, September 14, 2015

Making sequence/mapM for IO take O(1) stack

›
Summary: We have a version of mapM for IO that takes O(1) stack and is faster than the standard Haskell/GHC one for long lists. The stand...
8 comments:
Saturday, August 15, 2015

Testing is never enough

›
Summary: Testing shows the presence, not the absence of bugs. Recently, someone suggested to me that, thanks to test suites, things like cha...
Monday, August 10, 2015

Upcoming talk to the Cambridge UK Meetup, Thursday 13 Aug (Shake 'n' Bake)

›
I'll be talking at the Cambridge NonDysFunctional Programmers Meetup this coming Thursday (13 Aug 2015). Doors open at 7:00pm with talk...
Thursday, July 30, 2015

Parallel/Pipelined Conduit

›
Summary: I wrote a Conduit combinator which makes the upstream and downstream run in parallel. It makes Hoogle database generation faster. T...
4 comments:
Sunday, July 19, 2015

Thoughts on Conduits

›
Summary: I'm growing increasingly fond of the Conduit library. Here I give my intuitions and some hints I'd have found useful. Recen...
4 comments:
Saturday, June 20, 2015

Announcing the 'extra' library

›
Summary: I wrote an extra library, which contains lots of my commonly used functions. When starting to write Bake , my first step was to co...
2 comments:
Friday, June 19, 2015

Maximum Patches, Minimum Time

›
Summary: Writing a fast continuous integration server is tricky. When I started writing the continuous integration server Bake , I thought I...
‹
›
Home
View web version

About Me

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