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
commit fff55592a7b9c9487c043d055f2d0d77fa549f4e
Author: Torsten Schmits <[email protected]>
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 <[email protected]>
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.
commit a27803fa7ab18582f61558aaf3799d94726a0a1f
Author: Matthew Pickering <[email protected]>
Date: Wed Apr 2 14:16:16 2025 +0100
Move ModuleGraph into UnitEnv
The ModuleGraph is a piece of information associated with the
ExternalPackageState and HomeUnitGraph. Therefore we should store it
inside the HomeUnitEnv.
diff --git a/compiler/GHC/Cmm/Info.hs b/compiler/GHC/Cmm/Info.hs
index 06b926aa595..80da422ac77 100644
--- a/compiler/GHC/Cmm/Info.hs
+++ b/compiler/GHC/Cmm/Info.hs
@@ -392,7 +392,7 @@ mkStdInfoTable profile (type_descr, closure_descr) cl_type srt layout_lit
prof_info
-- Ticky info (none at present)
-- Debug info (none at present)
- ++ [layout_lit, tag, srt]
+ ++ [closure_id, layout_lit, tag, srt]
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE FlexibleInstances #-}
{-# OPTIONS_GHC -ddump-simpl #-}
module StreamTest where
import Language.Haskell.TH
import Data.Functor.Compose
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE OverloadedStrings #-}
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as Map
import Data.List (nub)
import Data.Maybe (mapMaybe)
import Control.Monad (guard)
-- Basic types
#!/usr/bin/env bash
set -e
usage() {
echo "$0 (job-name)"
exit 1
}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE OverloadedStrings #-}
import System.IO
import System.Posix.IO
import System.Posix.Types
import Control.Concurrent
import Control.Monad
import qualified Data.ByteString.Char8 as BS
import GHC.IO.Handle
:set -XPatternSynonyms
:set -Wall -Werror
pattern P = 5
f P = 5
{-# COMPLETE P #-}
x P = 5
{-# LANGUAGE NamedDefaults #-}
module A (
Stringify(..),
default Stringify
) where
class Stringify a where
stringify :: a -> String
instance Stringify Int where