On Tue, Nov 12, 2013 at 9:08 AM, Dmitry Lomov <[email protected]> wrote:
> As you probably know, over the course of the last several months, V8
> switched to an in-house implementations of ArrayBuffer, typed arrays and
> DataView. These implementations feature faster allocation, better garbage
> collection performance and a potential to become even faster in the future
> with deep compiler optimizations - they are the finest available.
>
> Before these happy times however, V8 made do with a
> v8::Object::SetIndexedPropertiesToExternalArrayData and a bunch of
> associated APIs (also Get, Has and Length versions of the same), and
> implementations of ArrayBuffer, typed arrays and other similar classes were
> provided by an embedder. However, embedder-provided typed arrays are behind
> us, and internal implementation of typed arrays and associated classes will
> be moving away from the mechanism underlying SetIndexedPropertiesTo* API.
> Supporting both in the long run is a burden on the code base (recall that
> SetIndexedPropertiesTo* API allows turning _any_ JS object into a kind of
> typed array).
>
> Therefore, over a course of the next few months, I plan to deprecate and
> remove the following APIs:
>   void v8::Object::SetIndexedPropertiesToPixelData(uint8_t* data, int
> length);
>   bool v8::Object::HasIndexedPropertiesInPixelData();
>   uint8_t* v8::Object::GetIndexedPropertiesPixelData();
>   int v8::Object::GetIndexedPropertiesPixelDataLength();
>
>   void v8::Object::SetIndexedPropertiesToExternalArrayData(void* data,
>                                                ExternalArrayType array_type,
>                                                int number_of_elements);
>   bool v8::Object::HasIndexedPropertiesInExternalArrayData();
>   void* v8::Object::GetIndexedPropertiesExternalArrayData();
>   ExternalArrayType v8::Object::GetIndexedPropertiesExternalArrayDataType();
>   int v8::Object::GetIndexedPropertiesExternalArrayDataLength();
>
> If you have objections, and know a use case which is not adequately served
> by V8's implementation of typed arrays &c, the time to yell is now.
>
> Cheers,
> Dmitry

That would break node.js completely.  The Buffer class, which
underpins pretty much everything in node.js, is built on top of
v8::Object::SetIndexedPropertiesToExternalArrayData().

I don't see a reasonable way of switching to typed arrays.  Buffers
are not API-compatible with typed arrays and even if they were, the
performance hit of zeroing memory on each allocation would probably
not be acceptable.

-- 
-- 
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/groups/opt_out.

Reply via email to