aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* oops [ci skip]卜部昌平2019-09-151-1/+1
| | | | Fixing typo. It seems I failed to press the shift key.
* Comment lines can be placed between fluent dot nowNobuyoshi Nakada2019-09-153-0/+13
|
* Refine Timezone fixtureNobuyoshi Nakada2019-09-153-18/+39
|
* Try to fetch commits notes to the source tree automaticallyNobuyoshi Nakada2019-09-151-4/+3
| | | | [Bug #16167]
* rb_scan_args_count_lead: use arguments instead of magic numbersNobuyoshi Nakada2019-09-151-5/+7
|
* make-snapshot: no merge commits in ChangeLogNobuyoshi Nakada2019-09-151-1/+1
| | | | | | Parents commit hashs in logs of merge commits are abbreviated to necessary length depending on the repositories. Exclude merge commits from ChangeLog to make it stable.
* make-snapshot: export ChangeLog from srcdirNobuyoshi Nakada2019-09-152-5/+2
|
* Issue a warning if invalid kw_splat is passed to *_kw functionJeremy Evans2019-09-141-0/+6
| | | | | | This should only happen if the API is misused. It's much better to warn here and fix the problem, versus to try to debug TypeErrors or segfaults later.
* * 2019-09-15 [ci skip]git2019-09-151-1/+1
|
* make-snapshot: deprecated -exported option [Bug #16167]Nobuyoshi Nakada2019-09-151-51/+46
|
* Continue to export even if no notes/commitsNobuyoshi Nakada2019-09-141-1/+3
| | | | | Just exporting may not imply exporting ChangeLog which needs notes/commits. [Bug #16167]
* [ruby/io-console] Added `intr:` option to IO#rawNobuyoshi Nakada2019-09-141-1/+24
| | | | | | Enters raw-mode but enable interrupts. https://github.com/ruby/io-console/commit/7cba76561a
* Keep the reference of imemo while argv may be usedTakashi Kokubun2019-09-141-13/+25
| | | | | To prevent the `v` reference from being eliminated before argv is used, calling `rb_free_tmp_buffer` against `v` explicitly.
* Fixed one-off errorNobuyoshi Nakada2019-09-141-1/+1
| | | | Needs another room to append an empty hash.
* Update news regarding `Fiber#raise`.Samuel Williams2019-09-141-0/+7
|
* Fix memory leak when adding empty keyword hashesJeremy Evans2019-09-141-2/+3
| | | | | | | nagachika pointed out that ALLOC_N is actually just malloc, so this memory wasn't being freed. This shouldn't be a performance sensitive code path, and will be going away after 2.7, so just allocate a temp buffer that will be freed later by Ruby GC.
* Only set RB_PASS_CALLED_KEYWORDS in C functions called directly from RubyJeremy Evans2019-09-147-19/+77
| | | | | | | | | | | It is not safe to set this in C functions that can be called from other C functions, as in the non argument-delegation case, you can end up calling a Ruby method with a flag indicating keywords are set without passing keywords. Introduce some new *_kw functions that take a kw_splat flag and use these functions to set RB_PASS_CALLED_KEYWORDS in places where we know we are delegating methods (e.g. Class#new, Method#call)
* * remove trailing spaces. [ci skip]git2019-09-141-1/+1
|
* Consolidate empty keyword handlingJeremy Evans2019-09-136-32/+34
| | | | | | | | | | | | | | | | | | | | | | Remove rb_add_empty_keyword, and instead of calling that every place you need to add empty keyword hashes, run that code in a single static function in vm_eval.c. Add 4 defines to include/ruby/ruby.h, these are to be used as int kw_splat values when calling the various rb_*_kw functions: RB_NO_KEYWORDS :: Do not pass keywords RB_PASS_KEYWORDS :: Pass final argument (which should be hash) as keywords RB_PASS_EMPTY_KEYWORDS :: Add an empty hash to arguments and pass as keywords RB_PASS_CALLED_KEYWORDS :: Passes same keyword type as current method was called with (for method delegation) rb_empty_keyword_given_p needs to stay. It is required if argument delegation is done but delayed to a later point, which Enumerator does. Use RB_PASS_CALLED_KEYWORDS in rb_call_super to correctly delegate keyword arguments to super method.
* Correctly handle keywords for Method#call for cfuncs, send, and attr_*Jeremy Evans2019-09-132-4/+589
| | | | | | | | | This sets the correct VM frame flags when using Method#call to call funcs, and handles empty keyword hashes for cfuncs, attr_reader, and attr_writer. It also fixes calls to send through Method#call. It adds tests for all of those, as well as tests for using Method#call to call define_method, lambda, and sym_procs (which didn't require code changes).
* The stdlib readline should raise Interrupt when pressing C-caycabta2019-09-141-2/+1
|
* * 2019-09-14 [ci skip]git2019-09-141-1/+1
|
* Revert "Use IO#getch to read one char in raw mode"aycabta2019-09-141-3/+8
| | | | This reverts commit 805b0a481132938638dbd32830cf5dca3910efb1.
* Revert "Use IO#getbyte"aycabta2019-09-141-1/+1
| | | | This reverts commit 685f12bbca50ff9b7a16b3016b3b8b3f2ac8b796.
* Revert "Support multibyte input"aycabta2019-09-141-2/+1
| | | | This reverts commit 6d9e54816f828983bcf383ce6fce287bd3ca05b9.
* Name dynamically defined methods with line numbersNobuyoshi Nakada2019-09-131-35/+35
|
* Moved ruby_node_name declaration to node.hNobuyoshi Nakada2019-09-132-1/+1
|
* introduce IBF_(MAJOR|MINOR)_VERSION.Koichi Sasada2019-09-131-5/+13
| | | | | | | | | | | | | RubyVM::InstructionSequence.to_binary generates a bytecode binary representation. To check compatibility with binary and loading MRI we prepared major/minor version and compare them at loading time. However, development version of MRI can change this format but we can not increment minor version to make them consistent with Ruby's major/minor versions. To solve this issue, we introduce new minor version scheme (binary's minor_version = ruby's minor * 10000 + dev ver) and we can check incompatibility with older dev version.
* Dump some informationKazuhiro NISHIYAMA2019-09-131-0/+26
|
* * 2019-09-13 [ci skip]git2019-09-131-1/+1
|
* Upgrade benchmark_driver to v0.15.5Takashi Kokubun2019-09-131-1/+1
| | | | Fixed new Struct-related keyword argument warnings
* Document and test Enumerator.produceAkinori MUSHA2019-09-122-0/+67
| | | | Co-authored-by: Victor Shepelev <zverok.offline@gmail.com>
* Implement Enumerator.produce [Feature #14781]Akinori MUSHA2019-09-121-1/+156
|
* Moved coverage.yml to https://github.com/ruby/actions [ci skip]Kazuhiro NISHIYAMA2019-09-121-55/+0
|
* Make NODE_ARYPTN layout consistent between Ripper and ASTAaron Patterson2019-09-111-5/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We are seeing SEGVs in CI: http://ci.rvm.jp/results/trunk-gc-asserts@ruby-sky1/2253563 This is happening because Ripper constructs AST nodes differently than parse.y normally does. Specifically in this case Ripper is assigning 3 `VALUE` objects: https://github.com/ruby/ruby/blob/1febb6f4a14f7222c6d30250bfdc252d34238187/parse.y#L757-L761 Where parse.y will normally assign other things: https://github.com/ruby/ruby/blob/1febb6f4a14f7222c6d30250bfdc252d34238187/parse.y#L11258-L11260 The important one is the last one, the `struct rb_ary_pattern_info`. The mark function assumed that `NODE_ARYPTN` have a pointer to `struct rb_ary_pattern_info`, and used it: https://github.com/ruby/ruby/blob/1febb6f4a14f7222c6d30250bfdc252d34238187/node.c#L1269-L1274 In the case of Ripper, `NODE_ARYPTN` doesn't point to an `rb_ary_pattern_info`, so the mark function would SEGV. This commit changes Ripper so that its `NODE_ARYPTN` nodes also point at an `rb_ary_pattern_info`, and the mark function can continue with the same assumption.
* Avoid rehashing keys in transform_valuesJohn Hawthorn2019-09-111-7/+17
| | | | | | | | Previously, calling transform_values would call rb_hash_aset for each key, needing to rehash it and look up its location. Instead, we can use rb_hash_stlike_foreach_with_replace to replace the values as we iterate without rehashing the keys.
* Make sure WB executes after object is reachableAaron Patterson2019-09-111-1/+1
|
* * 2019-09-12 [ci skip]git2019-09-121-1/+1
|
* Emit missing keyword argument separation warnings for define_methodJeremy Evans2019-09-112-8/+46
| | | | | | | | | Previously, the warning functions skipped warning in these cases. This removes the skipping, and uses a less descriptive warning instead. This affected both last argument to keyword warnings and keyword split warnings.
* Moved doxygen.yml to https://github.com/ruby/actions [ci skip]Kazuhiro NISHIYAMA2019-09-111-48/+0
|
* Fixed the function signature to rb_rescue2Nobuyoshi Nakada2019-09-111-1/+2
|
* Made a short-circuit expression w/o result into an `if`-statementNobuyoshi Nakada2019-09-111-1/+1
|
* &$$->nd_lit is uninitialized at this point卜部昌平2019-09-111-2/+2
| | | | See also https://travis-ci.org/ruby/ruby/jobs/583031687#L1874
* Add `--no-progress` to `aws s3` [ci skip]Kazuhiro NISHIYAMA2019-09-112-3/+3
| | | | | https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html > --no-progress (boolean) File transfer progress is not displayed. This flag is only applied when the quiet and only-show-errors flags are not provided.
* Macros can't be expressions, so make a functionAaron Patterson2019-09-102-6/+18
| | | | | | Macros can't be expressions, that is a GNU extension (I didn't know that). This commit converts the macro to a function so that everything will compile correctly on non-GNU compatible compilers.
* WB needs to be executed after object is reachableAaron Patterson2019-09-102-5/+10
|
* * 2019-09-11 [ci skip]git2019-09-111-1/+1
|
* `NODE_MATCH` needs to be marked / allocated from marking bucketAaron Patterson2019-09-101-1/+3
| | | | Fixes a test in RubySpec
* [ruby/io-console] Suppress yet another warning on WindowsNobuyoshi Nakada2019-09-101-1/+1
| | | | https://github.com/ruby/io-console/commit/4e17c90788
* [ruby/io-console] Suppress warnings on WindowsNobuyoshi Nakada2019-09-101-3/+4
| | | | | | About unused variables and a function. https://github.com/ruby/io-console/commit/32baf54e7a