Age | Commit message (Collapse) | Author |
|
"in void context" by assigning the result to a dummy variable.
|
|
This reverts commit c3b84f2de83a27acc638f99743bfa2c44bac621c.
Backtrace shows it is before running tests and debug check was
nonsense.
|
|
callable_method_entry_p is for rb_callable_method_entry_t.
|
|
|
|
|
|
There are random failures:
> lib/rubygems/core_ext/kernel_require.rb:61:in `require':
> wrong number of arguments (given 1, expected 0) (ArgumentError)
http://ci.rvm.jp/results/trunk-jemalloc@silicon-docker/2275159
To check this failure, I added a small check code.
|
|
chkbuild (CI process) shows methods list before
running tests and sometimes it can fails. This
commit a code part to emulate this method listing
feature.
|
|
|
|
method_def_location() expects that rb_method_attr_t::location
is 0 (Qfalse) or not.
|
|
This adds rb_funcall_passing_block_kw, rb_funcallv_public_kw,
and rb_yield_splat_kw. This functions are necessary to easily
handle cases where rb_funcall_passing_block, rb_funcallv_public,
and rb_yield_splat are currently used and a keyword argument
separation warning is raised.
Notes:
Merged: https://github.com/ruby/ruby/pull/2507
|
|
At last, not only myself but also your compiler are fully confident
that the method entries pointed from call caches are immutable. We
don't have to worry about silent updates. Just delete the branch
that is now always false.
Calculating -------------------------------------
ours trunk
vm2_poly_same_method 2.142M 2.070M i/s - 6.000M times in 2.801148s 2.898994s
Comparison:
vm2_poly_same_method
ours: 2141979.2 i/s
trunk: 2069683.8 i/s - 1.03x slower
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
Now that we have eliminated most destructive operations over the
rb_method_entry_t / rb_callable_method_entry_t, let's make them
mostly immutabe and mark them const.
One exception is rb_export_method(), which destructively modifies
visibilities of method entries. I have left that operation as is
because I suspect that destructiveness is the nature of that
function.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
Tired of rb_method_entry_create(..., rb_method_definition_create(
..., &(rb_method_foo_t) {...})) maneuver. Provide a function that
does the thing to reduce copy&paste.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
Make things more immutable.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
The deleted function was to destructively overwrite existing method
entries, which is now considered to be a bad idea. Delete it, and
assign a newly created method entry instead.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
Instead of destructively write fields of method entries, create a
new entry and let it overwrite its owner.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
Before this changeset rb_method_definition_create only allocated a
memory region and we had to destructively initialize it later.
That is not a good design so we change the API to return a complete
struct instead.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
No longer used.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
Did you know that C functions can return structs? That has been
true since the beginning, but not that very useful until C99. Now
that we can write compound literals, this feature is much easier
to use. By allowing struct-returning functions, some formerly big
functions can be split into smaller ones, like this changeset.
At least GCC is smart enough to inline the split functions back
into one. No performance penalty is observed.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
Most (if not all) of the fields of rb_method_definition_t are never
meant to be modified once after they are stored. Marking them const
makes it possible for compilers to warn on unintended modifications.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
This is a pure refactoring to reduce copy & paste. Also the new
function is made visible from other parts of the interpreter, to
be used later.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
Not used from anywhere.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
Because rb_method_definition_t tracks its own complemented_count,
we no longer have to check it in rb_method_entry_t side.
Notes:
Merged: https://github.com/ruby/ruby/pull/2486
|
|
VM_NO_KEYWORDS was introduced first in vm_core.h, but it is best
to only use a single definition for this.
|
|
In general RB_PASS_CALLED_KEYWORDS should only be set if we are
sure the arguments passed come directly from Ruby. For direct calls
to these C functions, we should not assume that keywords are passed.
Add static *_internal versions of these functions that
Kernel#instance_{eval,exec} and Module#{class,module}_{eval,exec}
call that set RB_PASS_CALLED_KEYWORDS.
Also, change struct.c back to calling rb_mod_module_eval, now that
the call is safe.
Notes:
Merged: https://github.com/ruby/ruby/pull/2505
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2506
|
|
* See https://github.com/test-unit/test-unit/issues/165
Notes:
Merged: https://github.com/ruby/ruby/pull/2506
|
|
|
|
Some warnings are because the @o.rb_scan_args call doesn't
include keyword arguments, but the first argument is passed to
rb_scan_args may have a last hash treated as keywords. Those
should be handled using rb_scan_args_kw on Ruby 2.7.
Other warnings are for the deprecated rb_scan_args behavior to
split option hashes or treat a nil argument as an option hash.
Those warnings should just be suppressed.
Notes:
Merged: https://github.com/ruby/ruby/pull/2504
|
|
|
|
|
|
|
|
* numeric.c (num_step): pass the extracted argument from keyword
argument, not the last argument itself which should have been
warned already.
|
|
|
|
|
|
|
|
|
|
|
|
miniruby
Notes:
Merged: https://github.com/ruby/ruby/pull/2503
|
|
* Writing shell scripts in a Makefile is very error-prone.
* TEST_BUNDLED_GEMS_ALLOW_FAILURES seemed to not work before.
Notes:
Merged: https://github.com/ruby/ruby/pull/2503
|
|
Time#inspect change
* See https://github.com/test-unit/test-unit/issues/165
Notes:
Merged: https://github.com/ruby/ruby/pull/2503
|
|
* Otherwise, it takes a very long time to notice those tests broke.
Notes:
Merged: https://github.com/ruby/ruby/pull/2503
|
|
https://github.com/ruby/stringio/commit/f0e5027279
|
|
https://github.com/ruby/stringio/commit/5892663e32
|
|
https://github.com/ruby/stringio/commit/a37ab7c419
|
|
https://github.com/ruby/stringio/commit/e8065153b8
|
|
https://github.com/ruby/stringio/commit/4dfd997e0a
|
|
https://github.com/ruby/zlib/commit/00ead8cb2c
|
|
https://github.com/ruby/zlib/commit/8f43b264cd
|
|
|