Intent to Implement and Ship: Synthetic Modules

132 views
Skip to first unread message

Daniel Clark

unread,
May 21, 2019, 2:15:48 PM5/21/19
to blin...@chromium.org, Sam Sebree, Travis Leithead, Bo Cupp

Intent to Implement and Ship: Synthetic Modules

Contact emails:

dan...@microsoft.comsase...@microsoft.comtra...@microsoft.compc...@microsoft.comgw...@microsoft.com

Design doc/Spec

Synthetic Modules Design Doc

Synthetic Module Record in Web IDL Spec

TAG Review: This change is a building block for future features (JSON modulesCSS modules, WebIDL Modules…) but has no observable effects of its own. Thus we are skipping TAG review.  Note that there is an in-progress TAG review for JSON modules here.

Summary

We plan to implement Synthetic Module Records, a type of Module Record that will be used by Blink and potentially other V8 embedders to define their own module types that participate in the ES module graph.

Motivation

Synthetic Modules are a building block that will be used to implement other module types like JSON modulesCSS modules, WebIDL Modules, and other built-in module types.

Risks

Interoperability and Compatibility

There is no interoperability or compatibility impact from this change; it is a building block for other future module types but causes no observable web platform behavior changes on its own.

Ergonomics

Module types built with Synthetic Modules are expected to be used in tandem with other module types such as JavaScript Modules. They will share the existing import/export syntax.

Performance will be pay-for-play. Performance of module graphs that include Synthetic-Module-based modules will not be affected. There will be no performance impact outside of the module infrastructure.

Activation

Synthetic Modules on their own will not be observable by developers, as they are simply a building block for other module types.

Debuggability

Debugging support is not applicable here as there is no externally observable behavior. As modules types based on Synthetic Modules are implemented, debugging support for those module types should be included.

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

Yes, the feature will be platform-agnostic.

Link to entry on the feature dashboard

No entry needed; this change on its own has no developer impact.

Requesting approval to ship?

Yes. Synthetic Modules on their own do not result in any observable web platform change; there is currently no way to instantiate them. Thus there is no need to hide anything behind a runtime flag.  When new module types (e.g. JSON modules) are built that plug into Synthetic Modules, we expect that these will be released more gradually with the use of runtime flags etc.

Kouhei Ueno

unread,
May 22, 2019, 6:33:52 PM5/22/19
to Daniel Clark, blin...@chromium.org, Sam Sebree, Travis Leithead, Bo Cupp
non-API-OWNER lgtm. Blink/V8 modules team is on-board with this and excited about this contribution.

I think this is an informative I2I+S (which does not require API OWNER lgtms) since this is an implementation detail and not a user visible feature, but confirmation appreciated.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/MN2PR00MB06376833F4518CA3D91CCA34C5070%40MN2PR00MB0637.namprd00.prod.outlook.com.


--
kouhei

Daniel Bratell

unread,
May 23, 2019, 9:15:57 AM5/23/19
to Daniel Clark, 'Kouhei Ueno' via blink-dev, Kouhei Ueno, Sam Sebree, Travis Leithead, Bo Cupp
Confirmed: If there is no web developer/user visible effect (modulo bugs, don't do bugs), then you don't need any blink api owner shipping approval. It will be up to the code owners to determine if this is the right direction and since they seem to like it I just wish you fair winds!

(Keeping the blink community aware of bigger internal changes is also good so nothing wrong with sending out that information)

/Daniel
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPVAxLWj3diYaQkKm18BTAM5a5otRX%3Doxgh30P%3DrkVS-fVZMuA%40mail.gmail.com.



--
/* Opera Software, Linköping, Sweden: CEST (UTC+2) */
Reply all
Reply to author
Forward
0 new messages