L_alloc handed out a fresh slot without a bound, so the 1025th spawn wrote past the end of every component array. It stops with a located message naming the store's size and where many things belong (ludic.base's Table). Growable stores are plan 24.8: the save, rollback snapshot and mod table write the stores whole at a compile-time size, so that is a file-format change. Reseeded; ludic-dev test 305 passed, selfhost-test 33 passed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7 lines
501 B
Markdown
7 lines
501 B
Markdown
bump: patch
|
|
type: fix
|
|
**The 1,025th entity stops the program instead of corrupting it.** The built-in ECS keeps every
|
|
component in a fixed array of 1024 slots, and `L_alloc` never checked: one entity more was written
|
|
past the end of every component array at once. A spawn past the store now stops with `more than
|
|
1024 entities: the built-in ECS holds 1024; keep many things in a ludic.base Table`. A game that
|
|
keeps thousands of something keeps them as rows of `ludic.base`'s `Table<T>`, which grows.
|