1
+ { system
2
+ , compiler
3
+ , flags
4
+ , pkgs
5
+ , hsPkgs
6
+ , pkgconfPkgs
7
+ , errorHandler
8
+ , config
9
+ , ... } :
10
+ {
11
+ flags = { disable-doctest = false ; } ;
12
+ package = {
13
+ specVersion = "1.24" ;
14
+ identifier = { name = "hasktorch" ; version = "0.2.1.0" ; } ;
15
+ license = "BSD-3-Clause" ;
16
+ copyright = "2019 Austin Huang" ;
17
+
18
+ author = "Hasktorch Contributor Team" ;
19
+ homepage = "https://github.com/hasktorch/hasktorch#readme" ;
20
+ url = "" ;
21
+ synopsis = "Haskell bindings to libtorch, supporting both typed and untyped tensors." ;
22
+ description = "Hasktorch is a library for tensors and neural networks in Haskell. It is an independent open source community project which leverages the core C++ libraries shared by PyTorch." ;
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
+ ( hsPkgs . pkgsBuildBuild . cabal-doctest or ( pkgs . pkgsBuildBuild . cabal-doctest or ( errorHandler . setupDepError "cabal-doctest" ) ) )
28
+ ] ;
29
+ } ;
30
+ components = {
31
+ "library" = {
32
+ depends = [
33
+ ( hsPkgs . "async" or ( errorHandler . buildDepError "async" ) )
34
+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
35
+ ( hsPkgs . "libtorch-ffi" or ( errorHandler . buildDepError "libtorch-ffi" ) )
36
+ ( hsPkgs . "libtorch-ffi-helper" or ( errorHandler . buildDepError "libtorch-ffi-helper" ) )
37
+ ( hsPkgs . "finite-typelits" or ( errorHandler . buildDepError "finite-typelits" ) )
38
+ ( hsPkgs . "ghc-typelits-extra" or ( errorHandler . buildDepError "ghc-typelits-extra" ) )
39
+ ( hsPkgs . "ghc-typelits-knownnat" or ( errorHandler . buildDepError "ghc-typelits-knownnat" ) )
40
+ ( hsPkgs . "ghc-typelits-natnormalise" or ( errorHandler . buildDepError "ghc-typelits-natnormalise" ) )
41
+ ( hsPkgs . "mtl" or ( errorHandler . buildDepError "mtl" ) )
42
+ ( hsPkgs . "safe-exceptions" or ( errorHandler . buildDepError "safe-exceptions" ) )
43
+ ( hsPkgs . "random" or ( errorHandler . buildDepError "random" ) )
44
+ ( hsPkgs . "reflection" or ( errorHandler . buildDepError "reflection" ) )
45
+ ( hsPkgs . "stm" or ( errorHandler . buildDepError "stm" ) )
46
+ ( hsPkgs . "JuicyPixels" or ( errorHandler . buildDepError "JuicyPixels" ) )
47
+ ( hsPkgs . "vector" or ( errorHandler . buildDepError "vector" ) )
48
+ ( hsPkgs . "bytestring" or ( errorHandler . buildDepError "bytestring" ) )
49
+ ( hsPkgs . "safe-exceptions" or ( errorHandler . buildDepError "safe-exceptions" ) )
50
+ ( hsPkgs . "zlib" or ( errorHandler . buildDepError "zlib" ) )
51
+ ( hsPkgs . "pipes" or ( errorHandler . buildDepError "pipes" ) )
52
+ ( hsPkgs . "pipes-group" or ( errorHandler . buildDepError "pipes-group" ) )
53
+ ( hsPkgs . "pipes-concurrency" or ( errorHandler . buildDepError "pipes-concurrency" ) )
54
+ ( hsPkgs . "pipes-safe" or ( errorHandler . buildDepError "pipes-safe" ) )
55
+ ( hsPkgs . "pipes-bytestring" or ( errorHandler . buildDepError "pipes-bytestring" ) )
56
+ ( hsPkgs . "pipes-csv" or ( errorHandler . buildDepError "pipes-csv" ) )
57
+ ( hsPkgs . "lens-family-core" or ( errorHandler . buildDepError "lens-family-core" ) )
58
+ ( hsPkgs . "cassava" or ( errorHandler . buildDepError "cassava" ) )
59
+ ( hsPkgs . "lifted-async" or ( errorHandler . buildDepError "lifted-async" ) )
60
+ ( hsPkgs . "monad-control" or ( errorHandler . buildDepError "monad-control" ) )
61
+ ( hsPkgs . "foldl" or ( errorHandler . buildDepError "foldl" ) )
62
+ ( hsPkgs . "transformers-base" or ( errorHandler . buildDepError "transformers-base" ) )
63
+ ( hsPkgs . "array" or ( errorHandler . buildDepError "array" ) )
64
+ ( hsPkgs . "data-default-class" or ( errorHandler . buildDepError "data-default-class" ) )
65
+ ( hsPkgs . "containers" or ( errorHandler . buildDepError "containers" ) )
66
+ ( hsPkgs . "inline-c" or ( errorHandler . buildDepError "inline-c" ) )
67
+ ( hsPkgs . "vector-sized" or ( errorHandler . buildDepError "vector-sized" ) )
68
+ ( hsPkgs . "template-haskell" or ( errorHandler . buildDepError "template-haskell" ) )
69
+ ( hsPkgs . "megaparsec" or ( errorHandler . buildDepError "megaparsec" ) )
70
+ ( hsPkgs . "half" or ( errorHandler . buildDepError "half" ) )
71
+ ( hsPkgs . "constraints" or ( errorHandler . buildDepError "constraints" ) )
72
+ ] ;
73
+ buildable = true ;
74
+ } ;
75
+ tests = {
76
+ "spec" = {
77
+ depends = [
78
+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
79
+ ( hsPkgs . "ghc-typelits-extra" or ( errorHandler . buildDepError "ghc-typelits-extra" ) )
80
+ ( hsPkgs . "ghc-typelits-knownnat" or ( errorHandler . buildDepError "ghc-typelits-knownnat" ) )
81
+ ( hsPkgs . "ghc-typelits-natnormalise" or ( errorHandler . buildDepError "ghc-typelits-natnormalise" ) )
82
+ ( hsPkgs . "hasktorch" or ( errorHandler . buildDepError "hasktorch" ) )
83
+ ( hsPkgs . "hspec" or ( errorHandler . buildDepError "hspec" ) )
84
+ ( hsPkgs . "libtorch-ffi" or ( errorHandler . buildDepError "libtorch-ffi" ) )
85
+ ( hsPkgs . "mtl" or ( errorHandler . buildDepError "mtl" ) )
86
+ ( hsPkgs . "reflection" or ( errorHandler . buildDepError "reflection" ) )
87
+ ( hsPkgs . "safe-exceptions" or ( errorHandler . buildDepError "safe-exceptions" ) )
88
+ ( hsPkgs . "QuickCheck" or ( errorHandler . buildDepError "QuickCheck" ) )
89
+ ( hsPkgs . "directory" or ( errorHandler . buildDepError "directory" ) )
90
+ ( hsPkgs . "JuicyPixels" or ( errorHandler . buildDepError "JuicyPixels" ) )
91
+ ( hsPkgs . "inline-c-cpp" or ( errorHandler . buildDepError "inline-c-cpp" ) )
92
+ ( hsPkgs . "async" or ( errorHandler . buildDepError "async" ) )
93
+ ( hsPkgs . "pipes" or ( errorHandler . buildDepError "pipes" ) )
94
+ ( hsPkgs . "random" or ( errorHandler . buildDepError "random" ) )
95
+ ( hsPkgs . "vector-sized" or ( errorHandler . buildDepError "vector-sized" ) )
96
+ ( hsPkgs . "lens-family-core" or ( errorHandler . buildDepError "lens-family-core" ) )
97
+ ( hsPkgs . "data-default-class" or ( errorHandler . buildDepError "data-default-class" ) )
98
+ ( hsPkgs . "half" or ( errorHandler . buildDepError "half" ) )
99
+ ] ;
100
+ buildable = true ;
101
+ } ;
102
+ "doctests" = {
103
+ depends = [
104
+ ( hsPkgs . "doctest" or ( errorHandler . buildDepError "doctest" ) )
105
+ ( hsPkgs . "async" or ( errorHandler . buildDepError "async" ) )
106
+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
107
+ ( hsPkgs . "libtorch-ffi" or ( errorHandler . buildDepError "libtorch-ffi" ) )
108
+ ( hsPkgs . "finite-typelits" or ( errorHandler . buildDepError "finite-typelits" ) )
109
+ ( hsPkgs . "ghc-typelits-extra" or ( errorHandler . buildDepError "ghc-typelits-extra" ) )
110
+ ( hsPkgs . "ghc-typelits-knownnat" or ( errorHandler . buildDepError "ghc-typelits-knownnat" ) )
111
+ ( hsPkgs . "ghc-typelits-natnormalise" or ( errorHandler . buildDepError "ghc-typelits-natnormalise" ) )
112
+ ( hsPkgs . "mtl" or ( errorHandler . buildDepError "mtl" ) )
113
+ ( hsPkgs . "safe-exceptions" or ( errorHandler . buildDepError "safe-exceptions" ) )
114
+ ( hsPkgs . "random" or ( errorHandler . buildDepError "random" ) )
115
+ ( hsPkgs . "reflection" or ( errorHandler . buildDepError "reflection" ) )
116
+ ( hsPkgs . "stm" or ( errorHandler . buildDepError "stm" ) )
117
+ ( hsPkgs . "JuicyPixels" or ( errorHandler . buildDepError "JuicyPixels" ) )
118
+ ( hsPkgs . "vector" or ( errorHandler . buildDepError "vector" ) )
119
+ ( hsPkgs . "bytestring" or ( errorHandler . buildDepError "bytestring" ) )
120
+ ( hsPkgs . "safe-exceptions" or ( errorHandler . buildDepError "safe-exceptions" ) )
121
+ ( hsPkgs . "zlib" or ( errorHandler . buildDepError "zlib" ) )
122
+ ( hsPkgs . "inline-c" or ( errorHandler . buildDepError "inline-c" ) )
123
+ ( hsPkgs . "hasktorch" or ( errorHandler . buildDepError "hasktorch" ) )
124
+ ] ;
125
+ buildable = if system . isOsx || flags . disable-doctest
126
+ then false
127
+ else true ;
128
+ } ;
129
+ } ;
130
+ benchmarks = {
131
+ "runtime" = {
132
+ depends = [
133
+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
134
+ ( hsPkgs . "criterion" or ( errorHandler . buildDepError "criterion" ) )
135
+ ( hsPkgs . "deepseq" or ( errorHandler . buildDepError "deepseq" ) )
136
+ ( hsPkgs . "hmatrix" or ( errorHandler . buildDepError "hmatrix" ) )
137
+ ( hsPkgs . "mwc-random" or ( errorHandler . buildDepError "mwc-random" ) )
138
+ ( hsPkgs . "vector" or ( errorHandler . buildDepError "vector" ) )
139
+ ( hsPkgs . "matrix" or ( errorHandler . buildDepError "matrix" ) )
140
+ ( hsPkgs . "split" or ( errorHandler . buildDepError "split" ) )
141
+ ( hsPkgs . "primitive" or ( errorHandler . buildDepError "primitive" ) )
142
+ ( hsPkgs . "hasktorch" or ( errorHandler . buildDepError "hasktorch" ) )
143
+ ( hsPkgs . "libtorch-ffi" or ( errorHandler . buildDepError "libtorch-ffi" ) )
144
+ ] ;
145
+ buildable = true ;
146
+ } ;
147
+ "alloc" = {
148
+ depends = [
149
+ ( hsPkgs . "base" or ( errorHandler . buildDepError "base" ) )
150
+ ( hsPkgs . "deepseq" or ( errorHandler . buildDepError "deepseq" ) )
151
+ ( hsPkgs . "hmatrix" or ( errorHandler . buildDepError "hmatrix" ) )
152
+ ( hsPkgs . "mwc-random" or ( errorHandler . buildDepError "mwc-random" ) )
153
+ ( hsPkgs . "vector" or ( errorHandler . buildDepError "vector" ) )
154
+ ( hsPkgs . "weigh" or ( errorHandler . buildDepError "weigh" ) )
155
+ ( hsPkgs . "split" or ( errorHandler . buildDepError "split" ) )
156
+ ( hsPkgs . "primitive" or ( errorHandler . buildDepError "primitive" ) )
157
+ ( hsPkgs . "hasktorch" or ( errorHandler . buildDepError "hasktorch" ) )
158
+ ( hsPkgs . "libtorch-ffi" or ( errorHandler . buildDepError "libtorch-ffi" ) )
159
+ ] ;
160
+ buildable = true ;
161
+ } ;
162
+ } ;
163
+ } ;
164
+ }
0 commit comments