summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-09-15rb_scan_args_count_lead: use arguments instead of magic numbersNobuyoshi Nakada
2019-09-15make-snapshot: no merge commits in ChangeLogNobuyoshi Nakada
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.
2019-09-15make-snapshot: export ChangeLog from srcdirNobuyoshi Nakada
2019-09-14Issue a warning if invalid kw_splat is passed to *_kw functionJeremy Evans
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* 2019-09-15 [ci skip]git
2019-09-15make-snapshot: deprecated -exported option [Bug #16167]Nobuyoshi Nakada
2019-09-14Continue to export even if no notes/commitsNobuyoshi Nakada
Just exporting may not imply exporting ChangeLog which needs notes/commits. [Bug #16167]
2019-09-14[ruby/io-console] Added `intr:` option to IO#rawNobuyoshi Nakada
Enters raw-mode but enable interrupts. https://github.com/ruby/io-console/commit/7cba76561a Notes: Merged: https://github.com/ruby/ruby/pull/2459
2019-09-14Keep the reference of imemo while argv may be usedTakashi Kokubun
To prevent the `v` reference from being eliminated before argv is used, calling `rb_free_tmp_buffer` against `v` explicitly.
2019-09-14Fixed one-off errorNobuyoshi Nakada
Needs another room to append an empty hash.
2019-09-14Update news regarding `Fiber#raise`.Samuel Williams
2019-09-14Fix memory leak when adding empty keyword hashesJeremy Evans
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.
2019-09-14Only set RB_PASS_CALLED_KEYWORDS in C functions called directly from RubyJeremy Evans
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)
2019-09-14* remove trailing spaces. [ci skip]git
2019-09-13Consolidate empty keyword handlingJeremy Evans
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.
2019-09-13Correctly handle keywords for Method#call for cfuncs, send, and attr_*Jeremy Evans
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).
2019-09-14The stdlib readline should raise Interrupt when pressing C-caycabta
2019-09-14* 2019-09-14 [ci skip]git
2019-09-14Revert "Use IO#getch to read one char in raw mode"aycabta
This reverts commit 805b0a481132938638dbd32830cf5dca3910efb1.
2019-09-14Revert "Use IO#getbyte"aycabta
This reverts commit 685f12bbca50ff9b7a16b3016b3b8b3f2ac8b796.
2019-09-14Revert "Support multibyte input"aycabta
This reverts commit 6d9e54816f828983bcf383ce6fce287bd3ca05b9.
2019-09-13Name dynamically defined methods with line numbersNobuyoshi Nakada
2019-09-13Moved ruby_node_name declaration to node.hNobuyoshi Nakada
2019-09-13introduce IBF_(MAJOR|MINOR)_VERSION.Koichi Sasada
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.
2019-09-13Dump some informationKazuhiro NISHIYAMA
Notes: Merged: https://github.com/ruby/ruby/pull/2457
2019-09-13* 2019-09-13 [ci skip]git
2019-09-13Upgrade benchmark_driver to v0.15.5Takashi Kokubun
Fixed new Struct-related keyword argument warnings
2019-09-12Document and test Enumerator.produceAkinori MUSHA
Co-authored-by: Victor Shepelev <zverok.offline@gmail.com>
2019-09-12Implement Enumerator.produce [Feature #14781]Akinori MUSHA
2019-09-12Moved coverage.yml to https://github.com/ruby/actions [ci skip]Kazuhiro NISHIYAMA
2019-09-11Make NODE_ARYPTN layout consistent between Ripper and ASTAaron Patterson
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.
2019-09-11Avoid rehashing keys in transform_valuesJohn Hawthorn
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. Notes: Merged: https://github.com/ruby/ruby/pull/2452
2019-09-11Make sure WB executes after object is reachableAaron Patterson
2019-09-12* 2019-09-12 [ci skip]git
2019-09-11Emit missing keyword argument separation warnings for define_methodJeremy Evans
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.
2019-09-11Moved doxygen.yml to https://github.com/ruby/actions [ci skip]Kazuhiro NISHIYAMA
2019-09-11Fixed the function signature to rb_rescue2Nobuyoshi Nakada
2019-09-11Made a short-circuit expression w/o result into an `if`-statementNobuyoshi Nakada
2019-09-11&$$->nd_lit is uninitialized at this point卜部昌平
See also https://travis-ci.org/ruby/ruby/jobs/583031687#L1874 Notes: Merged: https://github.com/ruby/ruby/pull/2444
2019-09-11Add `--no-progress` to `aws s3` [ci skip]Kazuhiro NISHIYAMA
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.
2019-09-10Macros can't be expressions, so make a functionAaron Patterson
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.
2019-09-10WB needs to be executed after object is reachableAaron Patterson
2019-09-11* 2019-09-11 [ci skip]git
2019-09-10`NODE_MATCH` needs to be marked / allocated from marking bucketAaron Patterson
Fixes a test in RubySpec
2019-09-10[ruby/io-console] Suppress yet another warning on WindowsNobuyoshi Nakada
https://github.com/ruby/io-console/commit/4e17c90788
2019-09-10[ruby/io-console] Suppress warnings on WindowsNobuyoshi Nakada
About unused variables and a function. https://github.com/ruby/io-console/commit/32baf54e7a
2019-09-10Unused LONG_MAX_as_doubleNobuyoshi Nakada
LONG_MAX_as_double is not needed when long is small enough to be exactly representable as a double, e.g., IL32LLP64 platforms.
2019-09-10oops卜部昌平
Silly typo.
2019-09-10Fixed GCC version for diagnostic-pragmasNobuyoshi Nakada
"GCC diagnostic push/pop" seems appeared at gcc 4.6.
2019-09-10Remove check of ai.protocolMasaki Matsushita
Solaris 10 returns addrinfo.ai_protocol as 0, not 6.