aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* benchmark: drop all bm_ prefix for legacy driver.rbk0kubun2018-07-10127-0/+0
| | | | | | benchmark/*.rb is only benchmarks now. We don't need prefixes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * properties.svn2018-07-100-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert "benchmark/*.yml: convert from benchmark/bm_*.rb"k0kubun2018-07-10256-3467/+3075
| | | | | | | | | | | | | | | This reverts r63900. Having single-execution benchmark as a normal Ruby script is preferred by ko1. I'm not a big fan of having inconsistent benchmark formats, but I can understand some benefits of it. common.mk: remove obsolsted benchmark-each PHONY declaration, support running Ruby scripts added by this commit. README.md: follow ARGS change git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * properties.svn2018-07-100-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark: resurrect peak / size metricsk0kubun2018-07-105-18/+172
| | | | | | | | | | | | | | by adding runner plugins for them. benchmark/lib/benchmark_driver/runner/peak.rb: added peak runner plugin benchmark/lib/benchmark_driver/runner/size.rb: added size runner plugin common.mk: allow using them benchmark/memory_wrapper.rb: deleted in favor of those runner plugins benchmark/README.md: document them git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Remove redundant code in the compiler.tenderlove2018-07-091-21/+4
| | | | | | | | | | | During instruction translation (linked list -> iseq generation), we can treat `TS_VALUE` and `TS_ISEQ` the same as they are just embedded in the generated sequences. The only difference between `TS_ISE` and `TS_IC` is that an inline storage entry may contain a markable `VALUE` pointer at some point, so we need to flag the iseq as containing markable objects. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Remove test code. ISE generation should not impact write barriertenderlove2018-07-091-1/+0
| | | | | | orz! git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add lldb as a debugger optiontenderlove2018-07-091-0/+6
| | | | | | | | | This adds support for lldb as a debugger so that tests can be run under lldb like this: $ make test-all TESTS=test/some_test.rb RUNRUBYOPT=--debugger=lldb git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix crash when loading iseq from an arraytenderlove2018-07-092-4/+17
| | | | | | | | Objects loaded during iseq deserialization using arrays need to be added to the compile time mark array so that they stay alive until iseqs finish loading. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/README.md: fix -e interface for v0.14 [ci skip]k0kubun2018-07-091-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/driver.rb: fully obsolete thisk0kubun2018-07-093-126/+13
| | | | | | | | | | | | in favor of just using benchmark_driver.gem. common.mk: The new `make benchmark` covers the both usages for old `make benchmark` and old `make benchmark-each`. So `make benchmark-each` is dropped now. benchmark/README.md: Explain its details git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2018-07-10svn2018-07-091-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: upgrade benchmark_driver to v0.14k0kubun2018-07-092-7/+7
| | | | | | | benchmark/driver.rb: deal with breaking changes which are actually introduced for this driver. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Promote irb library to default gems.hsbt2018-07-095-4/+33
| | | | | | | | | * lib/irb/irb.gemspec: init. * lib/irb/version.rb: Set @RELEASE_VERSION value to IRB::VERSION for gemspec. * doc/*.rdoc: Move IRB entry to default gems category. * tool/sync_default_gems.rb: Add irb support. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* file_rename.yml: allow running this on mswin/mingwk0kubun2018-07-091-1/+1
| | | | | | | Suggested by MSP-Grep: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/87883 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* app_pentominio.yml: drop unnecessary preludek0kubun2018-07-091-1/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Don't copy FL_USER* on Kernel#clone. [Bug #14847]ko12018-07-092-2/+35
| | | | | | | | | * object.c (mutable_obj_clone): `Kernel#clone` should not copy FL_USER* flags because they are copied unexpectedly. Unexpected copy will break internal data consistency. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* addr2line.c (kprintf): staticnormal2018-07-091-2/+2
| | | | | | This function is not used outside of addr2line.c git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: codesign ruby-runner toonobu2018-07-092-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.c: fix directory globnobu2018-07-092-4/+27
| | | | | | | | | * dir.c (glob_helper): fix directory glob which resulted in lacking the first byte. adjust the length of basename to be appended as well as removing the heading path, not the length of the joined path. [ruby-dev:50588] [Bug #14899] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* addr2line.c: no need to keep fd around after mmapnormal2018-07-081-6/+2
| | | | | | | | | | | POSIX mmap(3) manpage stipulates mmap bumps the reference count of the file description. Thus keeping a file descriptor to maintain the reference is not necessary. If this didn't work, every extension .so would require a permanent FD, which is obviously not the case. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* range.c: [DOC] small improvementstomar2018-07-081-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/driver.rb: make this more similark0kubun2018-07-081-19/+39
| | | | | | | | | to original benchmark-driver command. I'm going to add some runner plugins to resurrect metrics which were originally supported by benchmark/driver.rb... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/README.md: [ci skip] change syntax highlightk0kubun2018-07-081-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * properties.svn2018-07-080-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/README.md: [ci skip] write documentationk0kubun2018-07-082-1/+50
| | | | | | | | about this directory benchmark/driver.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/driver.rb: drop legacy Ruby script supportk0kubun2018-07-082-57/+13
| | | | | | | | Now all benchmarks are converted to YAMLs. common.mk: Drop obsoleted bm_* pattern git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/app_pentomino.yml: remove original scripts after __END__k0kubun2018-07-081-132/+1
| | | | | | mistakenly left by conversion script... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/*.yml: convert from benchmark/bm_*.rbk0kubun2018-07-08254-3200/+3595
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63900 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/gc: prevent GC bench from depending on normal benchmarkk0kubun2018-07-083-3/+612
| | | | | | | | scripts. This is needed to finish converting Ruby scripts to YAMLs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/vm2_struct_small_aset.yml: unwrap loop_countk0kubun2018-07-081-5/+9
| | | | | | since `i` is involved in this script as well... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/vm2_*.yml: fix ugly conversion errorsk0kubun2018-07-0826-121/+119
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/vm2_*.yml: abstract away the while loopk0kubun2018-07-0839-505/+384
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/vm1_ensure.yml: rollback loop_count abstractionk0kubun2018-07-081-3/+8
| | | | | | | | | | | for now. When measured script is really too fast, while loop substituion may return a negative benchmark result. Probably benchmark_driver.gem has rooms to be improved about this. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/vm1_*.yml: manual fixes for ugly conversionsk0kubun2018-07-089-39/+34
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/vm1_*.yml: abstract away the while loopk0kubun2018-07-0830-335/+241
| | | | | | | | | benchmark/driver.rb had removed the cost for while loop in benchmark/bm_vm1_*.rb, and benchmark_driver.gem can achieve the same thing with `loop_count`. But unfortunately current benchmark_driver.gem can't solve it only for vm1_yield.yml... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark: convert bm_vm2_*.rb to vm2_*.ymlk0kubun2018-07-0876-481/+593
| | | | | | | | | This YAML transformation is needed to support whileloop2 time substituion by benchmark_driver.gem later. This commmit changes no benchmark behavior. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark: convert bm_vm1_*.rb to vm1_*.ymlk0kubun2018-07-0858-322/+402
| | | | | | | | | This YAML transformation is needed to support whileloop time substituion by benchmark_driver.gem later. This commmit changes no benchmark behavior. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2018-07-09svn2018-07-081-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/driver.rb: fix wrong multiline regexpk0kubun2018-07-081-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark: introduce benchmark_driver.gemk0kubun2018-07-0821-564/+506
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makefile.in: Clone benchmark-driver repository in benchmark/benchmark-driver `make update-benchmark-driver`, like simplecov. win32/Makefile.sub: Roughly do the same thing. .gitignore: Ignore the cloned repository. common.mk: Trigger `make update-benchmark-driver` to run `make benchmark` and adjust arguments for benchmark_driver.gem. benchmark/require.yml: renamed from benchmark/bm_require.rb, benchmark/prepare_require.rb benchmark/require_thread.yml: renamed from benchmark/bm_require_thread.rb, benchmark/prepare_require_thread.rb benchmark/so_count_words.yml: renamed from benchmark/bm_so_count_words.rb, benchmark/prepare_so_count_words.rb, benchmark/wc.input.base benchmark/so_k_nucleotide.yml: renamed from benchmark/bm_so_k_nucleotide.rb, benchmark/prepare_so_k_nucleotide.rb, benchmark/make_fasta_output.rb benchmark/so_reverse_complement.yml: renamed from benchmark/bm_so_reverse_complement.rb, benchmark/prepare_so_reverse_complement.rb, benchmark/make_fasta_output.rb I'm sorry but I made some duplications between benchmark/require.yml and benchmark/require_thread.yml, and between benchmark/so_k_nucleotide.yml and benchmark/so_reverse_complement.yml. If you're not comfortable with it, please combine these YAMLs to share the same prelude. One YAML file can have multiple benchmark definitions sharing prelude. benchmark/driver.rb: Replace its core feature with benchmark_driver.gem. Some old features are gone for now, but I'll add them again later. [Misc #14902] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: load prelude on `make benchmark`k0kubun2018-07-081-2/+2
| | | | | | | | | because benchmark/bm_io_nonblock_noex.rb and benchmark/bm_io_nonblock_noex2.rb are using IO#write_nonblock and it's defined in prelude. miniruby can't run the benchmark without prelude. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark: drop legacy benchmark driversk0kubun2018-07-083-233/+0
| | | | | | | | | | | | | It seems like they are all benchmark drivers but "benchmark/driver.rb" is the latest and others are no longer used. It's confusing to have multiple drivers (and actually I used benchmark/run.rb since I didn't know I should use benchmark/driver.rb). As I'm going to support only benchmark/driver.rb features in Misc#14902, let me delete them. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby (*no_hidden_garbage): disable GC and skip if multi-threadednormal2018-07-082-0/+8
| | | | | | | | | | Any single object allocation can reduce object count, and object counts are global, so multi-threading leads to unpredictable results. See also similar commits: r60699 and r62608 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mjit: get rid of memory leak in pause+resume loopnormal2018-07-084-10/+13
| | | | | | | | | | | | | | | | | | pthread_atfork is not idempotent and repeatedly calling it causes it to register the same hook repeatedly; leading to unbound memory growth. Ruby already has a (confusing-named) internal API for to call in the forked child process: rb_thread_atfork Call the MJIT child_after_fork hook inside that to prevent unbound growth with the following loop: loop do RubyVM::MJIT.pause RubyVM::MJIT.resume end git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/git-refresh: skip git fetch and checkoutk0kubun2018-07-081-0/+3
| | | | | | | | | if the tag is already checked out, to optimize the execution time. I'm going to prepare a task depending on this tool, and I want that to finish fast and output nothing when it's already up-to-date. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63883 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/driver.rb: simplify LoadError handlingk0kubun2018-07-081-9/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: drop obsoleted `make tbench`k0kubun2018-07-081-6/+1
| | | | | | | benchmark/bmx_* files haven't existed since r37263 and thus it runs nothing. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_signal.rb: skip ensure if test is skippednormal2018-07-081-1/+1
| | | | | | Thanks to Greg for the fix. [ruby-core:87860] [Bug #14867] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* signal.c: preserve trap(:CHLD, "IGNORE") behavior with SIGCHLDnormal2018-07-084-15/+82
| | | | | | | | | We need to preserve "IGNORE" behavior from Ruby 2.5 and earlier. We can't rely on SA_NOCLDWAIT any more, since we always need system() and MJIT to work; so we fake that behavior using dedicated reaper (currently in timer-thread). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e