04:18
<Kris Kowal>
Thank you ljharb for creating this space and welcome interested parties in module loader virtualization. I’ve invited as many handles as I could recognize at a glance and I will try to gather the missing champions and collaborators.
04:24
<Kris Kowal>
By wave of an update, I’m working with the champion group to narrow the focus of the Compartments proposal to just module loader virtualization https://github.com/tc39/proposal-compartments/pull/46
04:26
<Kris Kowal>
Specifically in order to present the narrowest profile to the wind. There’s enough interest in the topic and two years of experience vetting the Compartments proposal (stage 1) that it’s time to push for 2.
04:27
<Kris Kowal>
By which I mean I hope to present on behalf of champions and collaborators, not at this plenary, but the next one in July, resources and alignment willing.
04:31
<Kris Kowal>
I invite Luca Casonato and guybedford (Guy Bedford) specifically because of our mutual interest. Talking with Guy yesterday, there’s substantial overlap between the problems that import reflection seeks to solve https://github.com/tc39/proposal-import-reflection, and the solutions that Compartments provide. And, Compartments I believe solve those problems without needing new syntax (relitigating the original import assertions proposal (import as)), relaxing idempotent import, or complicating cache keys.
04:36
<Kris Kowal>
I invite Surma because I believe the Compartments design can help inform the conversation about module blocks. One of our goals with Compartments is to create a clear distinction between a StaticModuleRecord and a ModuleDescriptor, which 262 currently conflates. Separating those concerns makes clear to me at least that we should choose whether a module block is reïfied as a StaticModuleRecord or a ModuleDescriptor, the latter containing the former. If a block is a StaticModuleRecord, that suggests easy portability between workers but doesn’t imply a full module specifier or module metadata.
04:37
<Kris Kowal>
The Compartments API also cleanly separates module specifier namespaces from module metadata, since we find that import.meta.url in particular must be a host-specific extension, and must be omissible in some hosts.
04:37
<Kris Kowal>
I think that position also clarifies our feelings about some of the design tensions we see in module blocks and look forward to discussing that.
04:40
<Kris Kowal>
My hope is to recruit you all to our common cause 🙂