Skip to content
Snippets Groups Projects
Commit ba2d4d35 authored by Jens Nolte's avatar Jens Nolte
Browse files

Switch to GHC 9.2.1 to use native OverloadedRecordDot

GHC 9.2.1 also enables Template Haskell to attach Haddock documentation,
which can be used to attach documentation from the Wayland XML
specifications to their generated Haskell APIs.
parent fa7c8a66
No related branches found
No related tags found
No related merge requests found
{ pkgs ? import <nixpkgs> {}, haskellPackages ? pkgs.haskellPackages, args ? {} }:
let
quasar-wayland = haskellPackages.callCabal2nix "quasar-wayland" ./. args;
#quasar-wayland = haskellPackages.callCabal2nix "quasar-wayland" ./. args;
quasar-wayland = pkgs.haskell.packages.ghc921.callCabal2nix "quasar-wayland" ./. args;
in
if pkgs.lib.inNixShell then quasar-wayland.env else quasar-wayland
......@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1635403963,
"narHash": "sha256-0actzfzBAXvvDJ/EvPSGbtCPXUwSObQrcq0RpsPWZgA=",
"lastModified": 1638110343,
"narHash": "sha256-hQaow8sGPyUrXgrqgDRsfA+73uR0vms2goTQNxIAaRQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2deb07f3ac4eeb5de1c12c4ba2911a2eb1f6ed61",
"rev": "942eb9a335b4cd22fa6a7be31c494e53e76f5637",
"type": "github"
},
"original": {
......
......@@ -41,6 +41,7 @@ common shared-properties
MultiParamTypeClasses
NamedFieldPuns
NoImplicitPrelude
OverloadedRecordDot
OverloadedStrings
PolyKinds
RankNTypes
......@@ -52,23 +53,13 @@ common shared-properties
TypeFamilies
TypeOperators
ViewPatterns
-- Required for the record-dot-preprocessor plugin
DuplicateRecordFields
TypeApplications
FlexibleContexts
DataKinds
MultiParamTypeClasses
TypeSynonymInstances
FlexibleInstances
UndecidableInstances
GADTs
default-language: Haskell2010
ghc-options:
-fplugin=RecordDotPreprocessor
-Weverything
-Wno-all-missed-specialisations
-Wno-missing-safe-haskell-mode
-Wno-missing-import-lists
-Wno-missing-kind-signatures
-Wno-missing-safe-haskell-mode
-Wno-unsafe
-Werror=incomplete-patterns
-Werror=missing-fields
......@@ -107,9 +98,6 @@ library
utf8-string,
stm,
xml,
-- required for record-dot-preprocessor
record-dot-preprocessor,
record-hasfield,
hs-source-dirs:
src
......@@ -118,9 +106,6 @@ executable quasar-wayland-example
build-depends:
quasar,
quasar-wayland,
-- required for record-dot-preprocessor
record-dot-preprocessor,
record-hasfield,
main-is: Main.hs
hs-source-dirs:
example
......@@ -133,9 +118,6 @@ test-suite quasar-wayland-test
--QuickCheck,
hspec,
--quasar-wayland,
-- required for record-dot-preprocessor
record-dot-preprocessor,
record-hasfield,
main-is: Spec.hs
other-modules:
--Quasar.TemplateSpec
......
{-# LANGUAGE DeriveLift #-}
{-# LANGUAGE UndecidableInstances #-}
module Quasar.Wayland.Protocol.Core (
ObjectId,
......@@ -600,7 +601,7 @@ sendMessage object message = do
putWord32host $ (fromIntegral msgSize `shiftL` 16) .|. fromIntegral opcode
objectSendMessage :: forall s i. IsInterfaceSide s i => Object s i -> WireUp s i -> STM ()
objectSendMessage object message = runProtocolM (objectProtocol object) $ sendMessage object message
objectSendMessage object message = runProtocolM object.objectProtocol $ sendMessage object message
receiveMessages :: IsSide s => ProtocolM s ()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment