Neil Mitchell's Blog (Haskell etc)

Tuesday, June 18, 2019

The One PR Per Day Rule

›
Summary: The rough rule I use for teams I'm on is make at least one PR per day. One of the principles I've used quite successfully i...
Monday, June 17, 2019

Shake from 10,000ft

›
Summary: A very high-level view of the engineering aspects of Shake. The theory behind Shake is now well documented in the Build Systems a l...
6 comments:
Thursday, June 13, 2019

HLint's path to the GHC parser

›
Summary: HLint is going to switch to the GHC parser over the next few months. The plan is below. For some time, HLint has been accumulating ...
Monday, May 20, 2019

Hoogle XSS Vulnerability

›
Summary: Hoogle 5.0.17.6 and below have an XSS vulnerability, fixed in later versions. On Friday afternoon I got an email from Alexander Gug...
3 comments:
Tuesday, May 14, 2019

Shake with Applicative Parallelism

›
Summary: Shake now does that Applicative trick from Haxl. In Shake 0.17.9 and below, need xs >> need ys builds xs in parallel, then ...
Monday, April 29, 2019

foldr under the hood

›
Summary: The foldr function seems simple, but is actually very complex, with lots of layers. This post dives through the layers. The foldr ...
3 comments:
Tuesday, April 16, 2019

Code Statistics and Measuring Contributions

›
Summary: The only way to understand a code base is to ask someone who works on it. This weekend a relative asked me how can we tell who wrot...
1 comment:
Sunday, April 07, 2019

Code Review: Approve with Suggestions

›
Summary: Code review is not a yes/no decision - mostly I say yes with suggestions. As I wrote previously , I didn't used to be a fan of ...
1 comment:
Monday, March 18, 2019

GHC Rebuild Times - Shake profiling

›
Summary: GHC rebuild times are slow. Using the Shake profiler and Hadrian we can find out why. I just checked out GHC , and using Hadrian (...
10 comments:
Sunday, February 17, 2019

Quadratic "deriving Generic" Compile Times

›
Summary: For large data types, deriving Generic can take a long time to compile. I was building GHC using Hadrian , and part of that proce...
Tuesday, February 05, 2019

Announcing ghc-lib

›
On behalf of Digital Asset I'm delighted to announce ghc-lib , a repackaging of the GHC API to allow it to be used on different GHC ver...
2 comments:
Friday, January 25, 2019

HLint Unused Extension Hints

›
Summary: HLint detects unused extensions in LANGUAGE pragmas, including over 17,000 on Hackage. HLint has detected unused LANGUAGE pragma...
Tuesday, January 22, 2019

Release delays with Stackage

›
Summary: There are two steps that delay new versions of packages in Stackage. I aim to get the latest version of my software out to as many ...
1 comment:
Thursday, January 17, 2019

Ignoring HLint

›
Summary: HLint now has more ways to ignore hints you don't like. HLint makes suggestions about how to improve your Haskell code. But no...
Wednesday, January 09, 2019

GHC: From Bug to Merge (2)

›
Summary: The story of another bug, from report, patch, revisions, to merge. I recently posted the story of a GHC bug that took 3 months to ...
Wednesday, December 12, 2018

GHC: From Bug to Merge

›
Summary: The story of a bug, from report, proposal, patch, revisions, to merge. A while ago I found a bug in GHC . Like all good bugs, this ...
Friday, November 23, 2018

Counting the Cost of Colons in Haskell

›
Summary: Haskell uses :: as the type operator. That was a mistake that costs us over 1 million characters of source code. Haskell uses :: f...
5 comments:
Thursday, November 22, 2018

Downloading all of Hackage

›
Summary: I wanted to download the latest version of every package in Hackage. Here's a script and explanation of how to do it. Imagine y...
6 comments:
Sunday, October 21, 2018

Announcing Profiterole - GHC Profile Viewer

›
Summary: profiterole reformats GHC profile reports so they are easier to read. Do you often work with GHC time profiling reports? Do you fi...
1 comment:
Tuesday, October 16, 2018

Announcing Shake 0.17

›
I'm delighted to announce Shake 0.17. As always, the full changelog is on GitHub , but I'd like to highlight three areas that have s...
‹
›
Home
View web version

About Me

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