-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
92 lines (86 loc) · 5.31 KB
/
Copy pathCargo.toml
File metadata and controls
92 lines (86 loc) · 5.31 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
[workspace]
resolver = "2"
members = ["zensim", "zensim-experimental", "zensim-validate", "zensim-regress", "zensim-wasm-tests", "zensim-train-core", "zensim-train-gpu"]
# Internal sibling-required research tooling. These crates path-dep AGPL codec
# siblings (zenjpeg/zenwebp/zenavif/zenjxl/zenpng), zenanalyze, and a local
# butteraugli fork that only exist on dev machines with the full ~/work/zen
# sibling layout. Keeping them as workspace members made `cargo metadata` fail
# on every bare checkout (CI, fresh clones) before a single crate compiled —
# imazen/zensim#43. Each is now its own standalone workspace root; build them
# from their directory or via `cargo <cmd> --manifest-path <crate>/Cargo.toml`.
# `apidoc/` is the CI-free public-API snapshot runner: excluded so plain
# `cargo test` and every CI job (incl. --all-features) never compile its
# dependency tree or run rustdoc. Regenerate via `just api-doc`.
exclude = ["zensim-bench", "zensim-picker-prep", "zensim-target", "apidoc"]
[profile.release]
lto = "thin"
codegen-units = 1
[profile.dev]
opt-level = 2
[profile.dev.package."*"]
opt-level = 2
[workspace.dependencies]
zensim = { version = "0.3.0", path = "zensim", default-features = false }
zensim-regress = { version = "0.4.0", path = "zensim-regress", default-features = false }
# MINIMUM 0.9.28 is load-bearing for numeric semantics (2026-08-05): the
# 0.9.27 release (archmage 34f34b2) redefined the reciprocal contract —
# rsqrt_approx/rcp_approx became the RAW hardware estimate and rsqrt()/recip()
# became true full precision (raw + 2 Newton-Raphson). The opt-in rsqrt Adam
# kernel (zensim-validate/src/adam_simd.rs) is written against the NEW
# contract; under 0.9.26 its rsqrt()/recip() collapse to ~28-bit and
# rsqrt_path_precision_vs_scalar fails at max_rel 1.67e-5 (measured A/B,
# 2026-08-05 — the same movement is the prime suspect for the CI v1-golden
# flip, benchmarks/v1_golden_env_triage_2026-08-05.md). Do not lower.
archmage = { version = "0.9.28", features = ["macros", "avx512"] }
magetypes = { version = "0.9.28", features = ["avx512"] }
bytemuck = { version = "1.25", default-features = false, features = ["derive"] }
thiserror = "2"
image = "0.25"
rayon = "1.10"
imgref = "1.12"
rgb = { version = "0.8", default-features = false, features = ["bytemuck"] }
linear-srgb = { version = "0.6.7", default-features = false, features = ["std"] }
codec-corpus = "1.0.3"
zenbench = "0.1.2"
zenresize = { version = "0.3.1", default-features = false, features = ["std"] }
zenpng = { version = "0.1.4", default-features = false }
zenpixels = { version = ">=0.2.10, <0.4.0", default-features = false }
zenblend = "0.1.3"
enough = { version = "0.4.2", default-features = false, features = ["std"] }
# zenpredict / zenpredict-bake live in sibling `zenanalyze` (not on crates.io).
# Pinned to a specific git rev for CI portability (no sibling-clone needed).
# Local developers wanting auto-sync with the sibling worktree should add
# a `[patch]` section to their personal `.cargo/config.toml`:
# [patch."https://github.com/imazen/zenanalyze"]
# zenpredict = { path = "../zenanalyze/zenpredict" }
# zenpredict-bake = { path = "../zenanalyze/zenpredict-bake" }
# Bump the rev deliberately when a zenanalyze fix zensim needs lands.
#
# Release staging (issue #46): `version = "0.2.0"` on the zenpredict git
# dep is the crates-io-ready form — day-to-day builds keep using the git
# pin (cargo verifies the checkout IS 0.2.0), and at publish time cargo
# strips the git spec and records `zenpredict = "0.2.0"` in the registry
# metadata. `cargo package -p zensim` still requires zenpredict 0.2.0 to
# EXIST on crates.io (the v3 runtime; 0.1.0 there is ZNPR-v2-only and
# cannot load the shipped B bake), so the publish chain is:
# zenpredict 0.2.0 publish → `cargo package -p zensim` gate → zensim
# 0.3.0 publish → zensim-regress. zenpredict-bake is consumed only by
# the unpublished zensim-validate, so it stays a bare git pin.
zenpredict = { version = "0.2.0", git = "https://github.com/imazen/zenanalyze", rev = "05de3cbc44b19d8769077d99710b0146c761d6df" }
zenpredict-bake = { git = "https://github.com/imazen/zenanalyze", rev = "05de3cbc44b19d8769077d99710b0146c761d6df" }
# zenstats — canonical IQA-stats home extracted on 2026-05-26 from the
# pre-existing `zensim-validate/src/panel.rs`. Lives in the zenmetrics
# repo as a self-contained workspace member (zenmetrics already depends
# on zensim, so the dep direction is zensim → zenmetrics/crates/zenstats
# only — no cycle, the zenmetrics workspace root is NOT pulled in).
# Pinned to a specific git rev for CI portability (same contract as the
# zenpredict pin above — fixes imazen/zensim#43, where the sibling path
# dep made `cargo metadata` fail on every bare checkout). Local
# developers wanting auto-sync with the sibling worktree add to their
# personal `.cargo/config.toml`:
# [patch."https://github.com/imazen/zenmetrics"]
# zenstats = { path = "../zenmetrics/crates/zenstats" }
# Bump the rev deliberately when a zenstats fix zensim needs lands.
# 2026-07-15: bumped to 0ce69492 for `per_group_srocc` — the within-group rank
# agreement that pooled SROCC structurally hides (bake_verdict's per-ref column).
zenstats = { git = "https://github.com/imazen/zenmetrics", rev = "29f1d61ee8cb6d9010764512a9db79697dc23430", default-features = false, features = ["parallel"] }