What is d8? Am I on the wrong list? On Tue, Jan 5, 2016 at 2:39 PM, Yang Guo <[email protected]> wrote:
> I agree that we could handle this case more gracefully, but then again, > d8's purpose is testing V8, not for production usage. > > The content of the natives file cannot be generated by d8. You are > confusing it with the startup snapshot. > > Yang > > On Tue, Jan 5, 2016, 22:55 Zac Hansen <[email protected]> wrote: > >> It just seems odd that there's no way to detect them being missing and >> throw an exception that actually gives some information about the problem >> or even regenerate the contents of the file at the cost of startup speed. >> >> --Zac >> >> On Tue, Jan 5, 2016 at 4:40 AM, 'Daniel Vogelheim' via v8-dev < >> [email protected]> wrote: >> >>> Hi, >>> >>> V8 really, really needs its 'natives', so crashing if it doesn't have >>> them is the expected result. The 'natives' are the built-in JS libraries >>> and V8 cannot execute without them. Note that the 'Get started' guide >>> explicitly tells you to copy the natives file. (Step 4 in 'Run the >>> Example'). >>> >>> What used to be different is that by default the 'natives' were linked >>> into the library, so there was no separate file to take care. You can >>> return to this state by compiling with v8_use_external_startup_data=0. >>> >>> If you build with the default settings - 'natives' in an external file - >>> then the embedder is expected to hand the natives to V8, via >>> v8::V8::SetNativesDataBlob. The 'hello world' example does this in the >>> simplest possible way, by telling V8 to load them from the path of the >>> executable (line "V8::InitializeExternalStartupData(argv[0]);"). Presumably >>> a more sophisticated embedder would use a more sophisticated mechanism. >>> >>> Daniel >>> >>> On Tue, Jan 5, 2016 at 9:19 AM, <[email protected]> wrote: >>> >>>> I saw a thread from earlier this year, but I wanted to say it's still >>>> happening: >>>> >>>> https://groups.google.com/forum/#!topic/v8-dev/LxKgBbEHLCE >>>> >>>> If I run the sample code from here >>>> >>>> https://developers.google.com/v8/get_started >>>> >>>> and don't copy natives_blob.bin to the current directory, I get the >>>> following crash when creating an isolate: >>>> >>>> * thread #1: tid = 0xb1c49, 0x0000000100724b6e >>>> h2`v8::internal::NativesCollection<(v8::internal::NativeType)0>::GetScriptSource(int) >>>> [inlined] v8::internal::List<v8::internal::Vector<char const>, >>>> v8::internal::FreeStoreAllocationPolicy>::operator[](i=3) const + 3 at >>>> list.h:69, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS >>>> (code=1, address=0x20) >>>> >>>> * frame #0: 0x0000000100724b6e >>>> h2`v8::internal::NativesCollection<(v8::internal::NativeType)0>::GetScriptSource(int) >>>> [inlined] v8::internal::List<v8::internal::Vector<char const>, >>>> v8::internal::FreeStoreAllocationPolicy>::operator[](i=3) const + 3 at >>>> list.h:69 >>>> >>>> frame #1: 0x0000000100724b6b >>>> h2`v8::internal::NativesCollection<(v8::internal::NativeType)0>::GetScriptSource(int) >>>> [inlined] >>>> v8::internal::NativesStore::GetScriptSource(this=0x0000000000000000, >>>> index=3) at natives-external.cc:41 >>>> >>>> frame #2: 0x0000000100724b6b >>>> h2`v8::internal::NativesCollection<(v8::internal::NativeType)0>::GetScriptSource(index=3) >>>> + 11 at natives-external.cc:213 >>>> >>>> frame #3: 0x00000001004d3bc2 >>>> h2`v8::internal::Deserializer::ReadData(this=0x00007fff5fbff7a8, >>>> current=<unavailable>, limit=0x000034e592019710, source_space=1, >>>> current_object_address="\x89R") + 4802 at serialize.cc:1157 >>>> >>>> frame #4: 0x00000001004d4b97 >>>> h2`v8::internal::Deserializer::ReadObject(this=0x00007fff5fbff7a8, >>>> space_number=1, write_back=0x000034e592019610) + 423 at serialize.cc:825 >>>> >>>> frame #5: 0x00000001004d2bf0 >>>> h2`v8::internal::Deserializer::ReadData(this=0x00007fff5fbff7a8, >>>> current=<unavailable>, limit=0x000034e5920196e8, source_space=1, >>>> current_object_address="\tB") + 752 at serialize.cc:1028 >>>> >>>> frame #6: 0x00000001004d4b97 >>>> h2`v8::internal::Deserializer::ReadObject(this=0x00007fff5fbff7a8, >>>> space_number=1, write_back=0x0000000102801420) + 423 at serialize.cc:825 >>>> >>>> frame #7: 0x00000001004d2bf0 >>>> h2`v8::internal::Deserializer::ReadData(this=0x00007fff5fbff7a8, >>>> current=<unavailable>, limit=0x0000000102801ae8, source_space=0, >>>> current_object_address=0x0000000000000000) + 752 at serialize.cc:1028 >>>> >>>> frame #8: 0x00000001002c2219 >>>> h2`v8::internal::Heap::IterateStrongRoots(this=0x0000000102801020, >>>> v=0x00007fff5fbff7a8, mode=VISIT_ONLY_STRONG) + 41 at heap.cc:4569 >>>> >>>> frame #9: 0x00000001004d204d >>>> h2`v8::internal::Deserializer::Deserialize(this=0x00007fff5fbff7a8, >>>> isolate=<unavailable>) + 253 at serialize.cc:532 >>>> >>>> frame #10: 0x000000010034cf66 >>>> h2`v8::internal::Isolate::Init(this=0x0000000102801000, >>>> des=0x00007fff5fbff7a8) + 4390 at isolate.cc:2201 >>>> >>>> frame #11: 0x00000001004dd0e5 >>>> h2`v8::internal::Snapshot::Initialize(isolate=0x0000000102801000) + 549 at >>>> snapshot-common.cc:58 >>>> >>>> frame #12: 0x0000000100029a24 >>>> h2`v8::Isolate::New(params=<unavailable>) + 308 at api.cc:7139 >>>> >>>> frame #13: 0x000000010000172d h2`main + 157 >>>> >>>> frame #14: 0x00007fff95ffd5ad libdyld.dylib`start + 1 >>>> >>>> frame #15: 0x00007fff95ffd5ad libdyld.dylib`start + 1 >>>> >>>> >>>> Copy in the one file and everything works fine. >>>> >>>> >>>> This is on a completely bog standard build of 4.9.0.0 on os x 10.11.1. >>>> >>>> -- >>>> -- >>>> v8-dev mailing list >>>> [email protected] >>>> http://groups.google.com/group/v8-dev >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "v8-dev" 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. >>>> >>> >>> -- >>> -- >>> v8-dev mailing list >>> [email protected] >>> http://groups.google.com/group/v8-dev >>> --- >>> >> You received this message because you are subscribed to a topic in the >>> Google Groups "v8-dev" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/v8-dev/gaLpAEur4l8/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> >> >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- >> -- >> v8-dev mailing list >> [email protected] >> http://groups.google.com/group/v8-dev >> --- >> You received this message because you are subscribed to the Google Groups >> "v8-dev" 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. >> > -- > -- > v8-dev mailing list > [email protected] > http://groups.google.com/group/v8-dev > --- > You received this message because you are subscribed to a topic in the > Google Groups "v8-dev" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/v8-dev/gaLpAEur4l8/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" 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.
