-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathdune-project
More file actions
192 lines (174 loc) · 5.51 KB
/
Copy pathdune-project
File metadata and controls
192 lines (174 loc) · 5.51 KB
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
(lang dune 3.20)
; 3.20 is the floor the repository's own test workflow needs, not a wish: dune generates the
; per-test `runtest-<name>` aliases only from 3.20, and the targeted-test arrangement
; (gh-ocannl-726) and the focused aggregate families (gh-ocannl-783) are built on them. The `dune`
; constraint in the generated opam files follows this line, so declaring 3.18 while requiring 3.20
; promised a toolchain on which `@metal-codegen` reaches nothing.
(using ctypes 0.3)
(using dune_site 0.1)
(using directory-targets 0.1)
(using menhir 3.0)
(name ocannl)
(version 1.0.1)
(generate_opam_files true)
(source
(github lukstafi/ocannl))
(authors "Lukasz Stafiniak")
(maintainers "Lukasz Stafiniak <lukstafi@gmail.com>")
(maintenance_intent "(latest)")
(license "BSD-2-Clause")
(documentation https://ahrefs.github.io/ocannl/docs/)
; We give up on npy / ocannl_npy for now.
(package
(name arrayjit)
(synopsis
"An array language compiler with multiple backends (CPU, CUDA, HIP, Metal), staged compilation")
(description
"The optimizing compiler sub-package of OCANNL. Use neural_nets_lib instead to also get: nice syntax, shape inference, backpropagation, optimizers.")
(depends
(ocaml
(>= 5.3.0))
dune
(base
(>= v0.17.0))
(ctypes
(>= 0.23))
(ctypes-foreign
(>= 0.23))
; opam 2.2.0 has with-dev-setup. Is it supported, what's the syntax?
; (ocamlformat
; (>= 0.27.0)
; :with-dev-setup)
(printbox
(>= 0.12))
; FIXME: Depend on printbox-text > 0.12.0 when it is released.
(printbox-text
(>= 0.12))
(pprint
(>= 20230830))
stdio
sexplib
num
(saturn_lockfree
(>= 0.5.0))
; Bounded ABOVE as well, because what this project depends on is not ppxlib's API but the AST
; that API selects -- `Astlib.Ast_502` throughout the permitted range. Every fixed shape the ppx
; matches is now written as a metaquot quotation, which ppxlib regenerates for whichever AST it
; selects; what still names constructors is mapped class by class, with the fix each class
; needs, at the head of `tensor/ppx_shared.ml`. The source scanners under `test/support` match
; a handful more.
;
; Three classes actually move, checked against Ast_503..Ast_506: literal values at `Ast_503`,
; where `constant` becomes a record `{ pconst_desc; pconst_loc }`; tuple payloads at `Ast_504`,
; which adds labelled tuples; and `Pexp_open`/`Pexp_letmodule` at `Ast_505`, which deletes both
; in favour of `Pexp_struct_item`. Only the last is more than a rename. `Pexp_function`'s
; params/constraint/body triple, named here as a mover before it was checked, is in fact
; byte-identical through Ast_506.
;
; A ppxlib that selects a later AST does not break these subtly: they stop compiling, which is
; the loud failure and not the dangerous one -- but it stops them compiling in a solve nothing
; warned about, which is what an upper bound is for. 0.39 is announced as the release that moves
; the selection.
;
; Deliberately NOT resolved by pinning `Astlib.Ast_502` directly and migrating into it: ppxlib
; generates `Ast_traverse` and metaquot for the SELECTED ast alone, so targeting a versioned one
; costs both the iterators and the quotation syntax, across every site. Raising this bound is a
; deliberate edit that recompiles the ppx; that is the right shape for the decision.
(ppxlib
(and
(>= 0.36.0)
(< 0.39.0)))
ppx_compare
ppx_enumerate
ppx_hash
ppx_here
ppx_sexp_conv
ppx_string
ppx_variants_conv
ppx_expect
(notty-community
(>= 2.4.0))
(ppx_minidebug
(>= 3.0.0))
(mtime
(>= 2.0.0))
(metal
(= :os macos)))
(depopts
(cudajit
(>= 0.8.0))
(hipjit
(>= 0.2.0)))
(conflicts
(cudajit
(< 0.8.0))
(hipjit
(< 0.2.0)))
(tags
(deeplearning array jit CUDA HIP Metal)))
(package
(name neural_nets_lib)
(synopsis
"A from-scratch Deep Learning framework with an optimizing compiler, shape inference, concise syntax")
(description
"OCaml Compiles Algorithms for Neural Networks Learning is a compiled Deep Learning framework that puts emphasis on low-level backends (like tinygrad), shape inference, concise notation (ab)using PPX.")
(depends
(ocaml
(>= 5.3.0))
dune
dune-site
(base
(>= v0.17.0))
; opam 2.2.0 has with-dev-setup. Is it supported, what's the syntax?
; (ocamlformat
; (>= 0.26.2)
; :with-dev-setup)
(arrayjit
(= :version))
(dataprep
(>= 0.1.0))
(yojson
(>= 2.0.0))
(printbox
(>= 0.12))
; FIXME: Depend on printbox-text > 0.12.0 when it is released.
(printbox-text
(>= 0.12))
(printbox-ext-plot
(>= 0.12))
(menhir
(>= 20240715))
(pprint
(>= 20230830))
stdio
sexplib
num
time_now
; Bounded above for the AST the ppx and the source scanners match; see the note in the arrayjit
; stanza above, and the residue map at the head of `tensor/ppx_shared.ml`.
(ppxlib
(and
(>= 0.36.0)
(< 0.39.0)))
ppx_compare
ppx_enumerate
ppx_fields_conv
ppx_hash
ppx_here
ppx_sexp_conv
ppx_string
ppx_variants_conv
ppx_expect
(notty-community
(>= 2.4.0))
(ppx_minidebug
(>= 3.0.0))
(odoc :with-doc)
; No slipshow: the slide decks are compiled by the prebuilt binary that
; gh-pages-docs.yml downloads, not by an opam-installed one, so the
; dependency bought nothing while dragging js_of_ocaml-compiler -- and hence
; a `ocaml < 5.5` bound -- into every --with-doc solve.
(md2mld :with-doc))
(tags
(deeplearning tensor backprop jit CUDA Metal)))
; See the complete stanza docs at https://dune.readthedocs.io/en/stable/dune-files.html#dune-project