chore(3p/sources): Bump channels & overlays
Use nixos-unstable-small which fixes CVE-2018-25032 (out of bounds write while compressing). * //users/grfn/xanthous: - Supporting random-fu 0.3 requires considerable changes and patching random-extras (https://github.com/aristidb/random-extras/pull/5). For now we downgrade random-fu and its dependency rvar to 0.2.*, forcing us to build xanthous with GHC 8.10.7, due to random-fu 0.2.* not supporting that version. Nix expressions for the downgraded packages are checked in to avoid the potential need to compile Haskell at pipeline eval time. - generic-arbitrary exposes a GenericArbitrary newtype now. This means we no longer have to implement it in xanthous downstream and patch generic-arbitrary to expose the GArbitrary type class. - Minor adjustments for lens 5.0: Xanthous.Game.Memo: clear needs to use ASetter' instead of Lens' Xanthous.Data.EntityMap: TraversableWithIndex no longer has an itraversed function. - Xanthous.Orphans: adjust for aeson's KeyMap, use KM.size explicitly instead of relying on MonoTraversable's length * //nix/buildLisp: the CCL issue has resurfaced, disabling the implementation once again. * //3p/arion: remove, as depot uses the nixpkgs package of it anyways. * //users/wpcarro: accomodate GHC 9.0.1's stricter parsing of operators. * //users/tazjin: disable rustfmt as it stopped respecting settings * //3p/overlays: upgrade home-manager until fix for serivce generation has landed upstream * //users/grfn/system: remove rr override, as the pinned commit is part of the 5.5.0 release shipped by nixpkgs. Change-Id: If229e7317ba48498f85170b57ee9053f6997ff8a Reviewed-on: https://cl.tvl.fyi/c/depot/+/5428 Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: grfn <grfn@gws.fyi> Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: wpcarro <wpcarro@gmail.com>
This commit is contained in:
parent
1a2fe4b063
commit
11f9306b9a
24 changed files with 119 additions and 89 deletions
|
@ -154,7 +154,8 @@ let
|
||||||
let
|
let
|
||||||
implementation = old.implementation or defaultImplementation;
|
implementation = old.implementation or defaultImplementation;
|
||||||
brokenOn = old.brokenOn or [ ];
|
brokenOn = old.brokenOn or [ ];
|
||||||
targets = lib.subtractLists (brokenOn ++ [ implementation.name ])
|
# TODO(sterni): https://github.com/Clozure/ccl/issues/405#issuecomment-1085241805
|
||||||
|
targets = lib.subtractLists (brokenOn ++ [ "ccl" implementation.name ])
|
||||||
(builtins.attrNames impls);
|
(builtins.attrNames impls);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
3
third_party/arion/OWNERS
vendored
3
third_party/arion/OWNERS
vendored
|
@ -1,3 +0,0 @@
|
||||||
inherit: true
|
|
||||||
owners:
|
|
||||||
- grfn
|
|
10
third_party/arion/default.nix
vendored
10
third_party/arion/default.nix
vendored
|
@ -1,10 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
(import
|
|
||||||
(pkgs.fetchFromGitHub {
|
|
||||||
owner = "hercules-ci";
|
|
||||||
repo = "arion";
|
|
||||||
rev = "db6d4d7490dff363de60cebbece3ae9361e3ce43";
|
|
||||||
sha256 = "0d8nqmc7fjshigax2g47ips262v8ml27x0ksq59kmprgb7ckzi5l";
|
|
||||||
})
|
|
||||||
{ inherit pkgs; }).arion
|
|
1
third_party/overlays/haskell/.skip-subtree
vendored
Normal file
1
third_party/overlays/haskell/.skip-subtree
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
extra-pkgs need to be callPackage-ed
|
19
third_party/overlays/haskell/default.nix
vendored
19
third_party/overlays/haskell/default.nix
vendored
|
@ -7,13 +7,26 @@
|
||||||
self: super: # overlay parameters for the nixpkgs overlay
|
self: super: # overlay parameters for the nixpkgs overlay
|
||||||
|
|
||||||
let
|
let
|
||||||
overrides = hsSelf: hsSuper: with super.haskell.lib; {
|
overrides = hsSelf: hsSuper: with self.haskell.lib.compose; {
|
||||||
generic-arbitrary = appendPatch hsSuper.generic-arbitrary
|
# No overrides for the default package set necessary at the moment
|
||||||
[ ./patches/generic-arbitrary-export-garbitrary.patch ];
|
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
haskellPackages = super.haskellPackages.override {
|
haskellPackages = super.haskellPackages.override {
|
||||||
inherit overrides;
|
inherit overrides;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
haskell = lib.recursiveUpdate super.haskell {
|
||||||
|
packages.ghc8107 = super.haskell.packages.ghc8107.override {
|
||||||
|
overrides = hsSelf: hsSuper: with self.haskell.lib.compose; {
|
||||||
|
# TODO(sterni): TODO(grfn): patch xanthous to work with random-fu 0.3.*,
|
||||||
|
# so we can use GHC 9.0.2 and benefit from upstream binary cache.
|
||||||
|
random-fu = hsSelf.callPackage ./extra-pkgs/random-fu-0.2.nix { };
|
||||||
|
rvar = hsSelf.callPackage ./extra-pkgs/rvar-0.2.nix { };
|
||||||
|
|
||||||
|
# TODO(sterni): upstream this
|
||||||
|
universe-base = addBuildDepend hsSelf.OneTuple hsSuper.universe-base;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
41
third_party/overlays/haskell/extra-pkgs/random-fu-0.2.nix
vendored
Normal file
41
third_party/overlays/haskell/extra-pkgs/random-fu-0.2.nix
vendored
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{ mkDerivation
|
||||||
|
, base
|
||||||
|
, erf
|
||||||
|
, lib
|
||||||
|
, math-functions
|
||||||
|
, monad-loops
|
||||||
|
, mtl
|
||||||
|
, random
|
||||||
|
, random-shuffle
|
||||||
|
, random-source
|
||||||
|
, rvar
|
||||||
|
, syb
|
||||||
|
, template-haskell
|
||||||
|
, transformers
|
||||||
|
, vector
|
||||||
|
}:
|
||||||
|
mkDerivation {
|
||||||
|
pname = "random-fu";
|
||||||
|
version = "0.2.7.7";
|
||||||
|
sha256 = "8466bcfb5290bdc30a571c91e1eb526c419ea9773bc118996778b516cfc665ca";
|
||||||
|
revision = "1";
|
||||||
|
editedCabalFile = "16nhymfriygqr2by9v72vdzv93v6vhd9z07pgaji4zvv66jikv82";
|
||||||
|
libraryHaskellDepends = [
|
||||||
|
base
|
||||||
|
erf
|
||||||
|
math-functions
|
||||||
|
monad-loops
|
||||||
|
mtl
|
||||||
|
random
|
||||||
|
random-shuffle
|
||||||
|
random-source
|
||||||
|
rvar
|
||||||
|
syb
|
||||||
|
template-haskell
|
||||||
|
transformers
|
||||||
|
vector
|
||||||
|
];
|
||||||
|
homepage = "https://github.com/mokus0/random-fu";
|
||||||
|
description = "Random number generation";
|
||||||
|
license = lib.licenses.publicDomain;
|
||||||
|
}
|
25
third_party/overlays/haskell/extra-pkgs/rvar-0.2.nix
vendored
Normal file
25
third_party/overlays/haskell/extra-pkgs/rvar-0.2.nix
vendored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{ mkDerivation
|
||||||
|
, base
|
||||||
|
, lib
|
||||||
|
, MonadPrompt
|
||||||
|
, mtl
|
||||||
|
, random-source
|
||||||
|
, transformers
|
||||||
|
}:
|
||||||
|
mkDerivation {
|
||||||
|
pname = "rvar";
|
||||||
|
version = "0.2.0.6";
|
||||||
|
sha256 = "01e18875ffde43f9591a8acd9f60c9c51704a026e51c1a6797faecd1c7ae8cd3";
|
||||||
|
revision = "1";
|
||||||
|
editedCabalFile = "1jn9ivlj3k65n8d9sfsp882m5lvni1ah79mk0cvkz91pgywvkiyq";
|
||||||
|
libraryHaskellDepends = [
|
||||||
|
base
|
||||||
|
MonadPrompt
|
||||||
|
mtl
|
||||||
|
random-source
|
||||||
|
transformers
|
||||||
|
];
|
||||||
|
homepage = "https://github.com/mokus0/random-fu";
|
||||||
|
description = "Random Variables";
|
||||||
|
license = lib.licenses.publicDomain;
|
||||||
|
}
|
|
@ -1,12 +0,0 @@
|
||||||
diff --git a/src/Test/QuickCheck/Arbitrary/Generic.hs b/src/Test/QuickCheck/Arbitrary/Generic.hs
|
|
||||||
index fed6ab3..91f59f1 100644
|
|
||||||
--- a/src/Test/QuickCheck/Arbitrary/Generic.hs
|
|
||||||
+++ b/src/Test/QuickCheck/Arbitrary/Generic.hs
|
|
||||||
@@ -23,6 +23,7 @@ The generated 'arbitrary' method is equivalent to
|
|
||||||
|
|
||||||
module Test.QuickCheck.Arbitrary.Generic
|
|
||||||
( Arbitrary(..)
|
|
||||||
+ , GArbitrary
|
|
||||||
, genericArbitrary
|
|
||||||
, genericShrink
|
|
||||||
) where
|
|
26
third_party/overlays/tvl.nix
vendored
26
third_party/overlays/tvl.nix
vendored
|
@ -75,21 +75,15 @@ self: super: {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
# Temporary workaround until the following commit is in channels:
|
# upgrade home-manager until the service-generation fix has landed upstream
|
||||||
# https://github.com/nixos/nixpkgs/commit/5819b99350d7ac6e20f91adce38e7bb22e4d6fc4
|
# https://github.com/nix-community/home-manager/issues/2846
|
||||||
ocamlPackages = super.ocamlPackages.overrideScope' (oself: osuper: {
|
home-manager = super.home-manager.overrideAttrs (old: rec {
|
||||||
uutf =
|
version = assert super.home-manager.version == "2021-12-25"; "2022-04-08";
|
||||||
let
|
src = self.fetchFromGitHub {
|
||||||
expectedUrls = [
|
owner = "nix-community";
|
||||||
"https://erratique.ch/software/uutf/releases/uutf-${osuper.uutf.version}.tbz"
|
repo = "home-manager";
|
||||||
];
|
rev = "f911ebbec927e8e9b582f2e32e2b35f730074cfc";
|
||||||
in
|
sha256 = "07qa2qkbjczj3d0m03jpw85hfj35cbjm48xhifz3viy4khjw88vl";
|
||||||
assert osuper.uutf.src.urls != expectedUrls;
|
};
|
||||||
osuper.uutf.overrideAttrs (old: {
|
|
||||||
src = self.fetchurl {
|
|
||||||
urls = expectedUrls;
|
|
||||||
sha256 = old.src.outputHash;
|
|
||||||
};
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
24
third_party/sources/sources.json
vendored
24
third_party/sources/sources.json
vendored
|
@ -5,10 +5,10 @@
|
||||||
"homepage": "",
|
"homepage": "",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "26da73dd9129d267f0c8c26b591ab91050c4cdc9",
|
"rev": "e0f4bc33ca1776c1103d15a63f022e29486d9455",
|
||||||
"sha256": "0sd868br1jqmihgm97ma1jv8r78x1n7s7bqjk5dl4v6s2rhzy3br",
|
"sha256": "1jci75bs4cz46wbkmhlf07sys75i524bi1jgf49b7glp6z8857cw",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/nix-community/emacs-overlay/archive/26da73dd9129d267f0c8c26b591ab91050c4cdc9.tar.gz",
|
"url": "https://github.com/nix-community/emacs-overlay/archive/e0f4bc33ca1776c1103d15a63f022e29486d9455.tar.gz",
|
||||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
|
@ -17,10 +17,10 @@
|
||||||
"homepage": "",
|
"homepage": "",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ce8cbe3c01fd8ee2de526ccd84bbf9b82397a510",
|
"rev": "fd364d268852561223a5ada15caad669fd72800e",
|
||||||
"sha256": "19xfad7pxsp6nkrkjhn36w77w92m60ysq7njn711slw74yj6ibxv",
|
"sha256": "133i5fsx0gix37q4nxm1vfsl9hqbfzv458xykilqhgxmv45jmfl2",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/ce8cbe3c01fd8ee2de526ccd84bbf9b82397a510.tar.gz",
|
"url": "https://github.com/NixOS/nixpkgs/archive/fd364d268852561223a5ada15caad669fd72800e.tar.gz",
|
||||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
|
@ -29,10 +29,10 @@
|
||||||
"homepage": "",
|
"homepage": "",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9b168e5e62406fa2e55e132f390379a6ba22b402",
|
"rev": "715dc137b08213aabbbe0965b78ab938e5d8d3b7",
|
||||||
"sha256": "16baazcid93afjg75mf8w3hihyc4wilcq0mawxfrilm1xqm52265",
|
"sha256": "1q5pxys0s6nb3h1vbmmcr27frf1i5j8pzgc2gm1908yy0himi9ap",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/9b168e5e62406fa2e55e132f390379a6ba22b402.tar.gz",
|
"url": "https://github.com/NixOS/nixpkgs/archive/715dc137b08213aabbbe0965b78ab938e5d8d3b7.tar.gz",
|
||||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||||
},
|
},
|
||||||
"rustsec-advisory-db": {
|
"rustsec-advisory-db": {
|
||||||
|
@ -41,10 +41,10 @@
|
||||||
"homepage": "https://rustsec.org",
|
"homepage": "https://rustsec.org",
|
||||||
"owner": "RustSec",
|
"owner": "RustSec",
|
||||||
"repo": "advisory-db",
|
"repo": "advisory-db",
|
||||||
"rev": "1aca83f114ddf1e94b754a475c40b93fd764a867",
|
"rev": "ce150ef8cbed58f21f235c267cd5f501ffa56756",
|
||||||
"sha256": "1kfrl2qlzg5miwhf83vf63hxizvib9a34h0jlfycfc7zp8sbdy0m",
|
"sha256": "11fmzfnawg2prjl4s8z1p7xans3pnpb4gy91v0qcq3fskhsldahr",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://github.com/RustSec/advisory-db/archive/1aca83f114ddf1e94b754a475c40b93fd764a867.tar.gz",
|
"url": "https://github.com/RustSec/advisory-db/archive/ce150ef8cbed58f21f235c267cd5f501ffa56756.tar.gz",
|
||||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,16 +59,7 @@ with lib;
|
||||||
lldb
|
lldb
|
||||||
hyperfine
|
hyperfine
|
||||||
clang-tools_11
|
clang-tools_11
|
||||||
(rr.overrideAttrs (_: rec {
|
rr
|
||||||
version = "f25671d094edac8059cec56b98d7f10f2c740697";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "rr-debugger";
|
|
||||||
repo = "rr";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "149s4mw8vl8d3nx15sfp62z0izp2dibz99k720j75rjnkwk2bq2z";
|
|
||||||
fetchSubmodules = true;
|
|
||||||
};
|
|
||||||
}))
|
|
||||||
|
|
||||||
clj2nix
|
clj2nix
|
||||||
clojure
|
clojure
|
||||||
|
|
|
@ -15,7 +15,7 @@ let
|
||||||
|| builtins.baseNameOf path == "package.yaml");
|
|| builtins.baseNameOf path == "package.yaml");
|
||||||
};
|
};
|
||||||
# generated by cabal2nix
|
# generated by cabal2nix
|
||||||
basePkg = pkgs.haskellPackages.callPackage ./pkg.nix { };
|
basePkg = pkgs.haskell.packages.ghc8107.callPackage ./pkg.nix { };
|
||||||
in
|
in
|
||||||
|
|
||||||
pkgs.haskell.lib.overrideCabal basePkg (default: {
|
pkgs.haskell.lib.overrideCabal basePkg (default: {
|
||||||
|
|
|
@ -4,7 +4,7 @@ let
|
||||||
pkgs = third_party.nixpkgs;
|
pkgs = third_party.nixpkgs;
|
||||||
in
|
in
|
||||||
|
|
||||||
(pkgs.haskellPackages.extend (pkgs.haskell.lib.packageSourceOverrides {
|
(pkgs.haskell.packages.ghc8107.extend (pkgs.haskell.lib.packageSourceOverrides {
|
||||||
xanthous = third_party.gitignoreSource ./.;
|
xanthous = third_party.gitignoreSource ./.;
|
||||||
})).shellFor {
|
})).shellFor {
|
||||||
packages = p: [ p.xanthous ];
|
packages = p: [ p.xanthous ];
|
||||||
|
|
|
@ -131,7 +131,6 @@ import Data.Coerce
|
||||||
import Data.Proxy (Proxy(Proxy))
|
import Data.Proxy (Proxy(Proxy))
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
import Xanthous.Util (EqEqProp(..), EqProp, between)
|
import Xanthous.Util (EqEqProp(..), EqProp, between)
|
||||||
import Xanthous.Util.QuickCheck (GenericArbitrary(..))
|
|
||||||
import Xanthous.Orphans ()
|
import Xanthous.Orphans ()
|
||||||
import Xanthous.Util.Graphics
|
import Xanthous.Util.Graphics
|
||||||
import qualified Linear.Metric as Metric
|
import qualified Linear.Metric as Metric
|
||||||
|
|
|
@ -133,7 +133,6 @@ instance FunctorWithIndex EntityID EntityMap
|
||||||
instance FoldableWithIndex EntityID EntityMap
|
instance FoldableWithIndex EntityID EntityMap
|
||||||
|
|
||||||
instance TraversableWithIndex EntityID EntityMap where
|
instance TraversableWithIndex EntityID EntityMap where
|
||||||
itraversed = byID . itraversed . rmap sequenceA . distrib
|
|
||||||
itraverse = itraverseOf itraversed
|
itraverse = itraverseOf itraversed
|
||||||
|
|
||||||
type instance Element (EntityMap a) = a
|
type instance Element (EntityMap a) = a
|
||||||
|
|
|
@ -45,7 +45,6 @@ import Test.QuickCheck.Checkers (EqProp)
|
||||||
import Control.Monad.State.Lazy (execState)
|
import Control.Monad.State.Lazy (execState)
|
||||||
import Control.Monad.Trans.State.Lazy (execStateT)
|
import Control.Monad.Trans.State.Lazy (execStateT)
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
import Xanthous.Util.QuickCheck
|
|
||||||
import Xanthous.Game.State
|
import Xanthous.Game.State
|
||||||
import Xanthous.Entities.Item
|
import Xanthous.Entities.Item
|
||||||
import Xanthous.Entities.Common
|
import Xanthous.Entities.Common
|
||||||
|
|
|
@ -25,7 +25,6 @@ import Test.QuickCheck
|
||||||
import Test.QuickCheck.Arbitrary.Generic
|
import Test.QuickCheck.Arbitrary.Generic
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
import Xanthous.Data
|
import Xanthous.Data
|
||||||
import Xanthous.Util.QuickCheck
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ emptyMemoState :: MemoState
|
||||||
emptyMemoState = MemoState { _characterVisiblePositions = UnMemoized }
|
emptyMemoState = MemoState { _characterVisiblePositions = UnMemoized }
|
||||||
{-# INLINE emptyMemoState #-}
|
{-# INLINE emptyMemoState #-}
|
||||||
|
|
||||||
clear :: Lens' MemoState (Memoized k v) -> MemoState -> MemoState
|
clear :: ASetter' MemoState (Memoized key val) -> MemoState -> MemoState
|
||||||
clear = flip set UnMemoized
|
clear = flip set UnMemoized
|
||||||
{-# INLINE clear #-}
|
{-# INLINE clear #-}
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,6 @@ import qualified Graphics.Vty.Attributes as Vty
|
||||||
import qualified Graphics.Vty.Image as Vty
|
import qualified Graphics.Vty.Image as Vty
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
import Xanthous.Util (KnownBool(..))
|
import Xanthous.Util (KnownBool(..))
|
||||||
import Xanthous.Util.QuickCheck (GenericArbitrary(..))
|
|
||||||
import Xanthous.Data
|
import Xanthous.Data
|
||||||
import Xanthous.Data.App
|
import Xanthous.Data.App
|
||||||
import Xanthous.Data.Levels
|
import Xanthous.Data.Levels
|
||||||
|
|
|
@ -11,7 +11,8 @@ module Xanthous.Orphans
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
import Xanthous.Prelude hiding (elements, (.=))
|
import Xanthous.Prelude hiding (elements, (.=))
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
import Data.Aeson
|
import Data.Aeson hiding (Key)
|
||||||
|
import qualified Data.Aeson.KeyMap as KM
|
||||||
import Data.Aeson.Types (typeMismatch)
|
import Data.Aeson.Types (typeMismatch)
|
||||||
import Data.List.NonEmpty (NonEmpty(..))
|
import Data.List.NonEmpty (NonEmpty(..))
|
||||||
import Graphics.Vty.Attributes
|
import Graphics.Vty.Attributes
|
||||||
|
@ -461,7 +462,7 @@ instance forall a. (FromJSON a, Ord a) => FromJSON (Interval a) where
|
||||||
upper <- parseBound $ arr ^?! ix 1
|
upper <- parseBound $ arr ^?! ix 1
|
||||||
pure $ interval lower upper
|
pure $ interval lower upper
|
||||||
parseBound = withObject "Bound" $ \obj -> do
|
parseBound = withObject "Bound" $ \obj -> do
|
||||||
when (length obj /= 1) $ fail "Expected an object with a single key"
|
when (KM.size obj /= 1) $ fail "Expected an object with a single key"
|
||||||
let [(k, v)] = obj ^@.. ifolded
|
let [(k, v)] = obj ^@.. ifolded
|
||||||
boundary <- case k of
|
boundary <- case k of
|
||||||
"Excluded" -> pure Open
|
"Excluded" -> pure Open
|
||||||
|
|
|
@ -14,7 +14,6 @@ import Test.QuickCheck.Function
|
||||||
import Test.QuickCheck.Instances.ByteString ()
|
import Test.QuickCheck.Instances.ByteString ()
|
||||||
import Test.QuickCheck.Arbitrary.Generic
|
import Test.QuickCheck.Arbitrary.Generic
|
||||||
import Data.Aeson
|
import Data.Aeson
|
||||||
import GHC.Generics (Rep)
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
newtype FunctionShow a = FunctionShow a
|
newtype FunctionShow a = FunctionShow a
|
||||||
|
@ -31,12 +30,3 @@ newtype FunctionJSON a = FunctionJSON a
|
||||||
|
|
||||||
instance (ToJSON a, FromJSON a) => Function (FunctionJSON a) where
|
instance (ToJSON a, FromJSON a) => Function (FunctionJSON a) where
|
||||||
function = functionJSON
|
function = functionJSON
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
newtype GenericArbitrary a = GenericArbitrary a
|
|
||||||
deriving newtype Generic
|
|
||||||
|
|
||||||
instance (Generic a, GArbitrary rep, Rep a ~ rep)
|
|
||||||
=> Arbitrary (GenericArbitrary a) where
|
|
||||||
arbitrary = genericArbitrary
|
|
||||||
|
|
|
@ -10,6 +10,9 @@ let
|
||||||
|
|
||||||
in
|
in
|
||||||
rustfmt.overrideAttrs (_: {
|
rustfmt.overrideAttrs (_: {
|
||||||
|
# rustfmt not respecting config atm, disable
|
||||||
|
meta.ci.skip = true;
|
||||||
|
|
||||||
meta.ci.extraSteps.rustfmt = {
|
meta.ci.extraSteps.rustfmt = {
|
||||||
command = rustfmt;
|
command = rustfmt;
|
||||||
};
|
};
|
||||||
|
|
|
@ -43,7 +43,7 @@ run = do
|
||||||
ctx@T.Context{..} <- ask
|
ctx@T.Context{..} <- ask
|
||||||
ctx
|
ctx
|
||||||
|> server
|
|> server
|
||||||
|> serve (Proxy @ API)
|
|> serve (Proxy @API)
|
||||||
|> cors (const $ Just corsPolicy)
|
|> cors (const $ Just corsPolicy)
|
||||||
|> Warp.run contextServerPort
|
|> Warp.run contextServerPort
|
||||||
|> liftIO
|
|> liftIO
|
||||||
|
|
|
@ -157,4 +157,4 @@ parseInput x =
|
||||||
_ -> Nothing
|
_ -> Nothing
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = Warp.run 8000 $ serve (Proxy @ Api) server
|
main = Warp.run 8000 $ serve (Proxy @Api) server
|
||||||
|
|
Loading…
Reference in a new issue