aboutsummaryrefslogtreecommitdiffstats
path: root/NEWS.md
Commit message (Collapse)AuthorAgeFilesLines
* NEWS.md: the order of backtrace [Feature #8661] [ci skip]Nobuyoshi Nakada2020-04-211-0/+5
|
* Fix a typo [ci skip]Kazuhiro NISHIYAMA2020-04-171-1/+1
|
* NEWS.md: Mentioned the removal of NIL/TRUE/FALSE [ci skip]Nobuyoshi Nakada2020-04-171-0/+2
|
* Raise EPIPE at broken pipe for the backward compatibilityNobuyoshi Nakada2020-04-151-3/+2
| | | | | | Instead of SignalException for SIGPIPE, raise `Errno::EPIPE` with instance variable `signo` and re-send that signal at exit. [Feature #14413]
* View the help message with PAGER [Feature #16754]Nobuyoshi Nakada2020-04-121-0/+8
| | | | | View the help message wth pager designed by RUBY_PAGER or PAGER environment variable, unless that value is empty.
* Silence broken pipe error messages on STDOUT [Feature #14413]Nobuyoshi Nakada2020-04-111-0/+5
| | | | Raise `SignalException` for SIGPIPE to abort when EPIPE occurs.
* Reference to [Feature #16746] [ci skip]Nobuyoshi Nakada2020-04-101-0/+1
|
* Endless method definition [Feature #16746]Nobuyoshi Nakada2020-04-101-0/+7
|
* R-assign is still experimental [Feature #15921] [ci skip]Nobuyoshi Nakada2020-04-101-1/+2
|
* Rightward-assign by ASSOCNobuyoshi Nakada2020-04-101-0/+7
| | | | [Feature #15921]
* Merge pull request #2991 from shyouhei/ruby.h卜部昌平2020-04-081-0/+4
| | | Split ruby.h
* Added link to the ticket [ci skip]Kazuhiro NISHIYAMA2020-03-181-0/+1
|
* Reduce allocations for keyword argument hashesJeremy Evans2020-03-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, passing a keyword splat to a method always allocated a hash on the caller side, and accepting arbitrary keywords in a method allocated a separate hash on the callee side. Passing explicit keywords to a method that accepted a keyword splat did not allocate a hash on the caller side, but resulted in two hashes allocated on the callee side. This commit makes passing a single keyword splat to a method not allocate a hash on the caller side. Passing multiple keyword splats or a mix of explicit keywords and a keyword splat still generates a hash on the caller side. On the callee side, if arbitrary keywords are not accepted, it does not allocate a hash. If arbitrary keywords are accepted, it will allocate a hash, but this commit uses a callinfo flag to indicate whether the caller already allocated a hash, and if so, the callee can use the passed hash without duplicating it. So this commit should make it so that a maximum of a single hash is allocated during method calls. To set the callinfo flag appropriately, method call argument compilation checks if only a single keyword splat is given. If only one keyword splat is given, the VM_CALL_KW_SPLAT_MUT callinfo flag is not set, since in that case the keyword splat is passed directly and not mutable. If more than one splat is used, a new hash needs to be generated on the caller side, and in that case the callinfo flag is set, indicating the keyword splat is mutable by the callee. In compile_hash, used for both hash and keyword argument compilation, if compiling keyword arguments and only a single keyword splat is used, pass the argument directly. On the caller side, in vm_args.c, the callinfo flag needs to be recognized and handled. Because the keyword splat argument may not be a hash, it needs to be converted to a hash first if not. Then, unless the callinfo flag is set, the hash needs to be duplicated. The temporary copy of the callinfo flag, kw_flag, is updated if a hash was duplicated, to prevent the need to duplicate it again. If we are converting to a hash or duplicating a hash, we need to update the argument array, which can including duplicating the positional splat array if one was passed. CALLER_SETUP_ARG and a couple other places needs to be modified to handle similar issues for other types of calls. This includes fairly comprehensive tests for different ways keywords are handled internally, checking that you get equal results but that keyword splats on the caller side result in distinct objects for keyword rest parameters. Included are benchmarks for keyword argument calls. Brief results when compiled without optimization: def kw(a: 1) a end def kws(**kw) kw end h = {a: 1} kw(a: 1) # about same kw(**h) # 2.37x faster kws(a: 1) # 1.30x faster kws(**h) # 2.19x faster kw(a: 1, **h) # 1.03x slower kw(**h, **h) # about same kws(a: 1, **h) # 1.16x faster kws(**h, **h) # 1.14x faster
* hash.c: Do not use the fast path (rb_yield_values) for lambda blocksYusuke Endoh2020-03-161-0/+7
| | | | | | | | | | | | | | | | | As a semantics, Hash#each yields a 2-element array (pairs of keys and values). So, `{ a: 1 }.each(&->(k, v) { })` should raise an exception due to lambda's arity check. However, the optimization that avoids Array allocation by using rb_yield_values for blocks whose arity is more than 1 (introduced at b9d29603375d17c3d1d609d9662f50beaec61fa1 and some commits), seemed to overlook the lambda case, and wrongly allowed the code above to work. This change experimentally attempts to make it strict; now the code above raises an ArgumentError. This is an incompatible change; if the compatibility issue is bigger than our expectation, it may be reverted (until Ruby 3.0 release). [Bug #12706]
* Try to correct grammer of the NEWS entry [ci skip]Takashi Kokubun2020-03-101-2/+2
|
* Let Net::HTTP.get take request headers (#2957)Takashi Kokubun2020-03-101-0/+6
| | | | | | | | | | | * Let Net::HTTP.get take request headers * Add more test cases for no header usages * Add examples with request headers * Add a NEWS entry [ci skip] [Feature #16686]
* RDoc markdown parser needs explicit code block or more indents [ci skip]Nobuyoshi Nakada2020-03-101-0/+2
|
* Added link to the ticket [ci skip]Nobuyoshi Nakada2020-03-101-0/+1
|
* Update NEWS for autosplatting change [ci skip]Jeremy Evans2020-03-091-0/+15
|
* [DOC] Separated parenthesized notes from subsection headingsNobuyoshi Nakada2020-03-031-4/+12
| | | | | As the headings become link anchors, remove less useful notes. [ci skip]
* Fix up mark-ups in NEWS [ci skip]Nobuyoshi Nakada2020-02-291-5/+5
|
* Missing links in NEWS [ci skip]Nobuyoshi Nakada2020-02-291-0/+4
|
* Update NEWS [ci skip]Jeremy Evans2020-02-281-2/+39
|
* `Proc` made by `Symbol#to_proc` should be a lambda [Bug #16260]Nobuyoshi Nakada2020-02-191-0/+8
|
* NEWS.md: add missing ticket linksMarcus Stollsteimer2020-02-161-3/+8
|
* NEWS.md: improve language; markup as list itemMarcus Stollsteimer2020-02-161-4/+5
|
* NEWS.md: remove leading whitespaceMarcus Stollsteimer2020-02-161-2/+2
|
* NEWS.md: fix method references; remove surplus bracketsMarcus Stollsteimer2020-02-161-2/+2
|
* Make yield in singleton class definitions in methods a SyntaxErrorJeremy Evans2020-02-111-0/+2
| | | | | | | | This behavior was deprecated in 2.7 and scheduled to be removed in 3.0. Calling yield in a class definition outside a method is now a SyntaxError instead of a LocalJumpError, as well.
* Add #verify_hostname= and #verify_hostname to skip hostname verificationNARUSE, Yui2020-01-241-0/+7
| | | | | [Feature #16555] https://github.com/ruby/ruby/pull/2858
* Remove special handling of $SAFE and related C-APIsJeremy Evans2020-01-221-0/+2
| | | | These were all deprecated in Ruby 2.7.
* NEWS.md: set code format explicitly [ci skip]Nobuyoshi Nakada2020-01-191-1/+1
| | | It is not set by default in the Github viewer.
* Sort globbed results by default [Feature #8709]Nobuyoshi Nakada2020-01-191-0/+8
| | | | | | Sort the results which matched single wildcard or character set in binary ascending order, unless `sort: false` is given. The order of an Array of pattern strings and braces are not affected.
* NEWS.md: reduce headings level [ci skip]Nobuyoshi Nakada2020-01-181-13/+11
| | | | | | As the only h2 did not have its exclusively owned body text, merged it to the first paragraph. Then pulled up h3 and deeper headings.
* NEWS.md: made ticket references links [ci skip]Nobuyoshi Nakada2020-01-181-2/+7
|
* NEWS.md: fixed lists and indents [ci skip]Nobuyoshi Nakada2020-01-181-7/+8
| | | | | | | * The definition lists extensions of the RDoc Markdown parser does not support nesting. * The RDoc Markdown parser requires more indents for nested lists.
* Removed xmlrpc and net-telnet from the bundled gems.Hiroshi SHIBATA2020-01-161-0/+6
| | | | [Feature #16484][ruby-core:96682]
* NEWS.md: mention "Freeze Regexp literals" [Feature #8948]Yusuke Endoh2020-01-151-0/+6
|
* NEWS.md: converted from NEWSYusuke Endoh2020-01-151-0/+35
and NEWS is deleted