Skip to content

Commit 4975b0f

Browse files
committed
[new release] raven (11 packages) (1.0.0~alpha2)
CHANGES: We're excited to announce the release of Raven 1.0.0~alpha2! Less than a month after alpha1, this release notably includes contributions from Outreachy applicants in preparation for the upcoming _two_ internships. Some highlights from this release include: - NumPy-compatible text I/O with `Nx_io.{save,load}_text` - Lots of new functions in Nx/Rune, including neural-net ones `dropout`, `log_softmax`, `batch_norm`, `layer_norm`, and activation functions like `celu` and `celu`, and generic ones like `conjugate`, `index_put`, and more. - Addition of `.top` libraries for `nx`, `rune`, and `hugin` that auto-install pretty-printers in the OCaml toplevel. You can run e.g. `#require "nx.top"`. - Addition of a visualization API in Fehu via the new `fehu.visualize` library, supporting video recording. - Redesign of Kaun core datastructure and checkpointing subsystem for complete snapshotting. - Many, many bug fixes and correctness improvements. We've also made numerous performance improvements across the board: - Nx elementwise ops: 5–50× faster (e.g., Add 50×50 f32 88.81 µs → 1.83 µs, **48×**; Mul 100×100 f32 78.51 µs → 2.41 µs, **33×**). - Nx conv2d: **4–5×** faster on common shapes; up to **115×** on heavy f64 batched cases (e.g., B16 C64→128 16×16 K3 f64 1.61 s → 13.96 ms). - Rune autodiff: **1.2–3.7×** faster on core grads (e.g., MatMulGrad Medium 34.04 ms → 11.91 ms, **2.86×**; Large 190.19 ms → 50.97 ms, **3.73×**). - Talon dataframes: big wins in joins and group-bys (Join 805.35 ms → 26.10 ms, **31×**; Group-by 170.80 ms → 19.03 ms, **9×**; Filter 9.93 ms → 3.39 ms, **3×**). - Saga tokenizers: realistic workloads **4–17%** faster (e.g., WordPiece encode single 136.05 µs → 115.92 µs, **1.17×**; BPE batch_32 24.52 ms → 22.27 ms, **1.10×**) We're closing 8 user-reported issues or feature requests and are totalling 30 community contributions from 8 unique contributors. ### Nx - Add `Nx_io.Cache_dir` module with consolidated cache directory utilities respecting `RAVEN_CACHE_ROOT`, `XDG_CACHE_HOME`, and `HOME` fallback, replacing project-specific cache logic across the whole raven ecosystem (raven-ml/raven#134, @Arsalaan-Alam) - Add `Nx_io.save_txt` / `Nx_io.load_txt` with NumPy-compatible formatting, comments, and dtype support (raven-ml/raven#120, @six-shot) - Optimize `multi_dot` for matrix chains, reducing intermediate allocations and improving performance (@tmattio) - Add public `index_put` function for indexed updates (@tmattio) - Clarify `reshape` documentation to match its view-only semantics (@tmattio) - Provide `nx.top`, `rune.top`, and `hugin.top` libraries that auto-install pretty printers in the OCaml toplevel and update Quill to load them (@tmattio) - Add `ifill` for explicit in-place fills and make `fill` return a copied tensor (@tmattio) - Speed up contiguous elementwise ops via vectorized loops (@tmattio) - Fast-path contiguous single-axis reductions to avoid iterator fallback (@tmattio) - Speed up float reductions with contiguous multi-axis fast paths (@tmattio) - Fast-path padding-free `unfold` to lower conv2d overhead (@tmattio) - Move neural-network operations (softmax, log_softmax, relu, gelu, silu, sigmoid, tanh) from Kaun to Nx (@tmattio) - Add public `conjugate` function for complex number conjugation (raven-ml/raven#125, @Arsalaan-Alam) - Fix complex vdot to conjugate first tensor before multiplication, ensuring correct mathematical behavior (raven-ml/raven#123, @Arsalaan-Alam) - Update comparison and conditional operations to use boolean tensors (raven-ml/raven#115, @nirnayroy) - Add support for rcond parameter and underdetermined systems to `lstsq` (raven-ml/raven#102, @Shocker444) - Fix `matrix_rank`/`pinv` Hermitian fast paths to use eigen-decomposition and match NumPy for complex inputs (raven-ml/raven#96, @six-shot, @tmattio) - Optimize matmul BLAS dispatch for strided tensors, improving matrix multiplication performance (@tmattio) - Fix slow builds reported since alpha1 (raven-ml/raven#88, @tmattio) - Fix macOS ARM crash when loading extended bigarray kinds (@tmattio) - Add float16 and bfloat16 support to safetensors I/O, including precise conversions that preserve denormals/NaNs (raven-ml/raven#84, @six-shot, @tmattio) - Refined `View` internals for leaner contiguity checks and stride handling, cutting redundant materialization on hot paths (@tmattio) - Merge `Lazy_view` into the core `View` API so movement ops operate on a single composed view (@tmattio) - Documented the reworked `View` interface (@tmattio) - Documented the `Symbolic_shape` interface (@tmattio) - Added Accelerate framework flag when compiling on macOS, fixing issues in some environments (raven-ml/raven#129, @nirnayroy) ### Hugin - Let `Hugin.show` windows close cleanly via the window button or `Esc`/`q`, avoiding frozen macOS REPL sessions (@tmattio) ### Rune - Add `Rune.no_grad` and `Rune.detach` to mirror JAX stop-gradient semantics (@tmattio) - Improve gradient performance slightly by replace the reverse-mode tape's linear PhysicalTbl with an identity hash table (@tmattio) - Fix `Rune.Rng.shuffle` flattening outputs for multi-dimensional tensors; the shuffle now gathers along axis 0 and keeps shapes intact (@tmattio) - Replace `Rune.Rng.truncated_normal` clipping with rejection sampling so samples stay inside the requested interval without boundary spikes (@tmattio) - Add support for categorical sampling with `Rune.Rng.categorical` (raven-ml/raven#89, @nirnayroy) - Allow plain `llvm-config` in discovery, fixing build in some platforms (raven-ml/raven#71, @stepbrobd) ### Kaun - Added Similarity and Polysemy analysis to the BERT example (raven-ml/raven#137, @nirnayroy) - Support attention masks via the new `Kaun.Attention` module (@tmattio) - Support loading sharded Hugging Face safetensors (@tmattio) - Fix BERT and GPT‑2 model loading (@tmattio) - API simplification: removed type parameters from public types; `Ptree` now supports mixed‑dtype trees via packed tensors with typed getters. (@tmattio) - Checkpointing overhaul: versioned `Train_state` with schema tagging, explicit `Checkpoint.{Snapshot,Artifact,Manifest,Repository}` (retention, tags, metadata), and simple save/load helpers for snapshots and params. (@tmattio) - Overhaul dataset combinators: derive tensor specs from Rune dtype, fix sampling/window bugs, validate weighted sampling, and respect `drop_remainder` (@tmattio) - Make dataset `prefetch` truly asynchronous with background domains and allow reusing an external Domainslib pool via `parallel_map ~pool` (@tmattio) - Use `Dataset.iter` for epoch batches to reduce overhead (@tmattio) - Update BERT and GPT-2 tokenizer cache to use `Nx.Cache` for consistent cache directory resolution (raven-ml/raven#134, @Arsalaan-Alam) - Honor text dataset encodings via incremental Uutf decoding (raven-ml/raven#122, @Satarupa22-SD). - Preserve empty sequential modules when unflattening so indices stay aligned for checkpoint round-tripping (@tmattio) - Prevent `Training.fit`/`evaluate` from consuming entire datasets eagerly and fail fast when a dataset yields no batches, avoiding hangs and division-by-zero crashes (@tmattio) - Allow metric history to tolerate metrics that appear or disappear between epochs so dynamic metric sets no longer raise during training (@tmattio) - Make `Optimizer.clip_by_global_norm` robust to zero gradients and empty parameter trees to avoid NaNs during training (@tmattio) - Split CSV loader into `from_csv` and `from_csv_with_labels` to retain labels when requested (raven-ml/raven#114, @Satarupa22-SD) - Implement AUC-ROC and AUC-PR in Kaun metrics and simplify their signatures (raven-ml/raven#124, raven-ml/raven#131, @Shocker444) - Add mean absolute percentage error, explained variance, R² (with optional adjustment), KL-divergence, and top-k accuracy to Kaun metrics (@tmattio) - Add NDCG, MAP, and MRR ranking metrics to Kaun metrics (@tmattio) - Add BLEU, ROUGE, and METEOR metrics to Kaun for pre-tokenized sequences, removing tokenizer dependencies (@tmattio) - Add SSIM, IoU, and Dice metrics for vision workloads in Kaun (@tmattio) ### Talon - Remove automatic sentinel-based null detection for numeric columns; explicit masks (via [_opt] constructors) now define missing data semantics (@tmattio) - Replace join nested loops with hashed join indices, cutting lookup from O(n·m) to near O(n) (@tmattio) - Reuse a shared Nx-based column reindexer so filter/sample paths avoid repeated array copies (@tmattio) - Fix `fillna` to honor column null masks and replacements, restoring expected nullable semantics (@tmattio) - Preserve null masks when reindexing during joins so sentinel values remain valid data (@tmattio) - Handle numeric index columns in `pivot`, preventing distinct keys from collapsing into a single bucket (@tmattio) - Respect null masks when serializing numeric columns to JSON, emitting JSON `null` instead of sentinel values (@tmattio) - Detect big integers as int64 in Talon CSV loader (raven-ml/raven#121, @Arsalaan-Alam) - Allow forcing column types in Talon JSON loader (raven-ml/raven#104, @nirnayroy) ### Saga - Remove legacy `Normalizers.nmt` and `Normalizers.precompiled` constructors (and their JSON serializers) so the public surface only advertises supported normalizers (@tmattio) - Tighten template processor JSON parsing: require integer type ids, drop the legacy special-token list format, and ensure multi-id special tokens round-trip with the new record fields (@tmattio) - Make tokenizer JSON loading tolerant of HuggingFace quirks (missing `model.type`, string-encoded merges), restoring compatibility with upstream `tokenizer.json` files (@tmattio) - Cache byte-level encode/decode lookup tables to avoid rebuilding them during tokenization, trimming avoidable allocations (@tmattio) - Skip BPE dropout sampling when dropout is disabled, removing redundant RNG work on common hot paths (@tmattio) - Fix Unigram tokenization so longest matches are emitted without aborting the sequence when a vocab hit occurs (@tmattio) - Recompute pad token ids when the pad special string changes, preventing padding with stale ids (@tmattio) - Fix Unigram `token_to_id`/`id_to_token` vocabulary lookups (raven-ml/raven#117, @RidwanAdebosin) - Optimize `Pre_tokenizers.whitespace` to reduce allocations and improve tokenization performance (@tmattio) - Simplify tokenizers interface (@tmattio) ### Sowilo - Add `resize` (nearest & bilinear) that works for 2D, batched, and NHWC tensors (@tmattio) - Update grayscale conversion and RGB/BGR channel swaps to run entirely on Rune ops, keeping batched inputs compatible with JIT backends (@tmattio) - Make `median_blur` compute the true median so salt-and-pepper noise is removed as expected (@tmattio) - Fix `erode`/`dilate` so custom structuring elements (e.g. cross vs. square) and batched tensors produce the correct morphology result (@tmattio) ### Fehu - Added snapshot-based save/load for DQN and REINFORCE agents (raven-ml/raven#127, @RidwanAdebosin, @tmattio) - Added typed `Render` payloads with enforced `render_mode` selection in `Env.create`, auto human-mode rendering, and vectorized `Env.render` accessors so environments consistently expose frames for downstream tooling (@tmattio) - Introduced the `Fehu_visualize` library with ffmpeg/gif/W&B sinks, overlay combinators, rollout/evaluation recorders, and video wrappers for single and vectorized environments, providing a cohesive visualization stack for Fehu (@tmattio) - Added a `Fehu.Policy` helper module (random/deterministic/greedy) and sink `with_*` guards so visualization sinks handle directory creation and cleanup automatically (@tmattio) - Added `Buffer.Replay.sample_tensors` to streamline batched training loops and exploration handling (@tmattio) - Reworked `Fehu_algorithms.Dqn` around `init`/`step`/`train` primitives with functional state, warmup control, and snapshotting helpers (@tmattio) - Rebuilt `Fehu_algorithms.Reinforce` on the same `init`/`step`/`train` interface with optional baselines, tensor-based rollouts, snapshot save/load, and updated tests/examples/docs using the new workflow (@tmattio) - Upgraded the GridWorld environment to return ANSI and RGB-array frames using the new render types, and updated the DQN example to optionally record pre- and post-training rollouts via `FEHU_DQN_RECORD_DIR` using `Fehu_visualize` sinks (@tmattio) - Reworked space sampling to return `(value, next_rng)` and split keys internally, fixing correlated draws in Box/Multi-discrete/Tuple/Dict/Sequence/Text samplers while adding `Space.boundary_values` for deterministic compatibility checks (@tmattio) - Extended vectorized environments to reuse space boundary probes and now store structured `final_observation` payloads in `Info`, improving downstream consumption (@tmattio) - Added `Buffer.Replay.add_many` and `Buffer.Replay.sample_arrays`, preserved backing storage on `clear`, and exposed struct-of-arrays batches for vectorised learners (@tmattio) - Tightened `Env.create` diagnostics with contextual error messages and an optional `~validate_transition` hook for custom invariants (@tmattio) - Enriched `Wrapper` utilities with `map_info`, Box `clip_action`/`clip_observation`, and time-limit info reporting elapsed steps (@tmattio) - Upgraded `Info` values to carry int/float/bool arrays with stable JSON round-tripping (handling NaN/∞) and sorted metadata serialization for deterministic diffs (@tmattio) - Improved training helpers: Welford-based normalization with optional unbiased variance, documented `done = terminated || truncated`, and returned `nan` when explained variance is undefined (@tmattio) - Treat time-limit truncations as terminals when computing rollout advantages and expose the `truncated` flag in buffer steps (@tmattio) - Require callers of `Training.compute_gae` to pass final bootstrapping values and ensure `Training.evaluate` feeds the current observation to policies (@tmattio) - Allow `Space.Sequence.create` to omit `max_length`, keeping sequences unbounded above while preserving validation and sampling semantics (@tmattio) - Validate vectorized environments by round-tripping sample actions/observations across every instance, preventing incompatible spaces from slipping through (@tmattio) - Finish clipped value loss support in Fehu.Training (raven-ml/raven#119, @nirnayroy) ### Nx-datasets - Migrate to `Nx.Cache` for cache directory resolution, enabling consistent behavior. (raven-ml/raven#133, @Arsalaan-Alam) - Fix cache directory resolution to respect `RAVEN_CACHE_ROOT` (or fall back to `XDG_CACHE_HOME`/`HOME`), allowing custom cache locations. (raven-ml/raven#128, @Arsalaan-Alam) - Switch CIFAR-10 loader to the binary archive so parsing succeeds again (@tmattio) - Add a CIFAR-10 example (@tmattio) - Standardize dataset examples on `Logs` (@tmattio) - Use `Logs` for dataset loader logging (raven-ml/raven#95, @Satarupa22-SD)
1 parent 0ebc487 commit 4975b0f

File tree

11 files changed

+589
-0
lines changed
  • packages
    • fehu/fehu.1.0.0~alpha2
    • hugin/hugin.1.0.0~alpha2
    • kaun/kaun.1.0.0~alpha2
    • nx-datasets/nx-datasets.1.0.0~alpha2
    • nx/nx.1.0.0~alpha2
    • quill/quill.1.0.0~alpha2
    • raven/raven.1.0.0~alpha2
    • rune/rune.1.0.0~alpha2
    • saga/saga.1.0.0~alpha2
    • sowilo/sowilo.1.0.0~alpha2
    • talon/talon.1.0.0~alpha2

11 files changed

+589
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
opam-version: "2.0"
2+
synopsis: "Reinforcement learning framework for OCaml"
3+
description:
4+
"Fehu is a reinforcement learning framework built on Raven's ecosystem, providing environments, algorithms, and training utilities"
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: [
9+
"reinforcement-learning" "machine-learning" "ai" "environments" "agents"
10+
]
11+
homepage: "https://github.com/raven-ml/raven"
12+
doc: "https://raven-ml.dev/docs/"
13+
bug-reports: "https://github.com/raven-ml/raven/issues"
14+
depends: [
15+
"ocaml" {>= "5.3.0"}
16+
"dune" {>= "3.19"}
17+
"rune" {= version}
18+
"kaun" {= version}
19+
"yojson" {>= "2.0.0"}
20+
"alcotest" {with-test}
21+
"odoc" {with-doc}
22+
]
23+
build: [
24+
["dune" "subst"] {dev}
25+
[
26+
"dune"
27+
"build"
28+
"-p"
29+
name
30+
"-j"
31+
jobs
32+
"--promote-install-files=false"
33+
"@install"
34+
"@runtest" {with-test}
35+
"@doc" {with-doc}
36+
]
37+
["dune" "install" "-p" name "--create-install-files" name]
38+
]
39+
dev-repo: "git+https://github.com/raven-ml/raven.git"
40+
x-maintenance-intent: ["(latest)"]
41+
url {
42+
src:
43+
"https://github.com/raven-ml/raven/releases/download/1.0.0_alpha2/raven-1.0.0.alpha2.tbz"
44+
checksum: [
45+
"sha256=e0ae701205380d5226a18caebf06a216a56d4ecd4ece7cef08110c8c9cee11b8"
46+
"sha512=7c03caae0a8d2e11be9e46725ece78dbdba150bfe3963c316ea8fe18bc3af82930cc9623835630278cb73836774e7943e6ee701a1f094b2afc819ba759c49649"
47+
]
48+
}
49+
x-commit-hash: "f75c898b55fd719cde792da88e7e90f195b8346c"
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
opam-version: "2.0"
2+
synopsis: "Visualization library for OCaml"
3+
description:
4+
"Hugin is a powerful visualization library for OCaml that produces publication-quality plots and charts. It integrates with the Raven ecosystem to provide visualization of Nx data."
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: ["visualization" "plotting" "charts" "data-science" "graphics"]
9+
homepage: "https://github.com/raven-ml/raven"
10+
doc: "https://raven-ml.dev/docs/"
11+
bug-reports: "https://github.com/raven-ml/raven/issues"
12+
depends: [
13+
"ocaml" {>= "5.3.0"}
14+
"dune" {>= "3.19"}
15+
"dune-configurator" {build}
16+
"conf-sdl2"
17+
"cairo2"
18+
"nx" {= version}
19+
"base64"
20+
"alcotest" {with-test}
21+
"odoc" {with-doc}
22+
]
23+
build: [
24+
["dune" "subst"] {dev}
25+
[
26+
"dune"
27+
"build"
28+
"-p"
29+
name
30+
"-j"
31+
jobs
32+
"--promote-install-files=false"
33+
"@install"
34+
"@runtest" {with-test}
35+
"@doc" {with-doc}
36+
]
37+
["dune" "install" "-p" name "--create-install-files" name]
38+
]
39+
dev-repo: "git+https://github.com/raven-ml/raven.git"
40+
x-maintenance-intent: ["(latest)"]
41+
url {
42+
src:
43+
"https://github.com/raven-ml/raven/releases/download/1.0.0_alpha2/raven-1.0.0.alpha2.tbz"
44+
checksum: [
45+
"sha256=e0ae701205380d5226a18caebf06a216a56d4ecd4ece7cef08110c8c9cee11b8"
46+
"sha512=7c03caae0a8d2e11be9e46725ece78dbdba150bfe3963c316ea8fe18bc3af82930cc9623835630278cb73836774e7943e6ee701a1f094b2afc819ba759c49649"
47+
]
48+
}
49+
x-commit-hash: "f75c898b55fd719cde792da88e7e90f195b8346c"
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
opam-version: "2.0"
2+
synopsis: "Flax-inspired neural network library for OCaml"
3+
description:
4+
"Kaun brings modern deep learning to OCaml with a flexible, type-safe API for building and training neural networks. It leverages Rune for automatic differentiation and computation graph optimization while maintaining OCaml's functional programming advantages."
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: ["neural-networks" "machine-learning" "deep-learning"]
9+
homepage: "https://github.com/raven-ml/raven"
10+
doc: "https://raven-ml.dev/docs/"
11+
bug-reports: "https://github.com/raven-ml/raven/issues"
12+
depends: [
13+
"ocaml" {>= "5.3.0"}
14+
"dune" {>= "3.19"}
15+
"logs"
16+
"yojson" {>= "2.0.0"}
17+
"domainslib" {>= "0.5.0"}
18+
"saga" {= version}
19+
"rune" {= version}
20+
"nx-datasets" {= version}
21+
"alcotest" {with-test}
22+
"odoc" {with-doc}
23+
]
24+
build: [
25+
["dune" "subst"] {dev}
26+
[
27+
"dune"
28+
"build"
29+
"-p"
30+
name
31+
"-j"
32+
jobs
33+
"--promote-install-files=false"
34+
"@install"
35+
"@runtest" {with-test}
36+
"@doc" {with-doc}
37+
]
38+
["dune" "install" "-p" name "--create-install-files" name]
39+
]
40+
dev-repo: "git+https://github.com/raven-ml/raven.git"
41+
x-maintenance-intent: ["(latest)"]
42+
url {
43+
src:
44+
"https://github.com/raven-ml/raven/releases/download/1.0.0_alpha2/raven-1.0.0.alpha2.tbz"
45+
checksum: [
46+
"sha256=e0ae701205380d5226a18caebf06a216a56d4ecd4ece7cef08110c8c9cee11b8"
47+
"sha512=7c03caae0a8d2e11be9e46725ece78dbdba150bfe3963c316ea8fe18bc3af82930cc9623835630278cb73836774e7943e6ee701a1f094b2afc819ba759c49649"
48+
]
49+
}
50+
x-commit-hash: "f75c898b55fd719cde792da88e7e90f195b8346c"
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
opam-version: "2.0"
2+
synopsis: "Common datasets for machine learning"
3+
description:
4+
"A collection of common datasets for machine learning tasks, including image classification, regression, and more. This package provides easy access to popular datasets in a format compatible with Nx."
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: [
9+
"datasets"
10+
"machine-learning"
11+
"data-science"
12+
"image-classification"
13+
"regression"
14+
]
15+
homepage: "https://github.com/raven-ml/raven"
16+
doc: "https://raven-ml.dev/docs/"
17+
bug-reports: "https://github.com/raven-ml/raven/issues"
18+
depends: [
19+
"ocaml" {>= "5.3.0"}
20+
"dune" {>= "3.19"}
21+
"ocurl"
22+
"csv"
23+
"logs"
24+
"nx" {= version}
25+
"alcotest" {with-test}
26+
"odoc" {with-doc}
27+
]
28+
build: [
29+
["dune" "subst"] {dev}
30+
[
31+
"dune"
32+
"build"
33+
"-p"
34+
name
35+
"-j"
36+
jobs
37+
"--promote-install-files=false"
38+
"@install"
39+
"@runtest" {with-test}
40+
"@doc" {with-doc}
41+
]
42+
["dune" "install" "-p" name "--create-install-files" name]
43+
]
44+
dev-repo: "git+https://github.com/raven-ml/raven.git"
45+
x-maintenance-intent: ["(latest)"]
46+
url {
47+
src:
48+
"https://github.com/raven-ml/raven/releases/download/1.0.0_alpha2/raven-1.0.0.alpha2.tbz"
49+
checksum: [
50+
"sha256=e0ae701205380d5226a18caebf06a216a56d4ecd4ece7cef08110c8c9cee11b8"
51+
"sha512=7c03caae0a8d2e11be9e46725ece78dbdba150bfe3963c316ea8fe18bc3af82930cc9623835630278cb73836774e7943e6ee701a1f094b2afc819ba759c49649"
52+
]
53+
}
54+
x-commit-hash: "f75c898b55fd719cde792da88e7e90f195b8346c"

packages/nx/nx.1.0.0~alpha2/opam

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
opam-version: "2.0"
2+
synopsis: "High-performance N-dimensional array library for OCaml"
3+
description:
4+
"Nx is the core component of the Raven ecosystem providing efficient numerical computation with multi-device support. It offers NumPy-like functionality with the benefits of OCaml's type system."
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: ["numerical-computation" "tensor-library" "machine-learning"]
9+
homepage: "https://github.com/raven-ml/raven"
10+
doc: "https://raven-ml.dev/docs/"
11+
bug-reports: "https://github.com/raven-ml/raven/issues"
12+
depends: [
13+
"ocaml" {>= "5.3.0"}
14+
"dune" {>= "3.19"}
15+
"dune-configurator" {build}
16+
"conf-pkg-config" {build}
17+
"conf-zlib" {build}
18+
"stdlib-shims"
19+
"alcotest" {with-test}
20+
"mdx" {with-test}
21+
"odoc" {with-doc}
22+
]
23+
build: [
24+
["dune" "subst"] {dev}
25+
[
26+
"dune"
27+
"build"
28+
"-p"
29+
name
30+
"-j"
31+
jobs
32+
"--promote-install-files=false"
33+
"@install"
34+
"@runtest" {with-test}
35+
"@doc" {with-doc}
36+
]
37+
["dune" "install" "-p" name "--create-install-files" name]
38+
]
39+
dev-repo: "git+https://github.com/raven-ml/raven.git"
40+
x-maintenance-intent: ["(latest)"]
41+
depexts: [
42+
["libc-dev" "openblas-dev" "lapack-dev"] {os-distribution = "alpine"}
43+
["epel-release" "openblas-devel"] {os-distribution = "centos"}
44+
["libopenblas-dev" "liblapacke-dev"] {os-family = "debian"}
45+
["libopenblas-dev" "liblapacke-dev"] {os-family = "ubuntu"}
46+
["openblas-devel"] {os-family = "fedora"}
47+
["libopenblas_openmp-devel"] {os-family = "suse" | os-family = "opensuse"}
48+
["openblas" "lapacke" "cblas"] {os-distribution = "arch"}
49+
["openblas"] {os = "macos" & os-distribution = "homebrew"}
50+
["openblas" "lapacke"] {os = "freebsd"}
51+
]
52+
x-ci-accept-failures: [
53+
"oraclelinux-7"
54+
"oraclelinux-8"
55+
"oraclelinux-9"
56+
]
57+
url {
58+
src:
59+
"https://github.com/raven-ml/raven/releases/download/1.0.0_alpha2/raven-1.0.0.alpha2.tbz"
60+
checksum: [
61+
"sha256=e0ae701205380d5226a18caebf06a216a56d4ecd4ece7cef08110c8c9cee11b8"
62+
"sha512=7c03caae0a8d2e11be9e46725ece78dbdba150bfe3963c316ea8fe18bc3af82930cc9623835630278cb73836774e7943e6ee701a1f094b2afc819ba759c49649"
63+
]
64+
}
65+
x-commit-hash: "f75c898b55fd719cde792da88e7e90f195b8346c"
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
opam-version: "2.0"
2+
synopsis: "Interactive notebook for OCaml data science"
3+
description:
4+
"Quill is an interactive notebook application for data exploration, prototyping, and knowledge sharing in OCaml. It provides a Jupyter-like experience with rich visualization and documentation capabilities."
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: [
9+
"notebook" "interactive-computing" "data-science" "literate-programming"
10+
]
11+
homepage: "https://github.com/raven-ml/raven"
12+
doc: "https://raven-ml.dev/docs/"
13+
bug-reports: "https://github.com/raven-ml/raven/issues"
14+
depends: [
15+
"ocaml" {>= "5.3.0"}
16+
"dune" {>= "3.19"}
17+
"dune-site" {>= "3.19.0"}
18+
"cmdliner"
19+
"wasm_of_ocaml-compiler"
20+
"js_of_ocaml-toplevel"
21+
"dream" {>= "1.0.0~alpha8"}
22+
"ppx_deriving_yojson"
23+
"crunch"
24+
"cmarkit"
25+
"vdom"
26+
"brr"
27+
"base64"
28+
"nx" {= version}
29+
"nx-datasets" {= version}
30+
"saga" {= version}
31+
"rune" {= version}
32+
"kaun" {= version}
33+
"sowilo" {= version}
34+
"hugin" {= version}
35+
"alcotest" {with-test}
36+
"odoc" {with-doc}
37+
]
38+
dev-repo: "git+https://github.com/raven-ml/raven.git"
39+
x-maintenance-intent: ["(latest)"]
40+
build: [
41+
["dune" "subst"] {dev}
42+
[
43+
"dune"
44+
"build"
45+
"--root"
46+
"."
47+
"--only-packages"
48+
name
49+
"--no-config"
50+
"--profile"
51+
"release"
52+
"-j"
53+
jobs
54+
"--auto-promote"
55+
"--promote-install-files=false"
56+
"@install"
57+
"@runtest" {with-test}
58+
"@doc" {with-doc}
59+
]
60+
["dune" "install" "-p" name "--create-install-files" name]
61+
]
62+
url {
63+
src:
64+
"https://github.com/raven-ml/raven/releases/download/1.0.0_alpha2/raven-1.0.0.alpha2.tbz"
65+
checksum: [
66+
"sha256=e0ae701205380d5226a18caebf06a216a56d4ecd4ece7cef08110c8c9cee11b8"
67+
"sha512=7c03caae0a8d2e11be9e46725ece78dbdba150bfe3963c316ea8fe18bc3af82930cc9623835630278cb73836774e7943e6ee701a1f094b2afc819ba759c49649"
68+
]
69+
}
70+
x-commit-hash: "f75c898b55fd719cde792da88e7e90f195b8346c"
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
opam-version: "2.0"
2+
synopsis: "Meta package for the Raven ML ecosystem"
3+
description:
4+
"Raven is a comprehensive machine learning ecosystem for OCaml. This meta package installs all Raven components including Nx (tensors), Hugin (plotting), Quill (notebooks), Rune (autodiff), Kaun (neural networks), and Sowilo (computer vision)."
5+
maintainer: ["Thibaut Mattio <[email protected]>"]
6+
authors: ["Thibaut Mattio <[email protected]>"]
7+
license: "ISC"
8+
tags: ["machine-learning" "data-science" "numerical-computation"]
9+
homepage: "https://github.com/raven-ml/raven"
10+
doc: "https://raven-ml.dev/docs/"
11+
bug-reports: "https://github.com/raven-ml/raven/issues"
12+
depends: [
13+
"dune" {>= "3.19"}
14+
"nx" {= version}
15+
"nx-datasets" {= version}
16+
"saga" {= version}
17+
"rune" {= version}
18+
"kaun" {= version}
19+
"sowilo" {= version}
20+
"fehu" {= version}
21+
"quill" {= version}
22+
"hugin" {= version}
23+
"mdx" {with-test}
24+
"odoc" {with-doc}
25+
]
26+
build: [
27+
["dune" "subst"] {dev}
28+
[
29+
"dune"
30+
"build"
31+
"-p"
32+
name
33+
"-j"
34+
jobs
35+
"--promote-install-files=false"
36+
"@install"
37+
"@runtest" {with-test}
38+
"@doc" {with-doc}
39+
]
40+
["dune" "install" "-p" name "--create-install-files" name]
41+
]
42+
dev-repo: "git+https://github.com/raven-ml/raven.git"
43+
x-maintenance-intent: ["(latest)"]
44+
url {
45+
src:
46+
"https://github.com/raven-ml/raven/releases/download/1.0.0_alpha2/raven-1.0.0.alpha2.tbz"
47+
checksum: [
48+
"sha256=e0ae701205380d5226a18caebf06a216a56d4ecd4ece7cef08110c8c9cee11b8"
49+
"sha512=7c03caae0a8d2e11be9e46725ece78dbdba150bfe3963c316ea8fe18bc3af82930cc9623835630278cb73836774e7943e6ee701a1f094b2afc819ba759c49649"
50+
]
51+
}
52+
x-commit-hash: "f75c898b55fd719cde792da88e7e90f195b8346c"

0 commit comments

Comments
 (0)