Limites du nombre de lignes -- historique
Resume
v1 -- Coordonnees f32
Les positions de rendu (coordonnees canvas, scroll_y, row_top) etaient en f32.
f32 possede 23 bits de mantisse, representant les entiers exactement jusqu'a 2^24 = 16 777 216.
Au-dela, l'epsilon augmente :
Limite pratique v1 : ~300 000 lignes.
v2 -- Indices usize, coordonnees f64
Les coordonnees sont passees en f64 (la precision de scroll est largement suffisante a cette echelle),
mais les indices de lignes sont restes en usize.
Sur wasm32, usize est en 32 bits, donc usize::MAX = 4 294 967 295 (~4,3 milliards).
Ce plafond etait le goulot d'etranglement, pas la precision en virgule flottante.
Sur x86-64, usize est en 64 bits donc il n'y a pas de limite en natif -- mais le code wasm32
depassait usize::MAX silencieusement (overflow ou panic selon le mode de compilation).
Limite pratique v2 : ~4,3 milliards de lignes sur wasm32.
v3 -- Indices u64, coordonnees f64 (2026-03-16)
Les indices de lignes (row_count, CellCoord.row, get_cell, row_top,
visible_rows) sont passes de usize a u64. Les indices de colonnes restent
en usize (jamais plus de quelques centaines).
Le plafond n'est plus le type d'index mais la precision de scroll_y: f64.
f64 possede 52 bits de mantisse, representant les entiers exactement jusqu'a 2^53.
Test concret (2026-03-16, row_height = 28)
Limite maximale recommandee : 9_007_199_254_740_99_u64 (~9 x 10^14 lignes).
Valeurs dans les exemples
basic-web:10_000_000_000_u64(10 milliards -- confortable)basic-leptos:9_007_199_254_740_99_u64(limite maximale testee)