No mystery scoreboard

Progress, limits, and next work

LilScript already has serious whole-program compression. The roadmap separates shipped evidence from current constraints and the next compiler experiments.

Loading the generated evidence count.

Shipped and verified

Evidence we can defend

  • JavaScript, emitted C, and native behavior gates before publication.
  • Current Vite 8/Oxc, Vite/Terser private-property, and Closure ADVANCED lanes.
  • Complete selected npm entrypoints separated from partial compatibility work.
  • Raw, gzip-9, and Brotli-11 reported independently.
  • Real login, animation, geometry, and property-boundary scenarios.
  • Generated project pages with exact source previews and repository links.

Current constraints

What is not solved

  • Large candidate searches can spend minutes on robust-predicate topology.
  • Property mangling still depends on an explicit closed-world/export contract.
  • Browser rendering claims need repeatable in-browser hardware runs; Node/jsdom is only a proxy.
  • SolidLil runtime parity does not make its partial LSX frontend complete; partial Preact, Zod, Immer, Acorn, and Redux surfaces are also excluded from full-library claims.
  • A smaller demo app does not establish a smaller reusable public API.

Next compiler work

Ordered experiments

  1. Escape-owned properties. Prove which fields never cross extern/export boundaries, then mangle only those without a global closed-world switch.
  2. Search budgeting. Cache equivalent IR candidates, stop dominated branches earlier, and publish compile-time alongside byte wins.
  3. Cross-module shape DCE. Carry field-use and call-signature facts through preserve-module output.
  4. Startup-aware scoring. Keep raw/codec candidates while rejecting parse, allocation, or hot-loop regressions with measured profiles.
  5. Broader applications. Add routing, validation, state, and rendering scenarios only when both sides perform the same algorithmic work.

Research notes

What Vite and Closure taught us

Vite/Rolldown gets leverage from graph-level tree shaking before Oxc performs compact syntax, constant folding, dead-code elimination, and binding mangling. Closure ADVANCED treats the program as a closed world and combines global renaming with interprocedural optimization, but only when externs and exported contracts are modeled correctly. LilScript’s typed IR can often go further through scalar replacement and typed specialization; its highest-value next step is proving ownership and escape boundaries automatically.