Skip to content

ESB64 v1.2.1 — allocator exhaustion fix (10004) + facade ES3 fallback

Latest

Choose a tag to compare

@thelabcorner thelabcorner released this 11 Aug 03:35
· 1 commit to master since this release

ESB64 v1.2.1

Fixes

  • Native allocator exhaustion (error 10004) in long-lived sessions — ESB64Native now uses a segmented growable arena: 16 MiB static BSS segment + VirtualAlloc growth segments (32 MiB default, unbounded count), address-ordered free list with same-segment coalescing, and VirtualFree release of fully-free segments (RSS returns to baseline when the host GC frees). 10004 now only fires on true process OOM. Verified live in Illustrator: 57 MiB retained without freeing succeeds where the old fixed pool died at ~16 MiB.
  • Facade resilience — a positive native error (e.g. 10004) now falls back to the ES3 lane for that call instead of rethrowing; negative/fatal codes still rethrow. No permanent lane disable: the native lane retries next call and recovers after the host GC runs ESFreeMem.

Rollout

  • Shared accelerator cache version bumped to v2 (ESB64Native_v2.dll), coordinated across the espack family (ESON/ESARR/ESCHARS/ESSTR/ESHTTP) so hosts replace the stale v1 pool.
  • Bundles rebuilt with the canonical patched DLL (byte-verified in every artifact).
  • All existing parity/validation green: 411 Node checks, WPT corpus, differential fuzz, live-engine battery, espack suite 39/39 + 6/6, adversarial allocator stress.