ludic/changes/ecs-entity-overflow.md
Orkuncakilkaya 1c7ce84881 fix(compiler): the built-in ECS stops at its 1024th entity instead of writing past every store
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>
2026-09-27 22:22:45 +03:00

501 B

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.