From: Eric Wong Date: 2018-07-05T21:14:25+00:00 Subject: [ruby-core:87821] Re: [Ruby trunk Bug#14867] Process.wait can wait for MJIT compiler process Greg.mpls@gmail.com wrote: > @normalperson > > Thanks for the patch, I added it, and a build with r63859 locked/froze on test-all. I���m going to see if I can get any more info by building/testing locally. I���m surprised and wondering if something reverted wasn���t re-applied, as ruby-loco should be completing test-all with MJIT tests failing��� > > One question ��� would the config portion of a ruby-loco build be helpful for you to see? I can attach it as a text file��� Maybe, just about any text info helps. Just to reiterate, "make test" (not "test-all") passes? Do you get any output at all from test-all? That would be most useful. Perhaps use "TESTS=-v" in the env for test-all to get more verbose output as to which test it's stuck on ("make test-all TESTS=-v") It's a major accessibility problem for Appveyor to require JS to view plain text :< Can you get them to fix it? The patch below should dump out more info about the system which might help me diagnose it. If the "ruby" executable builds, it should run and show some info we care about for this issue: You can also download the patch at: https://80x24.org/spew/20180705204805.7670-1-e@80x24.org/raw Usage: ./ruby --jit -e exit Output (on GNU/Linux): process.c: sigchld=17 getpid.size=4 rb_pid_t.size=4 mjit.c: sigchld=17 getpid.size=4 pid_t.size=4 mjit.c: !_WIN32 !__MINGW32__ !__MINGW64__ !__CYGWIN__ I expect at least some of those '!' to be gone on your system. ``` diff --git a/mjit.c b/mjit.c index 232424fa5d..07221fc714 100644 --- a/mjit.c +++ b/mjit.c @@ -1503,6 +1503,31 @@ mjit_init(struct mjit_options *opts) rb_id_table_foreach(RCLASS_CONST_TBL(rb_cObject), valid_class_serials_add_i, NULL); } + fprintf(stderr, "mjit.c: sigchld=%d getpid.size=%"PRIuSIZE" pid_t.size=%"PRIuSIZE"\n", + RUBY_SIGCHLD, sizeof(getpid()), sizeof(pid_t)); + fprintf(stderr, "mjit.c: %s %s %s %s\n", +#if defined(_WIN32) + "_WIN32", +#else + "!_WIN32", +#endif +#if defined(__MINGW32__) + "__MINGW32__", +#else + "!__MINGW32__", +#endif +#if defined(__MINGW64__) + "__MINGW64__", +#else + "!__MINGW64__", +#endif +#if defined(__CYGWIN__) + "__CYGWIN__" +#else + "!__CYGWIN__" +#endif + ); /* fprintf */ + /* Overwrites RUBY_DESCRIPTION constant */ rb_const_remove(rb_cObject, rb_intern("RUBY_DESCRIPTION")); rb_description = rb_usascii_str_new_static(ruby_description_with_jit, strlen(ruby_description_with_jit)); diff --git a/process.c b/process.c index 12cceba934..9c98c20b3e 100644 --- a/process.c +++ b/process.c @@ -8318,4 +8318,7 @@ Init_process(void) id_exception = rb_intern("exception"); InitVM(process); + + fprintf(stderr, "process.c: sigchld=%d getpid.size=%"PRIuSIZE" rb_pid_t.size=%"PRIuSIZE"\n", + RUBY_SIGCHLD, sizeof(getpid()), sizeof(rb_pid_t)); } ``` Unsubscribe: