Skip to content

Instantly share code, notes, and snippets.

View mpickering's full-sized avatar

Matthew Pickering mpickering

  • Well Typed LLP
  • Sheffield, UK
View GitHub Profile

Introduction

Open-source development has been seen as the last bastion of meritocracy. The feeling goes that for a software project, the only principle which should matter is the technical details of the code. All developers strive to simple, faster, cleaner technical solutions and can agree alignment on these simple self-evident facts.

Anyone who has spent significant time in these communities knows that the truth is more complicated. Governance, conflict, power, and trust shape the day-to-day life

Blog Series Topics on Governance and Conflict in Open Source

This file groups possible blog post topics into thematic clusters. Each title includes a short summary paragraph.

Introduction

Open-source development has been seen as the last bastion of meritocracy. The feeling goes that for a software project, the only principle which should matter is the technical details of the

Config { font = "xft:Fira Mono:pixelsize=14:antialias=true:hinting=true"
, borderColor = "black"
, border = TopB
, bgColor = "black"
, fgColor = "grey"
, position = TopW L 100
, commands = [ Run Weather "EGGD" ["-t","<tempC>C","-L","18","-H","25","--normal","green","--high","red","--low","lightblue"] 36000
, Run Network "eth0" ["-L","0","-H","32","--normal","green","--high","red"] 10
, Run Network "eth1" ["-L","0","-H","32","--normal","green","--high","red"] 10
, Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
set background=dark
set hidden
set wildmenu
nnoremap ' `
nnoremap ` '
map <silent> tu :call GHC_BrowseAll()<CR>
syntax on
#Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).
{ config, pkgs, ... }:
{
environment.variables.EDITOR = "vim";
module A
( b1000, a1000, c1000
) where
import C
a1000 :: ()
a1000 = ()
b1000 :: ()
=== GHC RTS Stats Comparison ===
_release_debug_info _release_no_prof_no_hash _release_no_split_sections _release
Metric
bytes allocated 110146924080 169756134368 110070939008 110066233592
num_GCs 1759 1964 1732 1570
average_bytes_used 149789226 209639940 144597600 146507169
max_bytes_used 356366328 627307312 386094344 386696640
num_byte_usage_samples 19 22 20 20
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE LambdaCase #-}
{-# OPTIONS_GHC -ddump-simpl #-}
module StreamTest where
import Language.Haskell.TH
commit fff55592a7b9c9487c043d055f2d0d77fa549f4e
Author: Torsten Schmits <git@tryp.io>
Date: Thu Aug 22 15:58:09 2024 +0200
finder: Add `IsBootInterface` to finder cache keys
diff --git a/compiler/GHC/Driver/Backpack.hs b/compiler/GHC/Driver/Backpack.hs
index 3fe26820651..bd4dae294ff 100644
--- a/compiler/GHC/Driver/Backpack.hs
+++ b/compiler/GHC/Driver/Backpack.hs
commit fd9986790de790e3bec7e5a7ac19fc6b2541b199
Author: Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io>
Date: Mon Jun 9 12:44:07 2025 +0200
Fix EPT enforcement when mixing unboxed tuples and non-tuples
The code was assuming that an alternative cannot be returning a normal
datacon and an unboxed tuple at the same time. However, as seen in #26107,
this can happen when using a GADT to refine the representation type.