| Age | Commit message (Collapse) | Author |
|
http://rubyci.s3.amazonaws.com/crossruby/crossruby-master-wasm32_emscripten/log/20211118T233311Z.log.html.gz#make
```
compiling gc.c
gc.c:10629:47: error: implicit conversion loses integer precision: 'unsigned long long' to 'size_t' (aka 'unsigned long') [-Werror,-Wshorten-64-to-32]
SET(time, objspace->profile.total_time_ns / (1000 * 1000) /* ns -> ms */);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gc.c:10624:9: note: expanded from macro 'SET'
return attr; \
~~~~~~ ^~~~
gc.c:10629:47: error: implicit conversion loses integer precision: 'unsigned long long' to 'unsigned long' [-Werror,-Wshorten-64-to-32]
SET(time, objspace->profile.total_time_ns / (1000 * 1000) /* ns -> ms */);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gc.c:10626:68: note: expanded from macro 'SET'
rb_hash_aset(hash, gc_stat_symbols[gc_stat_sym_##name], SIZET2NUM(attr));
~~~~~~~~~ ^~~~
2 errors generated.
```
|
|
Introduce new optimized method type
`OPTIMIZED_METHOD_TYPE_STRUCT_AREF/ASET` with index information.
Notes:
Merged: https://github.com/ruby/ruby/pull/5131
|
|
Now `rb_method_optimized_t optimized` field is added to represent
optimized method type.
Notes:
Merged: https://github.com/ruby/ruby/pull/5131
|
|
@nobu pointed out that ULL (unsigned long long) should have at
least 64 bits so ULL2NUM(uint64_t) is not problem.
Notes:
Merged: https://github.com/ruby/ruby/pull/4757
|
|
* `GC.measure_total_time = true` enables total time measurement (default: true)
* `GC.measure_total_time` returns current flag.
* `GC.total_time` returns measured total time in nano seconds.
* `GC.stat(:time)` (and Hash) returns measured total time in milli seconds.
Notes:
Merged: https://github.com/ruby/ruby/pull/4757
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4757
|
|
This provides a significant speedup for symbol, true, false,
nil, and 0-9, class/module, and a small speedup in most other cases.
Speedups (using included benchmarks):
:symbol :: 60%
0-9 :: 50%
Class/Module :: 50%
nil/true/false :: 20%
integer :: 10%
[] :: 10%
"" :: 3%
One reason this approach is faster is it reduces the number of
VM instructions for each interpolated value.
Initial idea, approach, and benchmarks from Eric Wong. I applied
the same approach against the master branch, updating it to handle
the significant internal changes since this was first proposed 4
years ago (such as CALL_INFO/CALL_CACHE -> CALL_DATA). I also
expanded it to optimize true/false/nil/0-9/class/module, and added
handling of missing methods, refined methods, and RUBY_DEBUG.
This renames the tostring insn to anytostring, and adds an
objtostring insn that implements the optimization. This requires
making a few functions non-static, and adding some non-static
functions.
This disables 4 YJIT tests. Those tests should be reenabled after
YJIT optimizes the new objtostring insn.
Implements [Feature #13715]
Co-authored-by: Eric Wong <e@80x24.org>
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
Co-authored-by: Koichi Sasada <ko1@atdot.net>
Notes:
Merged: https://github.com/ruby/ruby/pull/5002
Merged-By: jeremyevans <code@jeremyevans.net>
|
|
block to another method without having to provide a name for the
block parameter.
Implements [Feature #11256]
Co-authored-by: Yusuke Endoh mame@ruby-lang.org
Co-authored-by: Nobuyoshi Nakada nobu@ruby-lang.org
Notes:
Merged: https://github.com/ruby/ruby/pull/5051
|
|
We only need the cref when we have a cache miss so don't look it up until we
need it. This likely speeds up class variable writes in the interpreter but
also simplifies the jit code.
Before
```
Warming up --------------------------------------
write a cvar 192.280k i/100ms
Calculating -------------------------------------
write a cvar 1.915M (± 3.5%) i/s - 9.614M in 5.026694s
```
After
```
Warming up --------------------------------------
write a cvar 216.308k i/100ms
Calculating -------------------------------------
write a cvar 2.140M (± 3.1%) i/s - 10.815M in 5.058079s
```
Followup to ruby/ruby#5137
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
Also, update NEWS for this change and the Kernel#load change.
|
|
Previously, each of these methods returned self, but it is
more useful to return arguments, to allow for simpler method
decorators, such as:
```ruby
cached private def foo; some_long_calculation; end
```
Where cached sets up caching for the method.
For each of these methods, the following behavior is used:
1) No arguments returns nil
2) Single argument is returned
3) Multiple arguments are returned as an array
The single argument case is really the case we are trying to
optimize for, for the same reason that def was changed to return
a symbol for the method.
Idea and initial patch from Herwin Quarantainenet.
Implements [Feature #12495]
Notes:
Merged: https://github.com/ruby/ruby/pull/5037
|
|
* Refactor getclassvariable
We only need the cref when we have a cache miss so don't look it up until we
need it. This speeds up class variable reads in the interpreter but
also simplifies the jit code.
Benchmarks for master vs this branch (without yjit):
Before:
```
Warming up --------------------------------------
read a cvar 1.276M i/100ms
Calculating -------------------------------------
read a cvar 12.596M (± 1.7%) i/s - 63.781M in 5.064902s
```
After:
```
Warming up --------------------------------------
read a cvar 1.336M i/100ms
Calculating -------------------------------------
read a cvar 13.114M (± 3.6%) i/s - 65.488M in 5.000584s
```
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
* Clean up function signatures / remove dead code
rb_vm_getclassvariable signature has changed and we don't need
rb_vm_get_cref.
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
|
|
* Add --yjit-no-type-prop so we can test YJIT without type propagation
* Fix typo in command line option
* Leave just two test workflows enable for YJIT
Notes:
Merged-By: maximecb <maximecb@ruby-lang.org>
|
|
Treats:
#<<
#>>
#to_s
Notes:
Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
|
|
As GitHub Actions are choking a lot lately, throttle the checks
down to the latest commit only per branches.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5084
Merged-By: nobu <nobu@ruby-lang.org>
|
|
|
|
https://github.com/ruby/date/commit/21d91c5f4f
|
|
An almost universal convention for gems is to expose `Namespace::VERSION`
which makes it mcuh easier when debugging etc.
Many gems extracted from ruby don't do this, even though it would be even more
useful because they ship with ruby, so it's less clear which version it is.
https://github.com/ruby/date/commit/fef7ec18d8
|
|
|
|
Instead of always using a new anonymous module for Kernel#load if
the wrap argument is not false/nil, use the given module if a module
is provided.
Implements [Feature #6210]
Notes:
Merged: https://github.com/ruby/ruby/pull/4986
|
|
[Feature #18344] (#5133)
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
Treats:
#times
#round
#floor
#ceil
#truncate
::sqrt
Notes:
Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
|
|
https://github.com/rubygems/rubygems/commit/c8cc053bde
|
|
https://github.com/rubygems/rubygems/commit/5cb0b9d9b8
|
|
https://github.com/rubygems/rubygems/commit/662de0c990
|
|
https://github.com/rubygems/rubygems/commit/19f117652b
|
|
Plus, that method is supposed to be private.
https://github.com/rubygems/rubygems/commit/f8a01ddb9f
|
|
https://github.com/rubygems/rubygems/commit/231be44d38
|
|
https://github.com/rubygems/rubygems/commit/54e923ffc2
|
|
To spare the `defined?` check.
https://github.com/rubygems/rubygems/commit/64d27bba01
|
|
Treated:
#==
#<=>
#<
#<=
#>
#>=
#&
#|
#^
Notes:
Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
|
|
|
|
|
|
|
|
Tests for GitHub PR #5122. Originally in GitHub PR #5121.
Notes:
Merged: https://github.com/ruby/ruby/pull/5132
|
|
This change removes nd_oid, nd_rest, and nd_opt, and adds some comments
for special accessors.
|
|
|
|
|
|
Builtin methods do not always have their mandatory_only_cme created (it
is only created when called with only mandatory parameters), so it could
be null. If we try to clear the cme, it will crash because it is null.
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/5126
|
|
Now `cc->cme_` is not NULL.
Notes:
Merged: https://github.com/ruby/ruby/pull/5122
|
|
check if iseq refers to on stack CC (it shouldn't).
Notes:
Merged: https://github.com/ruby/ruby/pull/5122
|
|
when `vm_cc_markable(cc)`.
Notes:
Merged: https://github.com/ruby/ruby/pull/5122
|
|
Same as `vm_empty_cc`, introduce a global variable which has
`.call_ = vm_call_super_method`. Use it if the `cme == NULL` on
`vm_search_super_method`.
Notes:
Merged: https://github.com/ruby/ruby/pull/5122
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5122
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5122
|
|
The old URL
http://mail.opensolaris.org/pipermail/dtrace-discuss/2005-August/000207.html
pointed to the official archive of dtrace-discuss mailing list
in opensolaris.org, disappeared in 2013.
The new URL points to the MARC Mailing list ARChives.
|
|
This gem exposes no executable files.
https://github.com/ruby/net-http/commit/3b3743f6ce
|
|
http://rubyci.s3.amazonaws.com/ubuntu1804/ruby-master/log/20211117T033003Z.log.html.gz
```
installing default gems from ext: /home/chkbuild/chkbuild/tmp/build/20211117T033003Z/lib/ruby/gems/3.1.0
/home/chkbuild/chkbuild/tmp/build/20211117T033003Z/ruby/ext/digest/lib/digest/version.rb:4: warning: already initialized constant Digest::VERSION
/home/chkbuild/chkbuild/tmp/build/20211117T033003Z/ruby/.ext/common/digest/version.rb:4: warning: previous definition of VERSION was here
```
This hack is copied from ext/psych/psych.gemspec
|