[#104169] [Ruby master Feature#17938] Keyword alternative for boolean positional arguments — matheusrichardt@...

Issue #17938 has been reported by matheusrich (Matheus Richard).

12 messages 2021/06/04

[#104213] [Ruby master Feature#17942] Add a `initialize(public @a, private @b)` shortcut syntax for defining public/private accessors for instance vars — tyler@...

Issue #17942 has been reported by TylerRick (Tyler Rick).

6 messages 2021/06/09

[#104288] [Ruby master Bug#17992] Upstreaming the htmlentities gem into CGI#.(un)escape_html — alexandermomchilov@...

Issue #17992 has been reported by AMomchilov (Alexander Momchilov).

9 messages 2021/06/15

[#104338] [Ruby master Misc#17997] DevelopersMeeting20210715Japan — mame@...

Issue #17997 has been reported by mame (Yusuke Endoh).

10 messages 2021/06/17

[#104361] [Ruby master Bug#18000] have_library doesn't work when ruby is compiled with --disable-shared --disable-install-static-library — jean.boussier@...

Issue #18000 has been reported by byroot (Jean Boussier).

9 messages 2021/06/18

[#104401] [Ruby master Feature#18007] Help developers of C extensions meet requirements in "doc/extension.rdoc" — mike.dalessio@...

Issue #18007 has been reported by mdalessio (Mike Dalessio).

16 messages 2021/06/25

[#104430] [Ruby master Bug#18011] `Method#parameters` is incorrect for forwarded arguments — josh.cheek@...

Issue #18011 has been reported by josh.cheek (Josh Cheek).

12 messages 2021/06/29

[ruby-core:104309] [Ruby master Bug#16840] Decrease in Hash#[]= performance with object keys

From: merch-redmine@...
Date: 2021-06-16 14:52:29 UTC
List: ruby-core #104309
Issue #16840 has been updated by jeremyevans0 (Jeremy Evans).

Status changed from Open to Closed

Apparently this case was optimized in Ruby 3.0.  Using the benchmark code provided:

```
$ for x in 25 26 27 30; do ruby$x -v; for y in 1 2 3; do ruby$x t/t51.rb; done; done
ruby 2.5.9p229 (2021-04-05 revision 67939) [x86_64-openbsd]
 10.040000   0.010000  10.050000 ( 10.045536)
  9.970000   0.010000   9.980000 (  9.995454)
 10.170000   0.000000  10.170000 ( 10.180147)
ruby 2.6.7p197 (2021-04-05 revision 67941) [x86_64-openbsd]
  9.340000   0.000000   9.340000 (  9.326443)
  9.420000   0.010000   9.430000 (  9.425656)
  9.300000   0.020000   9.320000 (  9.327280)
ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-openbsd]
 10.790000   0.020000  10.810000 ( 10.809778)
 10.840000   0.020000  10.860000 ( 10.866930)
 10.820000   0.010000  10.830000 ( 10.852136)
ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-openbsd]
  4.780000   0.020000   4.800000 (  4.798934)
  4.760000   0.020000   4.780000 (  4.770590)
  4.720000   0.050000   4.770000 (  4.774958)
```

Possibly due to commit:5f6053824551aec947a1c53d08975595aca1e513, which changed from an else if chain to a switch, but I didn't confirm that.  Anyway, since it's now much faster than before, I think this can be closed.

----------------------------------------
Bug #16840: Decrease in Hash#[]= performance with object keys
https://bugs.ruby-lang.org/issues/16840#change-92531

* Author: ana06 (Ana Maria Martinez Gomez)
* Status: Closed
* Priority: Normal
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
I was playing around with Ruby hashing and I have discovered something strange/surprising.

The file ``test.rb`` looks like:

```ruby

require 'benchmark'
$N = 100000

class Ana 
end

objects = Array.new($N) { Ana.new() }
hash = {}
puts Benchmark.measure { 100.times { objects.each { |obj| hash[obj] = true } }}
```

I executed ``test.rb`` with different Ruby versions and it takes longer with newer versions. There is 1.5 seconds difference between Ruby 2.5 and master. Is that expected? And if so, why? Those are the execution results:

```
> rbenv shell 2.5.0
> ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
> ruby test.rb
  2.236504   0.003546   2.240050 (  2.240256)
> ruby test.rb
  2.247041   0.003680   2.250721 (  2.250860)
> ruby test.rb
  2.276305   0.000351   2.276656 (  2.276829)
>
> rbenv shell 2.6.2
> ruby -v
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-linux]
> ruby test.rb
  2.579052   0.004181   2.583233 (  2.583541)
> ruby test.rb
  2.580179   0.000000   2.580179 (  2.580362)
> ruby test.rb
  2.646516   0.000441   2.646957 (  2.647398)
>キ
> rbenv shell 2.7.1
> ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
> ruby test.rb
  2.915415   0.004209   2.919624 (  2.920206)
> ruby test.rb
  2.867767   0.007511   2.875278 (  2.875416)
> ruby test.rb
  2.877741   0.000410   2.878151 (  2.878431)
>キ
> rbenv shell 2.8.0-dev
> ruby -v
ruby 2.8.0dev (2020-05-07T16:22:38Z master 7ded8fd29a) [x86_64-linux]
> ruby test.rb
  3.840961   0.007852   3.848813 (  3.849499)
> ruby test.rb
  3.748391   0.007833   3.756224 (  3.756520)
> ruby test.rb
  3.686487   0.001656   3.688143 (  3.688332)
```




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next