aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Let memory sizes of the various IMEMO object types be reflected correctlyLourens Naudé2019-07-234-8/+61
| | | | | | [Feature #15805] Closes: https://github.com/ruby/ruby/pull/2140
* Added the upstream repositories to default gems.Hiroshi SHIBATA2019-07-231-0/+16
|
* reline is default gems now.Hiroshi SHIBATA2019-07-231-2/+2
|
* Removed duplicated entry for racc.Hiroshi SHIBATA2019-07-231-4/+2
|
* Document BasicObject does not implement #object_id and #send [ci skip]Jeremy Evans2019-07-222-0/+4
| | | | Fixes [Bug #10422]
* Document encoding of string returned by Regexp.quote [ci skip]Jeremy Evans2019-07-221-2/+2
| | | | | | | | | Also, remove documentation about returning self, which makes no sense as self would be the Regexp class. It could be interpreted as return the argument if no changes were made, but that hasn't been the behavior at least since 1.8.7 (and probably before). Fixes [Bug #10239]
* Adjust documentation for Kernel#raise [ci skip]Jeremy Evans2019-07-221-14/+14
| | | | | | | Mention how each of the arguments are retrievable from the generated Exception object. Fixes [Bug #10110]
* Split test/ripper/test_files.rb to run in parallelNobuyoshi Nakada2019-07-237-18/+56
|
* Stop packing rb_method_definition_tNobuyoshi Nakada2019-07-231-2/+3
| | | | By using `BITFIELD`, `type` field should not be forced to align.
* * 2019-07-23git2019-07-231-1/+1
|
* Fix documentation for Array#pack m directive count specifier [ci skip]Jeremy Evans2019-07-221-1/+3
| | | | Fixes [Bug #10025]
* Allways fetch the latest commit from default gems repository.Hiroshi SHIBATA2019-07-221-1/+1
|
* constify again.Koichi Sasada2019-07-225-23/+23
| | | | | | | | | | | | | | | | | | | | Same as last commit, make some fields `const`. include/ruby/ruby.h: * Rasic::klass * RArray::heap::aux::shared_root * RRegexp::src internal.h: * rb_classext_struct::origin_, redefined_class * vm_svar::cref_or_me, lastline, backref, others * vm_throw_data::throw_obj * vm_ifunc::data * MEMO::v1, v2, u3::value While modifying this patch, I found write-barrier miss on rb_classext_struct::redefined_class. Also vm_throw_data::throw_state is only `int` so change the type.
* [ruby/date] Describe what is meant by valid in the Date.valid_date? rdocJeremy Evans2019-07-221-0/+3
| | | | https://github.com/ruby/date/commit/8eca79d1f0
* constify RHash::ifnone.Koichi Sasada2019-07-222-2/+2
| | | | | | | RHash::ifnone should be protected by write-barriers so this field should be const. However, to introduce GC.compact, the const was removed. This commit revert this removing `const` and modify gc.c `TYPED_UPDATE_IF_MOVED` to remove `const` forcely by a type cast.
* Fixed exception messageNobuyoshi Nakada2019-07-221-1/+1
|
* Only the first argument can be --test-target-dir optionNobuyoshi Nakada2019-07-222-13/+11
| | | | | Raise the proper exception when that option is not given but non-option argument is.
* Update rake-12.3.3.Hiroshi SHIBATA2019-07-221-1/+1
|
* * 2019-07-22git2019-07-221-1/+1
|
* Run test-tool in the order of the testsNobuyoshi Nakada2019-07-221-2/+2
|
* common.mk: `make check` now includes `make test-tool`Yusuke Endoh2019-07-211-4/+3
| | | | | | | | | | | | | And `make test-tool` includes `make test-testframework`. This change may be arguable because I'm unsure who is an intended user of `make check`: a normal user, or Ruby-core developer. Normal users don't have to run `make test-tool` for testing their installation, but Ruby committers should run it before they commit anything. In this case, I'd be conservative; `make check` includes `test-tool`. If normal users often report a failure of `make test-tool`, then we can consider to split `make check` for two sets of target users.
* tool/test/runner.rb: support --test-target-dir optionYusuke Endoh2019-07-214-49/+20
| | | | | | | | | | | tool/test/runner.rb had been copied from test/runner.rb. test/runner.rb was for `make test-all`, and tool/test/runner.rb was for `make test-testframework` and `make test-tool`. But I want to avoid the code clones. This change makes tool/test/runner.rb support --test-target-dir option which allows tool/test/runner.rb to run `make test-all`. Now we can remove test/runner.rb.
* * 2019-07-21git2019-07-211-1/+1
|
* Update simplecov and doclie to the latest version.Hiroshi SHIBATA2019-07-211-2/+2
|
* Move travis coroutine check to cron only.Samuel Williams2019-07-201-2/+2
|
* --debug was not functional eitherTakashi Kokubun2019-07-201-1/+1
| | | | | | Even after 19d592dc82a31adf0bb6f027392cae69615c2394, the retry seems not functional. Let's just add --debug from the beginning because an output of each step is collapsed and we don't see `make up` output so often.
* file.c: add a NORETURN declaration for statx_notimplementYusuke Endoh2019-07-201-0/+2
| | | | clang complains the lack.
* Explain what's benchmark/lib/load.rb [ci skip]Takashi Kokubun2019-07-201-0/+16
| | | | I'm actually not using this, but ko1 is.
* Upgrade benchmark-driver.gem againTakashi Kokubun2019-07-201-1/+1
| | | | | | because v0.14.18 was actually not working with `make run`. In `make run`, `Gem` is defined but `Gem::Version` isn't. v0.14.19 checks `defined?(Gem::Version)` instead of `defined?(Gem)`.
* Upgrade benchmark-driver.gem versionTakashi Kokubun2019-07-201-1/+1
| | | | | This is to make `make run` with benchmark/lib/load.rb work for ko1 https://github.com/benchmark-driver/benchmark-driver/compare/v0.14.17...v0.14.18
* array.c: factor out a complex condition of assertYusuke Endoh2019-07-201-2/+8
| | | | | | | | | | | ARY_SHARED_P and ARY_EMBED_P included: assert(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), The two predicate macros are used in many other assert conditions, which caused memory bloat during C compilation. This change factors out the assertion above to a function. Now gcc consumes 160 MB instead of 250 MB to compile array.c.
* Only disable GC around reference updatingAaron Patterson2019-07-191-2/+3
| | | | | This is the only place that can change the size of the object id tables and cause a GC.
* Document use of ensure and else at method level [ci skip]Jeremy Evans2019-07-191-0/+22
|
* Remove section on performance advantage of not using a block parameter [ci skip]Jeremy Evans2019-07-191-5/+0
| | | | | Improvements in Ruby 2.5 and 2.6 make this section no longer accurate.
* Remove mention of Proc.new with implicit block [ci skip]Jeremy Evans2019-07-191-4/+0
| | | | This support is now deprecated and will be removed in Ruby 3.
* Document evaluation order of arguments [ci skip]Jeremy Evans2019-07-191-0/+19
| | | | Fixes [Misc #8905]
* Document required keyword argument syntax [ci skip]Jeremy Evans2019-07-191-0/+11
| | | | Fixes [Bug #8952]
* * 2019-07-20git2019-07-201-1/+1
|
* Some keywords, "true", "false", and "nil" should be treated as a variableaycabta2019-07-201-1/+1
|
* array.c: use assert in macro instead of in a functionYusuke Endoh2019-07-191-7/+7
| | | | | The old code lost information of lineno. Now, an assertion error will output a correct lineno (but now gcc 8 requires 250 MB, unfortunately).
* array.c: factor out `assert(RB_TYPE_P(ary, T_ARRAY))` to a functionYusuke Endoh2019-07-191-4/+10
| | | | | | | The assertion blows up gcc 8 by consuming approx. 1.8 GB memory. This change reduces the amount of memory required to about 200 MB. A follow-up of ae750799c1b28b06d02e50cd26450b9903516526.
* Add documentation to `fiber_pool_allocate_memory`.Samuel Williams2019-07-191-0/+7
|
* Fix 32-bit build and typo.Samuel Williams2019-07-191-2/+2
| | | | | "Therefore, `fiber_pool_stack_free(&vacancy->stack)` can do the wrong thing..." should be "... `fiber_pool_stack_free(stack)` ...".
* Ensure that madvise does not clobber vacancy data.Samuel Williams2019-07-191-5/+19
| | | | | | | | | After calling `fiber_pool_vacancy_reset`, `vacancy->stack` and `stack` are no longer in sync. Therefore, `fiber_pool_stack_free(&vacancy->stack)` can do the wrong thing and clobber the vacancy data. Additionally, when testing using VM_CHECK_MODE > 0, use MADV_DONTNEED if possible, to catch issues w.r.t. clobbered vacancy data earlier.
* fix debug counter for Hash counts.Koichi Sasada2019-07-192-12/+12
| | | | | | | | | | | | | | | | | | | Change debug_counters for Hash object counts: * obj_hash_under4 (1-3) -> obj_hash_1_4 (1-4) * obj_hash_ge4 (4-7) -> obj_hash_5_8 (5-8) * obj_hash_ge8 (>=8) -> obj_hash_g8 (> 8) For example on rdoc benchmark: [RUBY_DEBUG_COUNTER] obj_hash_empty 554,900 [RUBY_DEBUG_COUNTER] obj_hash_under4 572,998 [RUBY_DEBUG_COUNTER] obj_hash_ge4 1,825 [RUBY_DEBUG_COUNTER] obj_hash_ge8 2,344 [RUBY_DEBUG_COUNTER] obj_hash_empty 553,097 [RUBY_DEBUG_COUNTER] obj_hash_1_4 571,880 [RUBY_DEBUG_COUNTER] obj_hash_5_8 982 [RUBY_DEBUG_COUNTER] obj_hash_g8 2,189
* Use FL_TEST_RAW() to check flags.Koichi Sasada2019-07-191-10/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FL_TEST() uses FL_ABLE() which test data types. However, in array.c we don't need to check it (all of them should be T_ARRAY), so I changed from FL_TEST() to FL_TEST_RAW() which does not check FL_ABLE(). Instead of FL_ABLE(), add assertion to check given object is a T_ARRAY object. For example, rb_ary_free() becomes slim: with FL_TEST(): 0000000000006a30 <rb_ary_free>: 6a30: 40 f6 c7 07 test $0x7,%dil 6a34: 48 8b 07 mov (%rdi),%rax 6a37: 75 09 jne 6a42 <rb_ary_free+0x12> 6a39: 48 f7 c7 f7 ff ff ff test $0xfffffffffffffff7,%rdi 6a40: 75 1e jne 6a60 <rb_ary_free+0x30> 6a42: a9 00 00 00 02 test $0x2000000,%eax 6a47: 74 07 je 6a50 <rb_ary_free+0x20> 6a49: f3 c3 repz retq 6a4b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 6a50: 48 8b 7f 20 mov 0x20(%rdi),%rdi 6a54: e9 00 00 00 00 jmpq 6a59 <rb_ary_free+0x29> 6a59: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 6a60: 89 c2 mov %eax,%edx 6a62: 83 e2 1f and $0x1f,%edx 6a65: 83 fa 1b cmp $0x1b,%edx 6a68: 74 d8 je 6a42 <rb_ary_free+0x12> 6a6a: f6 c4 60 test $0x60,%ah 6a6d: 74 d3 je 6a42 <rb_ary_free+0x12> 6a6f: eb d8 jmp 6a49 <rb_ary_free+0x19>``` with FL_TEST_RAW(): 0000000000006a30 <rb_ary_free>: 6a30: 48 f7 07 00 60 00 02 testq $0x2006000,(%rdi) 6a37: 74 07 je 6a40 <rb_ary_free+0x10> 6a39: f3 c3 repz retq 6a3b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 6a40: 48 8b 7f 20 mov 0x20(%rdi),%rdi 6a44: e9 00 00 00 00 jmpq 6a49 <rb_ary_free+0x19>
* * expand tabs.git2019-07-192-20/+20
|
* fix shared array terminology.Koichi Sasada2019-07-194-57/+75
| | | | | | | | | | | | | | | | | | Shared arrays created by Array#dup and so on points a shared_root object to manage lifetime of Array buffer. However, sometimes shared_root is called only shared so it is confusing. So I fixed these wording "shared" to "shared_root". * RArray::heap::aux::shared -> RArray::heap::aux::shared_root * ARY_SHARED() -> ARY_SHARED_ROOT() * ARY_SHARED_NUM() -> ARY_SHARED_ROOT_REFCNT() Also, add some debug_counters to count shared array objects. * ary_shared_create: shared ary by Array#dup and so on. * ary_shared: finished in shard. * ary_shared_root_occupied: shared_root but has only 1 refcnt. The number (ary_shared - ary_shared_root_occupied) is meaningful.
* In some situations, `vm_stack` can be NULL, but `cfp` is valid.Samuel Williams2019-07-191-4/+0
|
* Add assertions to `coroutine_initialize_main`.Samuel Williams2019-07-191-2/+3
|