On Tue, Nov 12, 2013 at 10:15 AM, Ben Noordhuis <i...@bnoordhuis.nl> wrote:
> On Tue, Nov 12, 2013 at 9:08 AM, Dmitry Lomov <dslo...@chromium.org> > 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. > You can always emulate non-zeroing-out memory behavior by using v8::ArrayBuffer::New(void*, size_t) . What are the API incompatibilities? > > -- > -- > v8-users mailing list > v8-users@googlegroups.com > 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 v8-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > -- -- v8-users mailing list v8-users@googlegroups.com 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 v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.