Skip to content

Commit 0b87ee4

Browse files
author
IOHK
committed
Automatic Update
1 parent f3ff858 commit 0b87ee4

File tree

32 files changed

+1758
-3
lines changed

32 files changed

+1758
-3
lines changed

default.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7087,6 +7087,7 @@ with builtins; mapAttrs (_: mapAttrs (_: data: rec {
70877087
"gtkrsync" = import ./nix/gtkrsync.nix;
70887088
"gtksourceview2" = import ./nix/gtksourceview2.nix;
70897089
"gtksourceview3" = import ./nix/gtksourceview3.nix;
7090+
"gtvm-hs" = import ./nix/gtvm-hs.nix;
70907091
"guarded-allocation" = import ./nix/guarded-allocation.nix;
70917092
"guarded-rewriting" = import ./nix/guarded-rewriting.nix;
70927093
"guardian" = import ./nix/guardian.nix;
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{ system
2+
, compiler
3+
, flags
4+
, pkgs
5+
, hsPkgs
6+
, pkgconfPkgs
7+
, errorHandler
8+
, config
9+
, ... }:
10+
{
11+
flags = {};
12+
package = {
13+
specVersion = "1.18";
14+
identifier = { name = "AsyncRattus"; version = "0.2.0.2"; };
15+
license = "BSD-3-Clause";
16+
copyright = "Copyright (C) 2023 Emil Houlborg, Gregers Rørdam, Patrick Bahr";
17+
maintainer = "Patrick Bahr <[email protected]>";
18+
author = "Emil Houlborg, Gregers Rørdam, Patrick Bahr";
19+
homepage = "https://github.com/pa-ba/AsyncRattus/";
20+
url = "";
21+
synopsis = "An asynchronous modal FRP language";
22+
description = "This library implements the Async Rattus programming\nlanguage as an embedded DSL. To this end the library\nprovides a GHC plugin that checks the stricter typing\nrules of Async Rattus.\nWhat follows is a brief introduction to the language and\nits usage. A more detailed introduction can be found in\nthis <src/docs/paper.pdf paper>.\n\nAsync Rattus is a functional reactive programming (FRP)\nlanguage that uses modal types to express temporal\ndependencies. In return the language will guarantee that\nprograms are productive (in each computation step, the\nprogram makes progress), causal (output depends only on\ncurrent and earlier input), and have no space leaks\n(programs do not implicitly retain memory over time).\n\nThe modal type constructor @O@ (pronounced \"later\") is\nused to express the passage of time at the type\nlevel. Intuitively speaking, a value of type @O a@\nrepresents a computation that will produce a value of type\n@a@ in the next time step. Additionally, the language also\nfeatures the @Box@ modal type constructor. A value of type\n@Box a@ is a time-independent computation that can be\nexecuted at any time to produce a value of type @a@.\n\nFor example, the type of signals is defined as\n\n> data Sig a = a ::: (O (Sig a))\n\nSo the current value of the signal is available now, but\nits future state is only available in the next time\nstep. Writing a @map@ function for this type of streams,\nrequires us to use the @Box@ modality:\n\n> map :: Box (a -> b) -> Sig a -> Sig b\n> map f (x ::: xs) = unbox f x ::: delay (map f (adv xs))\n\nThis makes sure that the function @f@ that we give to\n@map@ is available at any time in the future.\n\nThe core of the language is defined in the module\n\"AsyncRattus.Primitives\". Note that the operations on @O@\nand @Box@ have non-standard typing rules. Therefore, this\nlibrary provides a compiler plugin that checks these\nnon-standard typing rules. To write Async Rattus programs,\nyou must enable this plugin via the GHC option\n@-fplugin=AsyncRattus.Plugin@, e.g. by including the following\nline in the source file:\n\n> {-# OPTIONS -fplugin=AsyncRattus.Plugin #-}\n\nBelow is a minimal Async Rattus program using the\n\"AsyncRattus.Signal\" module for programming with signals:\n\n> {-# OPTIONS -fplugin=AsyncRattus.Plugin #-}\n>\n> import AsyncRattus\n> import AsyncRattus.Signal\n>\n> sums :: Sig Int -> Sig Int\n> sums = scan (box (+)) 0\n\nThe <docs/src/AsyncRattus.Signal.html source code of the AsyncRattus.Signal module>\nprovides more examples on how to program in Async Rattus.\nAn example project using Async Rattus can be found\n<https://github.com/pa-ba/AsyncRattus/tree/master/examples/console here>.";
23+
buildType = "Custom";
24+
setup-depends = [
25+
(hsPkgs.pkgsBuildBuild.base or (pkgs.pkgsBuildBuild.base or (errorHandler.setupDepError "base")))
26+
(hsPkgs.pkgsBuildBuild.Cabal or (pkgs.pkgsBuildBuild.Cabal or (errorHandler.setupDepError "Cabal")))
27+
];
28+
};
29+
components = {
30+
"library" = {
31+
depends = [
32+
(hsPkgs."base" or (errorHandler.buildDepError "base"))
33+
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
34+
(hsPkgs."ghc" or (errorHandler.buildDepError "ghc"))
35+
(hsPkgs."ghc-boot" or (errorHandler.buildDepError "ghc-boot"))
36+
(hsPkgs."hashtables" or (errorHandler.buildDepError "hashtables"))
37+
(hsPkgs."simple-affine-space" or (errorHandler.buildDepError "simple-affine-space"))
38+
(hsPkgs."transformers" or (errorHandler.buildDepError "transformers"))
39+
];
40+
buildable = true;
41+
};
42+
tests = {
43+
"ill-typed" = {
44+
depends = [
45+
(hsPkgs."AsyncRattus" or (errorHandler.buildDepError "AsyncRattus"))
46+
(hsPkgs."base" or (errorHandler.buildDepError "base"))
47+
];
48+
buildable = true;
49+
};
50+
"well-typed" = {
51+
depends = [
52+
(hsPkgs."AsyncRattus" or (errorHandler.buildDepError "AsyncRattus"))
53+
(hsPkgs."base" or (errorHandler.buildDepError "base"))
54+
(hsPkgs."containers" or (errorHandler.buildDepError "containers"))
55+
(hsPkgs."text" or (errorHandler.buildDepError "text"))
56+
];
57+
buildable = true;
58+
};
59+
};
60+
};
61+
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
{ system
2+
, compiler
3+
, flags
4+
, pkgs
5+
, hsPkgs
6+
, pkgconfPkgs
7+
, errorHandler
8+
, config
9+
, ... }:
10+
{
11+
flags = { icu = true; };
12+
package = {
13+
specVersion = "1.12";
14+
identifier = { name = "binrep"; version = "1.0.0"; };
15+
license = "MIT";
16+
copyright = "";
17+
maintainer = "Ben Orchard <[email protected]>";
18+
author = "Ben Orchard";
19+
homepage = "https://github.com/raehik/binrep#readme";
20+
url = "";
21+
synopsis = "Encode precise binary representations directly in types";
22+
description = "Please see README.md.";
23+
buildType = "Simple";
24+
};
25+
components = {
26+
"library" = {
27+
depends = [
28+
(hsPkgs."base" or (errorHandler.buildDepError "base"))
29+
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
30+
(hsPkgs."bytezap" or (errorHandler.buildDepError "bytezap"))
31+
(hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq"))
32+
(hsPkgs."defun-core" or (errorHandler.buildDepError "defun-core"))
33+
(hsPkgs."flatparse" or (errorHandler.buildDepError "flatparse"))
34+
(hsPkgs."generic-data-functions" or (errorHandler.buildDepError "generic-data-functions"))
35+
(hsPkgs."generic-type-asserts" or (errorHandler.buildDepError "generic-type-asserts"))
36+
(hsPkgs."generic-type-functions" or (errorHandler.buildDepError "generic-type-functions"))
37+
(hsPkgs."ghc-bignum" or (errorHandler.buildDepError "ghc-bignum"))
38+
(hsPkgs."parser-combinators" or (errorHandler.buildDepError "parser-combinators"))
39+
(hsPkgs."rerefined" or (errorHandler.buildDepError "rerefined"))
40+
(hsPkgs."strongweak" or (errorHandler.buildDepError "strongweak"))
41+
(hsPkgs."text" or (errorHandler.buildDepError "text"))
42+
(hsPkgs."text-builder-linear" or (errorHandler.buildDepError "text-builder-linear"))
43+
(hsPkgs."type-level-bytestrings" or (errorHandler.buildDepError "type-level-bytestrings"))
44+
(hsPkgs."type-level-show" or (errorHandler.buildDepError "type-level-show"))
45+
] ++ pkgs.lib.optional (flags.icu) (hsPkgs."text-icu" or (errorHandler.buildDepError "text-icu"));
46+
buildable = true;
47+
};
48+
tests = {
49+
"spec" = {
50+
depends = [
51+
(hsPkgs."QuickCheck" or (errorHandler.buildDepError "QuickCheck"))
52+
(hsPkgs."base" or (errorHandler.buildDepError "base"))
53+
(hsPkgs."binrep" or (errorHandler.buildDepError "binrep"))
54+
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
55+
(hsPkgs."bytezap" or (errorHandler.buildDepError "bytezap"))
56+
(hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq"))
57+
(hsPkgs."defun-core" or (errorHandler.buildDepError "defun-core"))
58+
(hsPkgs."flatparse" or (errorHandler.buildDepError "flatparse"))
59+
(hsPkgs."generic-data-functions" or (errorHandler.buildDepError "generic-data-functions"))
60+
(hsPkgs."generic-random" or (errorHandler.buildDepError "generic-random"))
61+
(hsPkgs."generic-type-asserts" or (errorHandler.buildDepError "generic-type-asserts"))
62+
(hsPkgs."generic-type-functions" or (errorHandler.buildDepError "generic-type-functions"))
63+
(hsPkgs."ghc-bignum" or (errorHandler.buildDepError "ghc-bignum"))
64+
(hsPkgs."hspec" or (errorHandler.buildDepError "hspec"))
65+
(hsPkgs."parser-combinators" or (errorHandler.buildDepError "parser-combinators"))
66+
(hsPkgs."quickcheck-instances" or (errorHandler.buildDepError "quickcheck-instances"))
67+
(hsPkgs."rerefined" or (errorHandler.buildDepError "rerefined"))
68+
(hsPkgs."strongweak" or (errorHandler.buildDepError "strongweak"))
69+
(hsPkgs."text" or (errorHandler.buildDepError "text"))
70+
(hsPkgs."text-builder-linear" or (errorHandler.buildDepError "text-builder-linear"))
71+
(hsPkgs."type-level-bytestrings" or (errorHandler.buildDepError "type-level-bytestrings"))
72+
(hsPkgs."type-level-show" or (errorHandler.buildDepError "type-level-show"))
73+
] ++ pkgs.lib.optional (flags.icu) (hsPkgs."text-icu" or (errorHandler.buildDepError "text-icu"));
74+
build-tools = [
75+
(hsPkgs.pkgsBuildBuild.hspec-discover.components.exes.hspec-discover or (pkgs.pkgsBuildBuild.hspec-discover or (errorHandler.buildToolDepError "hspec-discover:hspec-discover")))
76+
];
77+
buildable = true;
78+
};
79+
};
80+
benchmarks = {
81+
"bench" = {
82+
depends = [
83+
(hsPkgs."base" or (errorHandler.buildDepError "base"))
84+
(hsPkgs."binrep" or (errorHandler.buildDepError "binrep"))
85+
(hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring"))
86+
(hsPkgs."bytezap" or (errorHandler.buildDepError "bytezap"))
87+
(hsPkgs."deepseq" or (errorHandler.buildDepError "deepseq"))
88+
(hsPkgs."defun-core" or (errorHandler.buildDepError "defun-core"))
89+
(hsPkgs."flatparse" or (errorHandler.buildDepError "flatparse"))
90+
(hsPkgs."gauge" or (errorHandler.buildDepError "gauge"))
91+
(hsPkgs."generic-data-functions" or (errorHandler.buildDepError "generic-data-functions"))
92+
(hsPkgs."generic-type-asserts" or (errorHandler.buildDepError "generic-type-asserts"))
93+
(hsPkgs."generic-type-functions" or (errorHandler.buildDepError "generic-type-functions"))
94+
(hsPkgs."ghc-bignum" or (errorHandler.buildDepError "ghc-bignum"))
95+
(hsPkgs."parser-combinators" or (errorHandler.buildDepError "parser-combinators"))
96+
(hsPkgs."rerefined" or (errorHandler.buildDepError "rerefined"))
97+
(hsPkgs."strongweak" or (errorHandler.buildDepError "strongweak"))
98+
(hsPkgs."text" or (errorHandler.buildDepError "text"))
99+
(hsPkgs."text-builder-linear" or (errorHandler.buildDepError "text-builder-linear"))
100+
(hsPkgs."type-level-bytestrings" or (errorHandler.buildDepError "type-level-bytestrings"))
101+
(hsPkgs."type-level-show" or (errorHandler.buildDepError "type-level-show"))
102+
] ++ pkgs.lib.optional (flags.icu) (hsPkgs."text-icu" or (errorHandler.buildDepError "text-icu"));
103+
buildable = true;
104+
};
105+
};
106+
};
107+
}

0 commit comments

Comments
 (0)