summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-02-06mjit headers for universal binarynobu
* common.mk (MJIT_HEADER, MJIT_MIN_HEADER): added hook to separate intermediate headers per archs. * defs/gmake.mk: build mjit headers per -arch options, and then merge the headers with `#ifdef`s. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-06Merge RubyGems-2.7.5 from upstream.hsbt
Please see its details: http://blog.rubygems.org/2018/02/06/2.7.5-released.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-06deal with aclocal(1)shyouhei
This commit updates files so that aclocal.m4 generated by aclocal(1) works well with our configure.ac * ac_checking.m4: merged back to configure.ac because aclocal(1) cannot handle this macro. * ruby_append_options.m4: no longer used. * ruby_check_va_copy.m4: define using AC_DEFUN so that aclocal(1) can find this macro. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-06thread_pthread.c: cast inside rb_thread_create_mjit_threadnobu
* thread_pthread.c (rb_thread_create_mjit_thread): cast worker_func pointer to void pointer inside. adjusted to the declaration in mjit.c and the definition in thread_win32.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-06mjit.c: use ruby_strdup as get_stringnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-06common.mk: ARCH_FLAG to mjit headersnobu
* common.mk (rb_mjit_header.h, rb_mjit_min_header.h): $(ARCH_FLAG) is necessary to compile for non-default architecture, e.g., 32bit build on 64bit platform. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05mjit.c: fix MinGW warning by r62221k0kubun
mjit.c: In function 'worker': mjit.c:126:64: warning: passing argument 1 of '_InterlockedExchangePointer' from incompatible pointer type [-Wincompatible-pointer-types] # define MJIT_ATOMIC_SET(var, val) InterlockedExchangePointer(&(var), val) ^ mjit.c:828:17: note: in expansion of macro 'MJIT_ATOMIC_SET' MJIT_ATOMIC_SET(node->unit->iseq->body->jit_func, func); ^ In file included from C:/msys64/mingw64/x86_64-w64-mingw32/include/winnt.h:27:0, from C:/msys64/mingw64/x86_64-w64-mingw32/include/minwindef.h:163, from C:/msys64/mingw64/x86_64-w64-mingw32/include/windef.h:8, from C:/msys64/mingw64/x86_64-w64-mingw32/include/windows.h:69, from C:/msys64/mingw64/x86_64-w64-mingw32/include/winsock2.h:23, from ./include/ruby/win32.h:41, from ./include/ruby/defines.h:250, from ./include/ruby/ruby.h:29, from ./include/ruby.h:33, from internal.h:15, from mjit.c:76: C:/msys64/mingw64/x86_64-w64-mingw32/include/psdk_inc/intrin-impl.h:1420:7: note: expected 'void * volatile*' but argument is of type 'VALUE (**)(struct rb_execution_context_struct *, struct rb_control_frame_struct *) {aka long long unsigned int (**)(struct rb_execution_context_struct *, struct rb_control_frame_struct *)}' void *_InterlockedExchangePointer(void *volatile *Target,void *Value) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05mjit.c: determine prefix of MJIT header at runtimek0kubun
so that MJIT can work if Ruby is distributed as prebuilt binary. Now mjit_init() depends on the internal const TMP_RUBY_PREFIX which is only available after ruby_init_loadpath_safe() (L1608) and before ruby_init_prelude() (L1681). So the place of mjit_init() is moved. Makefile.in: Removed static prefix from MJIT_HEADER_ISNTALL_DIR macro. And this removes the unused LIBRUBY_LIBDIR macro as well. win32/Makefile.sub: ditto. Patch by: Lars Kanis <lars@greiz-reinsdorf.de> [Bug #14445] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05vm_insnhelper.c: prefix rb_ to simple_iseq_pk0kubun
which is started to be used by mjit_compile.c in r62197. Related to r62235, this intends to transform the function to static. Of course we shouldn't pollute the namespace anyway. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05* 2018-02-06svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05transform_mjit_header.rb: restrict transformationk0kubun
to whitelisted patterns. This fix is for NetBSD. [Bug #14439] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05transform_mjit_header.rb: same command after errornobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05tool/downloader.rb: retry SocketErrork0kubun
I would like to stabilize RubyCI. https://rubyci.org/logs/rubyci.s3.amazonaws.com/fedora26/ruby-trunk/log/20180205T123003Z.fail.html.gz downloading did_you_mean-1.2.0.gem ... /home/hsbt/chkbuild/tmp/build/20180205T123003Z/tmp/ruby-snapshot20180205-23226-3201ha/ruby-2.6.0-r62226/tool/downloader.rb:212:in `rescue in download': failed to download did_you_mean-1.2.0.gem (RuntimeError) SocketError: Failed to open TCP connection to rubygems.org:443 (getaddrinfo: Name or service not known): https://rubygems.org/downloads/did_you_mean-1.2.0.gem from /home/hsbt/chkbuild/tmp/build/20180205T123003Z/tmp/ruby-snapshot20180205-23226-3201ha/ruby-2.6.0-r62226/tool/downloader.rb:123:in `download' from /home/hsbt/chkbuild/tmp/build/20180205T123003Z/tmp/ruby-snapshot20180205-23226-3201ha/ruby-2.6.0-r62226/tool/downloader.rb:66:in `download' from -e:4:in `<main>' make[1]: *** [Makefile:1685: update-gems] Error 1 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05mjit.c: prefer using --jit-cc=clang if __clang__k0kubun
is defined. This is basically for OpenBSD. Failure on using the compiler which is not used for Ruby compilation is not supported. [Bug #14440] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05Fix undefined behaviorkazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05Fix a typo [ci skip]kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05mjit.c: try changing the order of includesk0kubun
Hoping to fix the AIX's build failure like: In file included from ./include/ruby/defines.h:139:0, from ./include/ruby/ruby.h:29, from ./include/ruby.h:33, from internal.h:15, from mjit.c:81: /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/4.8.1/include-fixed/unistd.h:939:14: error: conflicting types for 'ftruncate64' extern int ftruncate64(int, off64_t); ^ In file included from ./include/ruby/defines.h:139:0, from ./include/ruby/ruby.h:29, from ./include/ruby.h:33, from internal.h:15, from mjit.c:81: /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/4.8.1/include-fixed/unistd.h:937:14: note: previous declaration of 'ftruncate64' was here extern int ftruncate(int, off_t); ^ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05transform_mjit_header.rb: check initial codek0kubun
separating the macros. Applying the kept macros to code which is already affected by the macros may cause errors in initial code. This is hopefully the final fix for icc build failure. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05transform_mjit_header.rb: remove predefined macrosk0kubun
semi-automatically. This is basically for icc's __DATE__, __TIME__, and many other families. It causes an error by predefined macro redefinition. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05need shell's escape instead of M4's.shyouhei
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05Makefile.sub: va_copy in old versionnobu
* win32/Makefile.sub: va_copy is available since VS12 (VC 18.00). simple copy same as VC1 19.00. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05transform_mjit_header.rb: no extra CRsnobu
* tool/transform_mjit_header.rb (MJITHeader.check_code!): open temporary file in binary mode too, not to include extra CRs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05assigning void* to a function pointer is a POSIXismshyouhei
No implicit cast is defined between these types. Should be explicit. Also, NULL is defined to be ((void*)0) so not usable as a function pointer value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05va_copy is a C99ismshyouhei
Should provide appropriate fallback implementation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05comma at the end of enum is a C99ismshyouhei
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05vcs.rb: no meaningless splatnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05vcs.rb: for old rubynobu
* tool/vcs.rb (DebugSystem#system): pop option hash for old version ruby which does not support `system` options. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05transform_mjit_header.rb: take program name from $0nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05transform_mjit_header.rb: read/write in binmodenobu
* tool/transform_mjit_header.rb: read and write as ASCII-8BIT to make single-byte-optimizable always. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05transform_mjit_header.rb: separate macro and codenobu
* tool/transform_mjit_header.rb (separate_macro_and_code): return macro and code separately as the name, and concat before output. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05transform_mjit_header.rb: scan by regexpnobu
* tool/transform_mjit_header.rb (find_decl): scan by regexp instead of char-by-char loop. return nil when finished. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-05Use system option instead of shell redirectkazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04mjit.c: define __EXTENSIONS__ earlierk0kubun
Another try of r62204 and r62192. As far as I can see from solaris's signal.h and sys/procset.h, the only possibility that causes the following error would be that sys/procset.h is included without __EXTENSIONS__ and signal.h included it again but it doesn't define procset_t. Let's define __EXTENSIONS__ from first. --- In file included from vm_core.h:87:0, from mjit.c:85: /usr/include/signal.h:77:29: error: unknown type name 'procset_t' extern int sigsendset(const procset_t *, int); ^ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04MINIRUBY dependencynobu
* common.mk ($(MJIT_MIN_HEADER)): add dependency for $(MINIRUBY). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04use MINIRUBYnobu
* common.mk ($(MJIT_MIN_HEADER)): use $(MINIRUBY) at build time. $(BASERUBY) may not be available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04common.mk: CPPOUTFLAGnobu
* common.mk (rb_mjit_header.h): use $(CPPOUTFLAG). * win32/Makefile.sub (CPPOUTFLAG): needs -Fi to let cl.exe name preprocessed file, instead of -Fo. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62208 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04* 2018-02-05svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04common.mk: use vm.i as the temporary filenamek0kubun
because `cl -P vm.c` always produces vm.i regardless of -o XXX and currently mswin build is failing. Fixing r62202. If this commit does not work, I'll revert this and r62202. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04transform_mjit_header.rb: refactor messages and exitnobu
* tool/transform_mjit_header.rb: print non-error messages to STDOUT instead of STDERR. exit with false or abort instead of exit 1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04mjit.c: another try for fixing solaris buildk0kubun
Reverted r62192 and added another try. I prepared Solaris environment but I couldn't reproduce the RubyCI build failure. So I'm testing on trunk. I found the following article and it fixed the same problem with passing `-D__EXTENSIONS__`. So this commit defines `__EXTENSIONS__` for Solaris. https://bitbucket.org/ged/ruby-pg/issues/236/compile-error-usr-include-signalh-92-1 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04common.mk: phony target mjit-headersnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04common.mk: rb_mjit_header.hnobu
* common.mk (rb_mjit_header.h): moved from Makefile.in and win32/Makefile.sub. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04Makefile.sub: CFLAGS_NO_ARCHnobu
* win32/Makefile.sub: split CFLAGS into CFLAGS_NO_ARCH and ARCH_FLAG, as well as Makefile.in. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04vm.c: feedback control frame size changek0kubun
to VM_ASSERT. r62197 is adding bp. I'll try to remove bp, but let's pass CI which enables assertion. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04match whole wordnobu
* tool/transform_mjit_header.rb: add word boundary anchors and match whole word to get rid of false `static` declarations, e.g., rb_str_new_static. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04Fix typos and remove redundant `/#{}/`kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04mjit_compile.c: merge initial JIT compilerk0kubun
which has been developed by Takashi Kokubun <takashikkbn@gmail> as YARV-MJIT. Many of its bugs are fixed by wanabe <s.wanabe@gmail.com>. This JIT compiler is designed to be a safe migration path to introduce JIT compiler to MRI. So this commit does not include any bytecode changes or dynamic instruction modifications, which are done in original MJIT. This commit even strips off some aggressive optimizations from YARV-MJIT, and thus it's slower than YARV-MJIT too. But it's still fairly faster than Ruby 2.5 in some benchmarks (attached below). Note that this JIT compiler passes `make test`, `make test-all`, `make test-spec` without JIT, and even with JIT. Not only it's perfectly safe with JIT disabled because it does not replace VM instructions unlike MJIT, but also with JIT enabled it stably runs Ruby applications including Rails applications. I'm expecting this version as just "initial" JIT compiler. I have many optimization ideas which are skipped for initial merging, and you may easily replace this JIT compiler with a faster one by just replacing mjit_compile.c. `mjit_compile` interface is designed for the purpose. common.mk: update dependencies for mjit_compile.c. internal.h: declare `rb_vm_insn_addr2insn` for MJIT. vm.c: exclude some definitions if `-DMJIT_HEADER` is provided to compiler. This avoids to include some functions which take a long time to compile, e.g. vm_exec_core. Some of the purpose is achieved in transform_mjit_header.rb (see `IGNORED_FUNCTIONS`) but others are manually resolved for now. Load mjit_helper.h for MJIT header. mjit_helper.h: New. This is a file used only by JIT-ed code. I'll refactor `mjit_call_cfunc` later. vm_eval.c: add some #ifdef switches to skip compiling some functions like Init_vm_eval. win32/mkexports.rb: export thread/ec functions, which are used by MJIT. include/ruby/defines.h: add MJIT_FUNC_EXPORTED macro alis to clarify that a function is exported only for MJIT. array.c: export a function used by MJIT. bignum.c: ditto. class.c: ditto. compile.c: ditto. error.c: ditto. gc.c: ditto. hash.c: ditto. iseq.c: ditto. numeric.c: ditto. object.c: ditto. proc.c: ditto. re.c: ditto. st.c: ditto. string.c: ditto. thread.c: ditto. variable.c: ditto. vm_backtrace.c: ditto. vm_insnhelper.c: ditto. vm_method.c: ditto. I would like to improve maintainability of function exports, but I believe this way is acceptable as initial merging if we clarify the new exports are for MJIT (so that we can use them as TODO list to fix) and add unit tests to detect unresolved symbols. I'll add unit tests of JIT compilations in succeeding commits. Author: Takashi Kokubun <takashikkbn@gmail.com> Contributor: wanabe <s.wanabe@gmail.com> Part of [Feature #14235] --- * Known issues * Code generated by gcc is faster than clang. The benchmark may be worse in macOS. Following benchmark result is provided by gcc w/ Linux. * Performance is decreased when Google Chrome is running * JIT can work on MinGW, but it doesn't improve performance at least in short running benchmark. * Currently it doesn't perform well with Rails. We'll try to fix this before release. --- * Benchmark reslts Benchmarked with: Intel 4.0GHz i7-4790K with 16GB memory under x86-64 Ubuntu 8 Cores - 2.0.0-p0: Ruby 2.0.0-p0 - r62186: Ruby trunk (early 2.6.0), before MJIT changes - JIT off: On this commit, but without `--jit` option - JIT on: On this commit, and with `--jit` option ** Optcarrot fps Benchmark: https://github.com/mame/optcarrot | |2.0.0-p0 |r62186 |JIT off |JIT on | |:--------|:--------|:--------|:--------|:--------| |fps |37.32 |51.46 |51.31 |58.88 | |vs 2.0.0 |1.00x |1.38x |1.37x |1.58x | ** MJIT benchmarks Benchmark: https://github.com/benchmark-driver/mjit-benchmarks (Original: https://github.com/vnmakarov/ruby/tree/rtl_mjit_branch/MJIT-benchmarks) | |2.0.0-p0 |r62186 |JIT off |JIT on | |:----------|:--------|:--------|:--------|:--------| |aread |1.00 |1.09 |1.07 |2.19 | |aref |1.00 |1.13 |1.11 |2.22 | |aset |1.00 |1.50 |1.45 |2.64 | |awrite |1.00 |1.17 |1.13 |2.20 | |call |1.00 |1.29 |1.26 |2.02 | |const2 |1.00 |1.10 |1.10 |2.19 | |const |1.00 |1.11 |1.10 |2.19 | |fannk |1.00 |1.04 |1.02 |1.00 | |fib |1.00 |1.32 |1.31 |1.84 | |ivread |1.00 |1.13 |1.12 |2.43 | |ivwrite |1.00 |1.23 |1.21 |2.40 | |mandelbrot |1.00 |1.13 |1.16 |1.28 | |meteor |1.00 |2.97 |2.92 |3.17 | |nbody |1.00 |1.17 |1.15 |1.49 | |nest-ntimes|1.00 |1.22 |1.20 |1.39 | |nest-while |1.00 |1.10 |1.10 |1.37 | |norm |1.00 |1.18 |1.16 |1.24 | |nsvb |1.00 |1.16 |1.16 |1.17 | |red-black |1.00 |1.02 |0.99 |1.12 | |sieve |1.00 |1.30 |1.28 |1.62 | |trees |1.00 |1.14 |1.13 |1.19 | |while |1.00 |1.12 |1.11 |2.41 | ** Discourse's script/bench.rb Benchmark: https://github.com/discourse/discourse/blob/v1.8.7/script/bench.rb NOTE: Rails performance was somehow a little degraded with JIT for now. We should fix this. (At least I know opt_aref is performing badly in JIT and I have an idea to fix it. Please wait for the fix.) *** JIT off Your Results: (note for timings- percentile is first, duration is second in millisecs) categories_admin: 50: 17 75: 18 90: 22 99: 29 home_admin: 50: 21 75: 21 90: 27 99: 40 topic_admin: 50: 17 75: 18 90: 22 99: 32 categories: 50: 35 75: 41 90: 43 99: 77 home: 50: 39 75: 46 90: 49 99: 95 topic: 50: 46 75: 52 90: 56 99: 101 *** JIT on Your Results: (note for timings- percentile is first, duration is second in millisecs) categories_admin: 50: 19 75: 21 90: 25 99: 33 home_admin: 50: 24 75: 26 90: 30 99: 35 topic_admin: 50: 19 75: 20 90: 25 99: 30 categories: 50: 40 75: 44 90: 48 99: 76 home: 50: 42 75: 48 90: 51 99: 89 topic: 50: 49 75: 55 90: 58 99: 99 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04Makefile.in: use CFLAGS_NO_ARCH for cppk0kubun
Using $(CFLAGS) breaks the build when multiple `-arch` options are given. Then we should omit arch flags. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04common.mk: MJIT_MIN_HEADERnobu
* common.mk ($(MJIT_MIN_HEADER)): moved duplicate recipe from Makefile.in and win32/Makefile.sub. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-04use ifchange tool for rb_mjit_header.hnobu
* Makefile.in, win32/Makefile.sub (rb_mjit_header.h): use ifchange tool. cmp command is not available on Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e