Neil Mitchell's Blog (Haskell etc)

Tuesday, September 22, 2020

Don't use Ghcide anymore (directly)

›
Summary: I recommend people use the Haskell Language Server IDE. Just over a year ago, I recommended people looking for a Haskell IDE exper...
4 comments:
Monday, August 31, 2020

Interviewing while biased

›
Interviewing usually involves some level of subjectivity. I once struggled to decide about a candidate, and after some period of reflection,...
2 comments:
Monday, July 27, 2020

Which packages does Hoogle search?

›
Summary: Hoogle searches packages on Stackage. Haskell (as of 27 July 2020) has 14,490 packages in the Hackage package repository . Hoogle ...
1 comment:
Wednesday, July 15, 2020

Managing Haskell Extensions

›
Summary: You can divide extensions into yes, no and maybe, and then use HLint to enforce that. I've worked in multiple moderately sized ...
1 comment:
Tuesday, July 07, 2020

How I Interview

›
Summary: In previous companies I had a lot of freedom to design an interview. This article describes what I came up with. Over the years, I...
Sunday, July 05, 2020

Automatic UI's for Command Lines with cmdargs

›
Summary: Run cmdargs-browser hlint and you can fill out arguments easily. The Haskell command line parsing library cmdargs contains a data...
3 comments:
Wednesday, July 01, 2020

A Rust self-ownership lifetime trick (that doesn't work)

›
Summary: I came up with a clever trick to encode lifetimes of allocated values in Rust. It doesn't work. Let's imagine we are using ...
1 comment:
Monday, June 22, 2020

The HLint Match Engine

›
Summary: HLint has a match engine which powers most of the rules. The Haskell linter HLint has two forms of lint - some are built in writt...
1 comment:
Tuesday, June 09, 2020

Hoogle Searching Overview

›
Summary: Hoogle 5 has three interesting parts, a pipeline, database and search algorithm. The Haskell search engine Hoogle has gone through...
2 comments:
Sunday, June 07, 2020

Surprising IO: How I got a benchmark wrong

›
Summary: IO evaluation caught me off guard when trying to write some benchmarks. I once needed to know a quick back-of-the-envelope timing o...
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:
‹
›
Home
View web version

About Me

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