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