Maxim,

thanks for looking into supporting multiple V8 instances in the same
process.

This is an ambitious project which needs major restructuring in the
code.  Since we are not working in this direction currently, we cannot
take your patch in its current state.  Before making this large
changes to the code, we need to have a clear path for finishing the
work and the work has to be more complete.

We will be happy to provide you with comments and help you move in a
direction where we can eventually accept your patch.  Below I have
listed a number of things that I think we at least need before we can
accept patches that involve this large changes to the V8 code base.

  1) Lots of tests.

     - We need all tests to pass when running with support for
       multiple instances.

     - We need thorough testing of the use of multiple instances of
       V8.  We at least need to pass all the tests when run in
       parallel on multiple instances of V8 in the same process.


  2) Small performance penalty.

     - We need to make sure that the performance penalty when running
       with support for multiple instances is very small.  We need to
       make sure that this is the case both for pure JavaScript
       programs (benchmarks such as V8 benchmark suite and SunSpider)
       and for in-browser performance such as page cyclers and DOM
       manipulation benchmarks.

     - The performance penalty should be so low that we can
       always run with support for multiple instances.  This would
       reduce the number of test configurations for V8.

Other than that, we of course have to iterate on the code to make it
as clean as possible and make sure that we provide the right API for
using multiple V8 instances in the same process.

We will look into the code and provide comments.  Since this is a big
change and a change to fundamental parts of V8 it will take a bit of
time to provide detailed comments.

Thanks again for your work and sorry for the late reply.

-- Mads


On Fri, Nov 27, 2009 at 8:21 PM, <[email protected]> wrote:

> Continuing extraction of static data
> - static data of v8::internal::Top moved to v8::internal::TopData, static
> data
> of top.cc moved to
>   v8::internal::TopPrivateData as instance variables
> - static data of v8::internal::StackGuard moved to v8::internal::StackGuard
> and
> static data of execution.cc moved
>   to v8::internal::StackGuardPrivateData as instance variables
> - static data of v8::internal::RegExpStack and static data of
> regexp-macro-assembler.cc, jsregexp.cc moved to
>   v8::internal::RegExpStackData as instance variables
>
> - static data of v8::internal::Serializer moved to class
> v8::internal::SerializerData, static data of serializer.cc
> (ExternalReferenceTable, SerializationAddressMapper) moved to
> v8::internal::SerializerPrivateData
> - static data of v8::internal::ContextSlotCache moved to
> v8::internal::ContextSlotCacheData
> - HandleScopeImplementer singleton is member of v8::internal::V8Context now
> - Static data of v8::internal::StubCache and v8::internal::CompilationCache
> become instance data of
> v8::internal::StubCacheData and v8::internal::CompilationCachePrivateData
> - All statics of v8::internal::GlobalHandles become instance data of
> v8::internal::GlobalHandlesData
>
>
>
> http://codereview.chromium.org/435003
>
> --
> v8-dev mailing list
> [email protected]
> http://groups.google.com/group/v8-dev
>

-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to