diff --git a/default.nix b/default.nix index 1dfac4043e31cbfec742f1d5f7ed7a2eda6caeae..82a6921dfb97db8f314c6cc378bc18f67fda7e03 100644 --- a/default.nix +++ b/default.nix @@ -1,7 +1,8 @@ { 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 diff --git a/flake.lock b/flake.lock index 599e5dbc9d86de7944a18d8ead209af8a4807ee5..d7a8003b54af7df66fbaab7fd53ac453253a73e5 100644 --- a/flake.lock +++ b/flake.lock @@ -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": { diff --git a/quasar-wayland.cabal b/quasar-wayland.cabal index 2acb8c1f0ada5ffeb70dd0e337da8ea85225b03b..1c5bdc355092d9da80b3958ad7bd94cac1f6422e 100644 --- a/quasar-wayland.cabal +++ b/quasar-wayland.cabal @@ -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 diff --git a/src/Quasar/Wayland/Protocol/Core.hs b/src/Quasar/Wayland/Protocol/Core.hs index 8668bee36a81e2ada0295b61842d01621b37a061..e4cff7c44567f2c0718ddf15ebf6e3176e0e0f26 100644 --- a/src/Quasar/Wayland/Protocol/Core.hs +++ b/src/Quasar/Wayland/Protocol/Core.hs @@ -1,4 +1,5 @@ {-# 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 ()