It is not used now.
* common.mk: prelude.c and golf_prelude.c doesn't depend on rbconfig.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/vcs.rb (get_revisions): use Time.new instead of Time.mktime
which does not accept UTC offset, and offset manually for older
versions than 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
iseq_build_from_ary_body indentation was too deep for my little
terminal, so extract it so it is easier to add keyword support.
* compile.c (iseq_build_callinfo_from_hash): hoist out
(iseq_build_from_ary_body): shorten callinfo case
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c (check_exec_redirect_fd, check_exec_redirect),
(rb_execarg_addopt): get rid of inadvertent ID pindown.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c (rb_str_setter): preserve encoding of global variable
name in error message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c (rb_insn_operand_intern): preserve encoding of method
name in CALL_INFO at disassembling.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c (must_respond_to): preserve encodings of variable name and
class name in warning message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Thanks Vit Ondruch for the patch! [ruby-core:65836]
* test/resolv/test_dns.rb: test for patch
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c (rb_mod_const_get, rb_mod_const_defined): ditto.
* variable.c (rb_const_missing, rb_mod_const_missing): call
const_missing without new ID to get rid of inadvertent ID
creation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ext/ripper/ripper.c): use $(PWD) for Unix,
$(MAKEDIR) for Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ext/ripper/ripper.c): fix dependencies for the case
to make ripper.y and id.h under the build directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(OpenSSL::X509::Name::RFC2253DN::StringChar): get rid of a false
positive assertion in ripper's test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
bsdmake tries to make nkf.o with nkf-utf8/nkf.c without this.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48510 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (struct parser_params): reduce size by reordering
members and an unused member.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (ripper_new_yylval): abstract function to create ripper
wrapper, and make it able to hold another object.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (reg_named_capture_assign_gen): use predefined ID
instead of rb_intern.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
version is already downloaded. A gem file is versioned and
it must be identical if the version is the same.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* template/prelude.c.tmpl (Prelude#translate): strip VPATH prefix
from prelude names, so that srcdir diffrences do not make the
generated code diffrent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* debug.c (set_debug_option): use the same macro with the implementation
at win32/win32.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (symbol_list): fix the node type of literal symbol list
with no interpolation. [ruby-core:66343]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48484 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
is not required to split. It was useful to avoid whole process
blocking in Ruby 1.8 but not useful since write() is invoked without
GVL.
(FMODE_WSPLIT_INITIALIZED): Ditto.
* io.c (wsplit_p): Removed.
(io_writable_length): Removed.
(rb_fcntl): Don't update the removed flags.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c (check_setter_id): show the original argument instead
of nil on TypeError.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* symbol.h (is_{local,global,instance,attrset,const,class,junk}_sym):
fix ID type names.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* proc.c (proc_binding): use the original iseq on a binding from
proc from method object to get the location.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c (rb_current_receiver): new function to return the
receiver in the current control frame. [Feature #10195]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/timeout.rb (Timeout::ExitException#exception): rescue
UncaughtThrowError which is specific for throw, instead of
ArgumentError.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
I spent several minutes wondering why -save-temps=obj was
not taking effect, hopefully this saves somebody else the
trouble.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Unnecessary since r47422 when the "rescue IOError" clause
was removed.
* test/ruby/test_io.rb (test_readpartial_locktmp):
remove unnecessary begin/end
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(REXMLTests::TestDocument::EntityExpansionLimitTest):
Group tests by general entity and parameter entity.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(REXMLTests::TestDocument::EntityExpansionLimitTest): Define
test XML in each test method because (1) each XML in used only
one test and (2) related data and code should be close.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(REXMLTests::TestDocument::EntityExpansionLimitTest):
Use one test method for one test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(REXMLTests::TestDocument::EntityExpansionLimitTest): Use
setup and teardown instead of ensure in test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Fix wrong parent class. It doesn't need inherit tests in
TestDocument class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (depend_rules): apply RULE_SUBST even if the dependency
file contains path.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (depend_rules): apply RULE_SUBST even if the dependency
file contains path.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (default_proc_for_compat_func): check arguments number and
type, and get rid of reentering this default proc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
From Ruby 2.2, keys of GC.stat are changed [Feature #9924].
To provide compatible layer, GC.stat add a default_proc
(if default_proc of given Hash object is not set).
At first use of this compatible layer of interpreter process,
show a warning message like that:
program: GC.stat[:total_allocated_object]
warning message: "warning: GC.stat keys were changed from Ruby
2.1. In this case, you refer to obsolete `total_allocated_object'
(new key is `total_allocated_objects').
Please check <https://bugs.ruby-lang.org/issues/9924>
for more information."
Pleaes correct my English message :)
* hash.c (rb_hash_set_default_proc): export (in internal).
* internal.h: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to hide unused codes.
* gc.c: similar to GC_ENABLE_LAZY_SWEEP.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
No need to use rb_intern, here. Reduces size slightly on x86-64:
$ ~/linux/scripts/bloat-o-meter ruby.before ruby.after
add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-31 (-31)
function old new delta
rb_eval_cmd 813 782 -31
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Nobody uses this function in our source tree, but maybe this
bug is triggered by certain C extensions.
[Bug #10509]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Time#succ is a deprecated method and not frequently used, so this wastes
icache in vm_exec_core. Using bloat-o-meter in the Linux kernel source
to shows a small reduction on my x86-64 system:
$ ~/linux/scripts/bloat-o-meter ruby.before ruby.after
add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-57 (-57)
function old new delta
vm_exec_core 24216 24159 -57
[Feature #10501]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Before this patch, gc_marks_step() marks (white -> grey) fixed
number objects. However, this strategy does not fit practical
cases, for example too slow to make progres.
This patch changes this strategy how many objects the
gc_marks_step() should handle.
We can estimate how many times gc_marks_step() is called during
this major marking (== C) with the free slot number in pooled
pages. We also can estimate the living object number (== L)
using last marked_slots value. We can solve this problem (how
many objects should be process in gc_marks_step()) by L/C.
* gc.c (rb_objspace_t): add rb_objspace_t::rincgc::pooled_sltos and
step_slots.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
reported by Tomas Hoger <thoger@redhat.com> and patched by nahi.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm.c (rb_vm_make_proc_lambda): similar to rb_vm_make_proc() with
is_lambda argument.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
is to get rid of the side effect of ENV["TZ"]. then, if ENV["TZ"] is
not set, no need to adjust. this change makes File#stat about 60%
faster.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* template/prelude.c.tmpl: move from tool/compile_prelude.rb and
expand by generic_erb.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
remove useless sort. show_files will sort the result and
another branch, files_in_gem, doesn't sort.
it should be removed for consistency.
* test/rubygems/test_gem_commands_contents_command.rb
(test_execute_default_gem): adjust the sort algorithm with
Gem::Commands::ContentsCommand#show_files, which sort items
as array of [prefix, basename] not strings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_obj_equal() is specially optimized in
opt_eq_func()@vm_insnhelper.c.
This fix is made from this discussion:
https://www.omniref.com/ruby/2.1.4/symbols/Symbol/%3D%3D#line=8361.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
exceptions on server thread.
Delete read_timeout method call to fix NoMethodError.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
function to support nonblock-mode of pipes.
* win32/win32.c (rb_w32_read): nonblock-mode pipe returns ERROR_NO_DATA
if there is no data, but also returns it if remote-end is closed.
* win32/win32.c (rb_w32_write): if cannot to write any data, it may be
blocking.
* io.c (rb_io_set_nonblock): use rb_w32_set_nonblock for Windows.
* ext/io/nonblock/nonblock.c (rb_io_nonblock_set): use ruby's API when
setting nonblock-mode.
* test/ruby/test_io.rb: test nonblock pipes on Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
notify readability on the read side of the pipe.
write_nonblock() is not usable for pipe on Windows.
(cleanup_shutdown_pipe): Rescue IOError for @shutdown_pipe_w.close.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to avoid race condition.
(cleanup_shutdown_pipe): New private method.
(cleanup_listener): Extracted from shutdown method.
Call this method from start method to avoid race condition.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/-ext-/proc/test_bmethod.rb (test_super_in_bmethod): super
in bmethod test for [Feature #10195].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c (vm_call_super): allow bound proc method to call super
method.
* vm_insnhelper.c (vm_yield_with_cfunc): push defined class and
bound proc method entry to the control frame.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_objspace_t:🎏:during_incremental_marking is not defined
when GC_ENABLE_INCREMENTAL_MARK is 0.
* gc.c (will_be_incremental_marking, is_full_marking): similar fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/securerandom.rb (SecureRandom.gen_random): separate
implementation details and select at the load time.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e