-
Notifications
You must be signed in to change notification settings - Fork 0
/
horde-ad.cabal
109 lines (82 loc) · 3.98 KB
/
horde-ad.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
cabal-version: 2.4
-- The cabal-version field refers to the version of the .cabal specification,
-- and can be different from the cabal-install (the tool) version and the
-- Cabal (the library) version you are using. As such, the Cabal (the library)
-- version used must be equal or greater than the version stated in this field.
-- Starting from the specification version 2.2, the cabal-version field must be
-- the first thing in the cabal file.
-- Initial package description 'horde-ad' generated by
-- 'cabal init'. For further documentation, see:
-- http://haskell.org/cabal/users-guide/
--
-- The name of the package.
name: horde-ad
-- The package version.
-- See the Haskell package versioning policy (PVP) for standards
-- guiding when and how versions should be incremented.
-- https://pvp.haskell.org
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.1.0.0
-- A short (one-line) description of the package.
synopsis: Higher Order Reverse Derivatives Efficiently - Automatic Differentiation
-- A longer description of the package.
description: An Automatic Differentiation library based on the paper "Provably correct, asymptotically efficient, higher-order reverse-mode automatic differentiation" by Faustyna Krawiec, Neel Krishnaswami, Simon Peyton Jones, Tom Ellis, Andrew Fitzgibbon and Richard Eisenberg.
-- The license under which the package is released.
license: BSD-3-Clause
-- The file containing the license text.
license-file: LICENSE
-- The package author(s).
author: Mikolaj Konarski and others
-- An email address to which users can send suggestions, bug reports, and patches.
maintainer: [email protected]
category: Machine Learning, Automatic Differentiation
-- A copyright notice.
-- copyright:
build-type: Simple
-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README.
extra-doc-files: README.md,
CHANGELOG.md
-- Extra source files to be distributed with the package, such as examples, or a tutorial module.
-- extra-source-files:
tested-with: GHC ==9.2.7 || ==9.4.4
bug-reports: https://github.com/Mikolaj/horde-ad/issues
source-repository head
type: git
location: git://github.com/Mikolaj/horde-ad.git
common options
default-language: GHC2021
default-extensions: StrictData, GADTs, TypeFamilies,
TypeFamilyDependencies, FunctionalDependencies,
RecordWildCards, MultiWayIf, LambdaCase,
DefaultSignatures, PatternSynonyms, NoStarIsType,
DataKinds
ghc-options: -Wall -Wcompat -Worphans -Wincomplete-uni-patterns -Wincomplete-record-updates -Wimplicit-prelude -Wmissing-home-modules -Widentities -Wredundant-constraints -Wmissing-export-lists -Wpartial-fields -Wunused-packages
if impl(ghc >= 9.4)
ghc-options: -Wredundant-strictness-flags
ghc-options: -fno-ignore-asserts
-- Disabling this breaks performance:
ghc-options: -fexpose-all-unfoldings -fspecialise-aggressively -fsimpl-tick-factor=200
-- ghc-options: -fworker-wrapper-cbv -- 10% speed up, but supposedly risky
-- TODO: benchmark on big examples and include if speed up is much higher
ghc-options: -Wmissed-specialisations
library horde-ad-simplified
import: options
exposed-modules: HordeAd
hs-source-dirs: .
build-depends:
base >= 4.14 && < 99
, ghc-typelits-knownnat
, ghc-typelits-natnormalise
hs-source-dirs: .
test-suite simplifiedOnlyTest
import: options
type: exitcode-stdio-1.0
hs-source-dirs: .
main-is: SimplifiedOnlyTest.hs
build-depends:
, horde-ad-simplified
, base
, ghc-typelits-knownnat
, ghc-typelits-natnormalise