Thanks Igor! I followed your suggestion to test `tools/dev/gm.py x64.optdebug.check` on macOS 13. However, I got some warnings, such as: In file included from ../../src/compiler/turboshaft/wasm-optimize-phase.cc:8: ../../src/compiler/turboshaft/branch-elimination-reducer.h:348:28: error: variable 'cond' set but not used [-Werror,-Wunused-but-set-variable] 348 | if (const PhiOp* cond = __ input_graph() | ^ So I have to add treat_warnings_as_errors=false to continue, finally, I still see some tests failed:
[2971/2971] LINK ./cctest # "/Users/xxx/.pyenv/versions/3.9.14/bin/python3" tools/run-tests.py --outdir=out/x64.optdebug unittests intl debugger mjsunit message cctest Build found: /Users/xxx/Downloads/v8env/v8/v8/out/x64.optdebug >>> Autodetected: DEBUG_defined, arch="x64", atomic_object_field_writes, clang, code_comments, component_build, concurrent_marking, current_cpu="x64", debug_code, debugging_features, disassembler, gdbjit, has_maglev, has_turbofan, has_webassembly, i18n, js_shared_memory, pointer_compression, pointer_compression_shared_cage, runtime_call_stats, sandbox, shared_ro_heap, target_cpu="x64", v8_current_cpu="x64", v8_target_cpu="x64", verify_heap >>> Running tests for x64.debug >>> Running with test processors === intl/general/case-mapping === /Users/xxx/Downloads/v8env/v8/v8/test/intl/assert.js:105: Error: Failure: expected <ΑΟΫΩ>, found <ΑΟΫΩ>. throw new Error(message); ^ Error: Failure: expected <ΑΟΫΩ>, found <ΑΟΫΩ>. at fail (/Users/xxx/Downloads/v8env/v8/v8/test/intl/assert.js:105:9) at assertEquals (/Users/xxx/Downloads/v8env/v8/v8/test/intl/assert.js:114:5) at /Users/xxx/Downloads/v8env/v8/v8/test/intl/general/case-mapping.js:149:1 Command: out/x64.optdebug/d8 --test test/intl/assert.js test/intl/utils.js test/intl/general/case-mapping.js --random-seed=257871742 --nohard-abort --verify-heap --testing-d8-test-runner --allow-natives-syntax --- FAILED --- [582:16|% 96|+ 18733|- 1]: Done >>> 19349 base tests produced 18734 (96%) non-filtered tests >>> 18734 tests ran Error! - V8 compilation finished with errors Actually, I want to build* a **debug version of **libv8_monolith.a with 12.3.219 version*, since the release version of *libv8_monolith.a* has no issue with the Hello World sample. So what I did: 1. sync the 12.3.219 code and cd v8. 2. ./tools/dev/v8gen.py x64.debug -- 'enable_iterator_debugging=false *v8_monolithic=true* v8_enable_i18n_support=false *is_debug=tru*e *v8_use_external_startup_data=false* *use_custom_libcxx=false is_component_build=false* treat_warnings_as_errors=false v8_symbol_level=0 v8_enable_pointer_compression=false' 3. ninja -C ./out.gn/x64.debug v8_monolith -j 32 4. g++ samples/hello-world.cc -o hello-world \ -I. -I./include \ -L./out/x64.optdebug/obj -lv8_monolith -lv8_libbase -lv8_libplatform -ldl \ -std=c++17 -pthread -std=c++17 -DV8_COMPRESS_POINTERS -DV8_ENABLE_SANDBOX -fno-rtti -g 5. ./hello-world Then the same crash occurs when v8::Isolate::Scope::~Scope(). Could you please help to check my steps and any mistakes? thanks in advance. Best Regards, Tommy 在2024年5月4日星期六 UTC+8 00:22:21<ish...@google.com> 写道: > I tried exactly the V8 version you mentioned (12.3.219) and I tried it > with your GN args too. All good. > > On Fri, May 3, 2024 at 5:34 PM dong tommy <tommy.d...@gmail.com> wrote: > >> Hi ish..., may I know which version of v8 you are using? >> >> 在2024年5月3日星期五 UTC+8 23:14:05<ish...@google.com> 写道: >> >>> Hello, >>> >>> I tried to build both the original HelloWorld and the one with your >>> modifications on Linux and on MacOS. No crashes. >>> Something must be wrong with your build environment. >>> Maybe try to clean the build dir and start from scratch using a more >>> standard set of gn args: `tools/dev/gm.py x64.optdebug.check` (it'll build >>> v8 and run tests). >>> >>> >>> On Fri, May 3, 2024 at 2:31 AM dong tommy <tommy.d...@gmail.com> wrote: >>> >>>> >>>> Even without any change for Hello World, I still get the below crash >>>> when exiting with v8 12.3.x: >>>> >>>> * thread #1, queue = 'com.apple.main-thread', stop reason = >>>> EXC_BAD_ACCESS (code=EXC_I386_GPFLT) >>>> * frame #0: 0x00000001003b2ad0 >>>> hello-world`v8::internal::Isolate::Exit(this=0x0000000100000001) at >>>> isolate.cc:5060:3 [opt] >>>> frame #1: 0x0000000100004e08 >>>> hello-world`v8::Isolate::Scope::~Scope() + 24 >>>> frame #2: 0x0000000100004c25 >>>> hello-world`v8::Isolate::Scope::~Scope() + 21 >>>> frame #3: 0x0000000100004907 hello-world`main + 1607 >>>> frame #4: 0x00007ff804d2941f dyld`start + 1903 >>>> >>>> 在2024年5月3日星期五 UTC+8 07:57:13<dong tommy> 写道: >>>> >>>>> The args are: >>>>> 'is_debug = true', >>>>> 'enable_iterator_debugging = true', >>>>> 'symbol_level = 1', >>>>> 'target_cpu = "x64"', >>>>> 'is_component_build = false', >>>>> 'is_chrome_branded = false', >>>>> 'treat_warnings_as_errors = false', >>>>> 'is_clang = true', >>>>> 'use_glib = false', >>>>> 'use_custom_libcxx = false', >>>>> 'use_custom_libcxx_for_host = false', >>>>> 'optimize_for_size = false', >>>>> 'v8_monolithic = true', >>>>> 'v8_static_library = true', >>>>> 'v8_use_external_startup_data = false', >>>>> 'v8_enable_i18n_support = false', >>>>> 'v8_enable_webassembly = false', >>>>> 'v8_enable_lite_mode = true', >>>>> 'v8_enable_snapshot_compression = true', >>>>> 'exclude_unwind_tables = true', >>>>> 'v8_enable_verify_heap = false' >>>>> >>>>> >>>>> >>>>> 在2024年5月3日星期五 UTC+8 07:48:53<dong tommy> 写道: >>>>> >>>>>> Hi Experts, >>>>>> >>>>>> I added a v8::EscapableHandleScope case and tested the below Hello >>>>>> World code( >>>>>> https://raw.githubusercontent.com/v8/v8/12.3.219/samples/hello-world.cc) >>>>>> for the V8 engine(https://github.com/v8/v8) and found that it works >>>>>> well with v8 11.x.x version. However, it crashed or aborted with v8 >>>>>> 12.3.x >>>>>> version in GetObjectTemplate. Does anyone have any idea about that >>>>>> issue? >>>>>> or any mistake I made? Thanks! >>>>>> >>>>>> >>>>>> https://stackoverflow.com/questions/78420822/check-failed-on-escapablehandlescopeescape >>>>>> >>>>>> void Test(v8::Local<v8::Name> name, >>>>>> const v8::PropertyCallbackInfo<v8::Value>& info) { >>>>>> } >>>>>> >>>>>> v8::Local<v8::ObjectTemplate> GetObjectTemplate(v8::Isolate* isolate) >>>>>> { >>>>>> v8::EscapableHandleScope handle_scope(isolate); >>>>>> v8::Local<v8::ObjectTemplate> result = >>>>>> v8::ObjectTemplate::New(isolate); >>>>>> result->SetInternalFieldCount(1); >>>>>> result->SetHandler(v8::NamedPropertyHandlerConfiguration(Test)); >>>>>> return handle_scope.Escape(result); >>>>>> } >>>>>> >>>>>> int main(int argc, char* argv[]) { >>>>>> // Initialize V8. >>>>>> v8::V8::InitializeICUDefaultLocation(argv[0]); >>>>>> v8::V8::InitializeExternalStartupData(argv[0]); >>>>>> std::unique_ptr<v8::Platform> platform = >>>>>> v8::platform::NewDefaultPlatform(); >>>>>> v8::V8::InitializePlatform(platform.get()); >>>>>> v8::V8::Initialize(); >>>>>> >>>>>> // Create a new Isolate and make it the current one. >>>>>> v8::Isolate::CreateParams create_params; >>>>>> create_params.array_buffer_allocator = >>>>>> v8::ArrayBuffer::Allocator::NewDefaultAllocator(); >>>>>> v8::Isolate* isolate = v8::Isolate::New(create_params); >>>>>> { >>>>>> v8::Isolate::Scope isolate_scope(isolate); >>>>>> >>>>>> // Create a stack-allocated handle scope. >>>>>> v8::HandleScope handle_scope(isolate); >>>>>> >>>>>> v8::Local<v8::ObjectTemplate> global = >>>>>> GetObjectTemplate(isolate); // aborted here >>>>>> >>>>> -- >>>> -- >>>> v8-users mailing list >>>> v8-u...@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+u...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/v8-users/f011e3ee-ef58-46d1-a1eb-3d7dee6ad4aen%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/v8-users/f011e3ee-ef58-46d1-a1eb-3d7dee6ad4aen%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> >>> >>> -- >>> >>> Igor Sheludko >>> >>> Software Engineer >>> >>> ish...@google.com >>> >>> >>> Google Germany GmbH >>> >>> Erika-Mann-Straße 33 >>> >>> 80636 München >>> >>> >>> Geschäftsführer: Paul Manicle, Liana Sebastian >>> >>> Registergericht und -nummer: Hamburg, HRB 86891 >>> >>> Sitz der Gesellschaft: Hamburg >>> >>> >>> Diese E-Mail ist vertraulich. Falls sie diese fälschlicherweise erhalten >>> haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter, >>> löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte wissen, >>> dass die E-Mail an die falsche Person gesendet wurde. >>> >>> >>> >>> This e-mail is confidential. If you received this communication by >>> mistake, please don't forward it to anyone else, please erase all copies >>> and attachments, and please let me know that it has gone to the wrong >>> person. >>> >>> >>> >>> >>> -- >> -- >> v8-users mailing list >> v8-u...@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+u...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/v8-users/d6698ead-7662-43e8-ab0b-928f211519e5n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/v8-users/d6698ead-7662-43e8-ab0b-928f211519e5n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > > > -- > > Igor Sheludko > > Software Engineer > > ish...@google.com > > > Google Germany GmbH > > Erika-Mann-Straße 33 > > 80636 München > > > Geschäftsführer: Paul Manicle, Liana Sebastian > > Registergericht und -nummer: Hamburg, HRB 86891 > > Sitz der Gesellschaft: Hamburg > > > Diese E-Mail ist vertraulich. Falls sie diese fälschlicherweise erhalten > haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter, > löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte wissen, > dass die E-Mail an die falsche Person gesendet wurde. > > > > This e-mail is confidential. If you received this communication by > mistake, please don't forward it to anyone else, please erase all copies > and attachments, and please let me know that it has gone to the wrong > person. > > > > > -- -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/969a4f45-44c3-43a7-9361-04db676f7869n%40googlegroups.com.