Hi Domenic, Jochen and Yang,

this sounds really cool. Can you please add a link to an accessible design 
documentation? Collaboration will be much easier via GDocs.

Thanks,
Michael

On Monday, May 11, 2015 at 7:52:25 PM UTC+2, Domenic Denicola wrote:
>
> Over the last two weeks we’ve been working on a new feature designed for 
> V8 embedders, called “V8 extras.” The intent is to allow embedders to write 
> self-hosted (i.e. JavaScript) implementations of various features, with 
> more power and less drawbacks than the existing V8 extensions mechanism. 
> Notably, we are building on top of recent snapshotting work to ensure that 
> the code for V8 extras is included in the snapshot, and so should not have 
> negative impact on context startup time.
>
> You can see a working, albeit in-progress, example of a V8 extra in this 
> CL <https://codereview.chromium.org/1118673002>, which uses them to 
> implement readable streams from the Streams Standard. General features on 
> display include:
>
>    - The inclusion of the extras via the v8_extra_library_files GYP 
>    variable
>    - The use of V8 native functions, such as %CreatePrivateOwnSymbol, in 
>    the .js files (but see below)
>    - The use of the extrasExports object to export functions and values 
>    to the embedder. This object can be accessed through the V8 C++ API with 
>    v8::Context::GetExtrasExportsObject().
>
> There are a number of changes we’re still working on implementing before 
> we could comfortably say that this feature is ready:
>
>    - We do not want to allow extras direct access to V8 native functions, 
>    but instead only to a small number of pre-specified ones. The details on 
>    how to do this are still being worked out, but it will probably involve a 
>    slight change to the authoring format of the extras files, to become e.g. 
>    script whose completion value is a function that gets such a utility 
> object 
>    passed in.
>    - We need a story for segregating “experimental” extras from shipping 
>    ones, similar to what is being done in V8 already for harmony features. 
>    Experimental extras cannot live in the snapshot, since they must be able 
> to 
>    be turned off at runtime, while shipping ones will be compiled in.
>    - We eventually want to expose an easy way for the embedder to supply 
>    functions or values to the extras code. This is not actually needed for 
>    streams, but for example if we were to implement something like 
> TextEncoder 
>    or URL as an extra, it would be crucial.
>
> Overall though, we are quite excited about the possibilities this opens 
> up, by allowing embedders a performant way to implement features in 
> JavaScript.
>
> Best,
>
> Domenic Denicola
> Jochen Eisinger
> Yang Guo
>

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to