Neil Mitchell's Blog (Haskell etc)

Sunday, May 31, 2020

HLint --cross was accidentally quadratic

›
Summary: HLint --cross was accidentally quadratic in the number of files. One of my favourite blogs is Accidentally Quadratic , so when th...
1 comment:
Wednesday, May 27, 2020

Fixing Space Leaks in Ghcide

›
Summary: A performance investigation uncovered a memory leak in unordered-containers and performance issues with Ghcide. Over the bank holid...
Saturday, May 23, 2020

Shake 0.19 - changes to process execution

›
Summary: The new version of Shake has some tweaks to how stdin works with cmd . I've just released Shake 0.19 , see the full change log ...
Wednesday, May 20, 2020

GHC Unproposals

›
Summary: Four improvements to Haskell I'm not going to raise as GHC proposals. Writing a GHC proposal is a lot of hard work. It require...
2 comments:
Friday, May 15, 2020

File Access Tracing

›
Summary: It is useful to trace files accessed by a command. Shake and FSATrace provide some tools to do that. When writing a build system, i...
2 comments:
Sunday, May 03, 2020

HLint 3.0

›
Summary: HLint 3.0 uses the GHC parser. In June 2019 I posted about our intention to move HLint to the GHC parser. Since then a small group...
Tuesday, April 28, 2020

Writing a fast interpreter

›
Summary: Interpretation by closure is a lot faster than I expected. Let's imagine we have an imperative language (expressions, assignmen...
9 comments:
Monday, March 16, 2020

The <- pure pattern

›
Summary: Sometimes <- pure makes a lot of sense, avoiding some common bugs. In Haskell, in a monadic do block, you can use either <-...
9 comments:
Monday, March 02, 2020

How to get a Haskell job

›
Summary: There are four things I recommend to get a Haskell job. Applies to most technologies. I was recently emailed by someone who asked f...
Monday, January 27, 2020

One Haskell IDE to rule them all

›
Summary: The Haskell IDE Engine and Ghcide teams are joining forces on a single IDE. This weekend many of the Haskell IDE Engine (HIE) and ...
5 comments:
Friday, October 18, 2019

Improving Rebindable Syntax

›
Summary: Rebindable syntax is powerful, but sometimes too flexible. I had some ideas on how to improve it. In Haskell, when you write 1 , GH...
2 comments:
Sunday, October 13, 2019

Monads as Graphs

›
Summary: You can describe type classes like monads by the graphs they allow. In the Build Systems a la Carte paper we described build syste...
5 comments:
Monday, July 01, 2019

Thoughts for a Haskell IDE

›
Summary: We have been working on pieces for a Haskell IDE at Digital Asset. At Digital Asset , we wrote the DAML programming language . The ...
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 ...
‹
›
Home
View web version

About Me

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