summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-06-06rb_vm_insn_addr2insn: use st to perform addr2insn mappingnormal
The current VM_INSTRUCTION_SIZE is 198, so the linear search painful during a major GC phase. I noticed rb_vm_insn_addr2insn2 showing up at the top of some profiles while working on some malloc-related stuff, so I decided to attack it. Most notably, the benchmark/bm_vm3_gc.rb improves by over 40%: https://80x24.org/spew/20180602220554.GA9991@whir/raw [ruby-core:87361] [Feature #14814] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-06mjit.c: unify wording between comments and variablesk0kubun
Some comments say "stop", others say "finish". I'm going to add code which dynamically stops MJIT worker, rather than finishing it forever. So I'm thinking `stop` is more appropreate for it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-06math.c: adjust cbrtnobu
* math.c (math_cbrt): refine the approximation result on boundary values by an iteration of Newton-Raphson method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-06Use `Net::HTTPClientException` instead of `Net::HTTPServerException`naruse
`Net::HTTPServerException` has been deprecated since r63590. [Bug #14688] And `net/http/responses.rb` uses the deprecated constant, so Ruby warns of the deprecation. Example: ```bash $ ruby -r net/http -e '' /home/pocke/.rbenv/versions/trunk/lib/ruby/2.6.0/net/http/responses.rb:22: warning: constant Net::HTTPServerException is deprecated ``` This change suppresses the warning. From: Masataka Pocke Kuwabara <kuwabara@pocke.me> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-06Add Net::HTTPClientException [Bug #14688]naruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-06fix r63587naruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-06fix r63587 with temporal patch to pass the tests. please re-fix it.ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-06Introduce write_timeout to Net::HTTP [Feature #13396]naruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-06ast.c: Change tabs to spacesyui-knk
* ast.c: I created a new C source code file with tabs and spaces mixed format by mistake. Currently we move to spaces only. Surely we agreed not to batch update. But ast.c is a new source code. So please forgive me to change the format before many changes are committed this file. I'm sorry about my mistake. ref [Bug #14246] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-06test/io/console/test_io_console.rb: fix for systems where PTY is not definednormal
[ruby-core:87420] [Bug #14828] Thanks-to: MSP-Greg (Greg L) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05test/lib/jit_support.rb: spelling: s/skiped/skipped/normal
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05test/io/console/test_io_console.rb: ignore TTOU on FreeBSDnormal
I'm not entirely sure why, but SIGTTOU pauses the test when running test-all in parallel. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05encoding.c: remove rb_gc_mark_encodingsnormal
rb_gc_mark_encodings has been empty for a decade (since r17875 / 28b216ac45262819f8bc7be0b1417a707974f94b). Just remove it and its only caller in gc.c git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05test/dtrace/helper.rb: support systemtap in dtrace testsnormal
For the current cases, a few string substitions is enough to make dtrace(1) scripts work with stap(1). For more complex scripts (maybe in the future), we may pass a hash with implementation-specific scripts. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05test/dtrace: enable Tracepoint for function callsnormal
Since [Feature #14104], "trace" instructions are no longer emitted by default, so we must enable them explicitly for function tracing to work. [ruby-core:85965] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05test/dtrace/test_method_cache.rb: avoid spewing too muchnormal
Don't output method cache clearing at startup since it causes dtrace to drop output and break the test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05test/dtrace/test_array_create.rb: require line numbernormal
Nowadays we create empty arrays in the parse/compile phase which gave us lineno==0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05test/dtrace/helper: fix check for minirubynormal
RbConfig::TOPDIR points to my installation prefix on my FreeBSD and GNU/Linux systems, so there's no way miniruby exists, there. In case we don't have miniruby, --disable=gems anyways to reduce dtrace overhead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05io.c: fix compilation when IOV_MAX is not definednormal
GNU/Hurd has writev(2) but does not define IOV_MAX [ruby-core:87417] [Bug #14827] Reported-by: Paul Sonnenschein git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05gc.c: reduce parameters for gc_start and garbage_collectnormal
Every time I look at gc.c, I get confused by argument ordering: gc_start(..., TRUE, TRUE, FALSE, ...) gc_start(..., FALSE, FALSE, FALSE, ... ) While we do not have kwargs in C, we can use flags to improve readability: gc_start(..., GPR_FLAG_FULL_MARK | GPR_FLAG_IMMEDIATE_MARK | GPR_FLAG_IMMEDIATE_SWEEP | ...) [ruby-core:87311] [Misc #14798] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05* 2018-06-06svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05gc.c: reduce #ifdefs around GC_ENABLE_*normal
We may add gc_*_continue calls in a few more places, and adding more #ifdefs around those is ugly. For now, this makes the heap_prepare function look better. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05include/ruby/missing.h: defined(__cplusplus) before using __cplusplusngoto
* include/ruby/missing.h (isinf, isnan): For non-C++ programs, defined(__cplusplus) may be needed before using __cplusplus. [Bug #14816] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05`int isnan(double)` is a POSIXismshyouhei
- `isnan` is something relatively new. We need to provide one for those systems without it. However: - X/Open defines `int isnan(double)`. Note the `int`. - C99 defines `isnan(x)` to be a macro. - C++11 nukes them all, undefines all the "masking macro"s, and defines its own `bool isnan(double)`. Note the `bool`. - In C++, `int isnan(double)` and `bool isnan(double)` are incompatible. - So the mess. [Bug #14816][ruby-core:87364] further reading: https://developers.redhat.com/blog/2016/02/29/why-cstdlib-is-more-complicated-than-you-might-think/ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05test_ast.rb: Add test cases of heredoc columnsyui-knk
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05gc.c: zero check for malloc_limit_max to initializationnormal
Repeatedly checking for malloc_limit_max in gc_reset_malloc_info is unnecessary, check and set it once during initialization in ruby_gc_set_params to simplify the hotter path * gc.c (gc_reset_malloc_info): remove zero check (ruby_gc_set_params): treat malloc_limit_max==0 as SIZE_MAX git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05Move a test fileyui-knk
* test/-ext-/ast/test_ast.rb: This test file has not depended C extension since r63534, so move to 'test/ruby/'. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-04* 2018-06-05svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-04String#uminus dedupes unconditionallynormal
[Feature #14478] [ruby-core:85669] Thanks-to: Sam Saffron <sam.saffron@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-03* 2018-06-04svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-03benchmark/driver.rb: add CPU time measurement targetsnormal
"Real" time is too unstable on my systems, hopefully counting only CPU time can gain more reliable benchmark results. [ruby-core:87362] [Feature #14815] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-03* properties.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-03Add TracePoint#parametersmame
It can be used to get the parameters' information of method and block. There was no way to get block parameters. It was possible but ineffective to get method parameters via Method object: `tp.defined_class.method(tp.method_id).parameters` TracePoint#parameters allows us to get the information easily. [Feature #14694] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02* 2018-06-03svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02Promote Prime library to default gems.hsbt
* Its upstream is https://github.com/ruby/prime. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63560 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02Promote Logger to default gems.hsbt
* Its upstream is https://github.com/ruby/logger. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02Fixed wrong variable name.hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02gmake.mk: update in the source directory properlynobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02* properties.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02Added test for default gems validation.hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02enum.c: bignum counternobu
* enum.c (imemo_count_up, imemo_count_value): promote the counter value to a bignum on overflow. [Bug #14805] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02Fixed wrong require pathhsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02Promote REXML to default gems.hsbt
* upstream repostiory is https://github.com/ruby/rexml git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02enum.c: mitigate overflowsnobu
* enum.c (enum_count): convert counters to Integer as unsigned long, instead of long, to mitigate overflows. [ruby-core:87348] [Bug #14805] * enum.c (ary_inject_op): ditto. * enum.c (each_with_index_i): ditto, instead of int. * enum.c (find_index_i, find_index_iter_i): ditto, instead of unsigned int. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02Promote RSS library to default gems.hsbt
Its upstream was moved to https://github.com/ruby/rss. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-02memo->u3.cnt is long not int [Bug #14805]naruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-01Initialize condattr_monotonic via pthread_condattr_initnormal
Some operating systems will work without calling pthread_condattr_init, but some won't (such as OpenBSD). Prior to r63238, pthread_condattr_init was always called before calling pthread_condattr_setclock. From: Jeremy Evans <code@jeremyevans.net> [ruby-core:87345] [Ruby trunk Bug#14807] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-01* 2018-06-02svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-01gc.c: reduce size slightly by making MEMOP_TYPE_MALLOC zeronormal
Most (if not all) architectures have instructions for comparing against zero, allowing compilers to generate more compact code. Other MEMOP_TYPE_* enum values are not compared in hot paths, but MEMOP_TYPE_MALLOC is checked in objspace_malloc_increase text data bss dec hex filename 84088 264 3664 88016 157d0 gc-before.o 83784 264 3664 87712 156a0 gc.o git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-01Added missing dependency for ast.c.hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e