Skip to content

0.14.3: the rights tables zero by default (~80 KiB less data in every Web build) - #22

Merged
Sunrisepeak merged 1 commit into
mainfrom
zero-tables
Nov 15, 2026
Merged

Sunrisepeak merged 1 commit into
mainfrom
zero-tables

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

The descriptor-rights tables had -1 defaults, so 4096 entries and 64 roots were initialised data (~80 KiB in every Web program). Defaults are now zero; a taken slot gets its sentinels in new_entry/new_root; a free entry is told by used. Verified with emsdk 6.0.9 at -O2: both tables move from .data to .bss. No behaviour changes.

…b build's data

entry (4096) and root (64) had -1 defaults (fd, root, base, record), which put
both tables in initialised data: about 80 KiB carried by every program built
for the Web (a site with a 4,000,000 B delivery budget went 9,332 B over it).
Every default is now zero; new_entry and new_root give a taken slot its -1s; a
free entry is told by `used`. emsdk 6.0.9, -O2: g_entries and g_roots move from
.data to .bss. No behaviour changes.
@Sunrisepeak
Sunrisepeak merged commit 6828b32 into main Nov 15, 2026
2 checks passed
@Sunrisepeak
Sunrisepeak deleted the zero-tables branch November 15, 2026 11:19
Sunrisepeak added a commit to Sunrisepeak/mui that referenced this pull request Nov 15, 2026
…ts' status

lint `module-closure`: what a package's default interface re-exports from
another package (`export import` of its module) puts that package's interface
into every consumer's module graph, so the manifest states it —
`[package.metadata.openmui] reexports`. One re-exported and not listed is a
problem, one listed and not re-exported too; a feature's own module is exempt
(the pattern xengine.dynamics.matter follows); a package's ancestor is its own.
The 46 packages that re-export today declare theirs (hosts and components
omui.core/view, CTS packages mlibs.cts, the carriers xengine.matter, xrender's
layers). At f8f9527 (T1.2) the rule reports dynamics' xpbd.cppm re-exporting
xengine.matter — the change that broke showcase/fighting's build a commit
later. Self-test 39 of 39 (a planted undeclared re-export).

RC1.7, first part: `.agents/docs/README.md` has a status column — 有效 (8:
the release plan, the top-level plan, the foundation, the TS-first
convergence, Live Design's base, the local × global rules, hanim's
representations, the component checklist), 已被取代 with what replaced it (8),
历史 (45). The two current summaries of the >100 kB documents are still to do.

Red 100 closed (project_test's broken manifest is deliberate). Upstream:
mcpplibs/openkal-emscripten#22 merged and tagged 0.14.3 (reds 33, 56: the
rights tables in .bss; GitHub and GitCode archives the same sha256),
mcpp-index#799 open. lint 0.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant