Commit graph

5576 commits

Author SHA1 Message Date
naruse
8539a917dd Use RUBYOPT to overwrite original RUBYOPT ENV
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 19:10:05 +00:00
kosaki
3357d88ada * lib/thread.rb (SizedQueue#pop): rewrite by using ConditionVariable.
* lib/thread.rb (SizedQueue#push): ditto.
* lib/thread.rb (SizedQueue#max): ditto.
* lib/thread.rb (Queue#pop): ditto.
* lib/thread.rb (Queue#push): ditto.

* lib/thread.rb (SizedQueue#num_waiting): adopt the above changes.
* lib/thread.rb (SizedQueue#initialize): ditto.
* lib/thread.rb (Queue#num_waiting): ditto.
* lib/thread.rb (Queue#initialize): ditto.
* test/thread/test_queue.rb (test_sized_queue_and_wakeup): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 18:55:09 +00:00
ko1
5697f69baa * iseq.c: add RubyVM::InstructionSequence (ISeq) inspection methods.
* ISeq#path returns path of this ISeq written.
* ISeq#absolute_path returns absolute path.
* ISeq#label returns label (method name and so on).
* ISeq#base_label returns base label (see Thread::Backtrace::Location).
* ISeq#first_lineno returns first line number of this ISeq.
* ISeq.of(obj) returns ISeq object which obj (Proc or Method)
  is contains.
* test/ruby/test_iseq.rb: add tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 18:02:43 +00:00
drbrain
646eeab113 * test/rubygems/test_gem_dependency_installer.rb: Use Gem.read_binary
instead of File.binread for ruby 1.8 compatibility in the rubygems
  source repository.  Updates r38071


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 17:54:00 +00:00
kosaki
279cd29b1b * thread.c (rb_threadptr_interrupt_mask): add argument check.
* thread.c (async_interrupt_timing_arg_check_i): helper function
  for the above.
* test/ruby/test_thread.rb (test_async_interrupt_timing_invalid_argument):
  test for the above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 17:39:48 +00:00
kazu
a1d837ccc1 * test/ruby/envutil.rb (Test::Unit::Assertions#assert_in_out_err): raise if assert_in_out_err misused.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 17:14:27 +00:00
kazu
8f9b451dd8 assert_in_out_err with block ignores test_stdout
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 17:14:24 +00:00
usa
ad01ea426c * test/rdoc/test_rdoc_rubygems_hook.rb
(TestRDocRubygemsHook#test_setup_unwritable): 1. check the existance
  of the file(directory) before touch it.  2. remove test
  file(directory) after the test.  see [ruby-core:50388].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 17:11:11 +00:00
ko1
12f2f7371f [EXPERIMENTAL]
* iseq.c: add following two methods.
* ISeq#line_trace_all returns all line traces (line numbers)
* ISeq#line_trace_specify(pos, set) set `pos'th line event to
  specified_line event (if set is true).
  These features are introduced for debuggers (mainly to make
  breakpoint).
* iseq.h: add decl. of C APIs.
* test/ruby/test_iseq.rb: add tests.
* vm_trace.c: add `specified_line' event.
* include/ruby/ruby.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 17:00:30 +00:00
usa
60317fa81d * test/rubygems/test_gem_dependency_installler.rb: gems are of course
binary files, so use a binary reading method when reading it.
  see [ruby-core:50388].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 16:51:11 +00:00
usa
952beb5ff4 * lib/rubygems/command.rb (Gem::Command#get_all_gem_names_and_versions):
who assumes that the pathname of a gem never contains ':' ?
  yes, on Unixen pathnames can contain ':', and on Windows they almost
  certainly contain ':'.  see [ruby-core:50388].

* lib/rubygems/requirement.rb (Gem::Requirement::PATTERN_RAW): extract
  the regexp to match the version specifier from PATTERN to use in
  above method.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 16:27:52 +00:00
usa
a847bedb1d * test/rubygems/test_gem_installer.rb
(TestGemInstaller#test_check_executable_overwrite_other_non_gem):
  on Windows, rubygems always generate a wrapper .bat file when
  installing a file into bin, so testing no-overwrite a wrapper file
  and a non-wrapper file is nonsence.  see [ruby-core:50388].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 15:11:30 +00:00
usa
ec7d935ce7 * test/rubygems/test_gem_installer.rb
(TestGemInstaller#test_check_executable_overwrite_default_bin_dir):
  if the executable to be overwritten was generated by rubygems, the
  error messsage differs from the only copied one's.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 14:43:10 +00:00
usa
053ca25f2d * test/rubygems/test_gem_ext_ext_conf_builder.rb
(TestGemExtExtConfBuilder::test_class_make): reading with binary mode
  of course introduce \r on Windows.  see [ruby-core:50388].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 14:29:03 +00:00
ko1
bb4410a289 * thread.c: TracePoint#self returns invoking/exitting thread object
at thread_begin/end event.
* test/ruby/test_settracefunc.rb: fix test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 11:50:26 +00:00
usa
d0a4fecffc * test/ruby/memory_status.rb (Memory::Win32): sorry, ko1.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 11:22:49 +00:00
usa
88201504ae * test/ruby/memory_status.rb (Memory::Win32): rescue non libffi user, such as ko1.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 11:15:36 +00:00
usa
77df72a64a * test/ruby/memory_status.rb (Memory::Win32): use fiddle instead of dl,
but I doubt fiddle is not compatible with dl. (if you are interested,
  see the diff.)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 10:57:06 +00:00
ko1
719e0cd530 * thread.c: rename Thread.control_interrupt
to Thread.async_interrupt_timing.
  The option name `:never' is also changed to  `:defer'.
  [ruby-core:50375] [ruby-trunk - Feature #6762]
* thread.c: remove Thread.check_interrupt.
  This method is difficult to understand by name.
* thraed.c: add Thread.async_interrupted?.
  This method check any defered async interrupts.
* test/ruby/test_thread.rb: change tests for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 09:28:35 +00:00
nobu
020cc0ad5c string.c: compare with to_str
* string.c (rb_str_cmp_m): try to compare with to_str result if
  possible before calling <=> method.  [ruby-core:49279] [Bug #7342]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 08:43:52 +00:00
nobu
1dbc720c0d string.c: always fixed value
* string.c (rb_str_cmp_m): return fixed value, one of -1,0,+1 always.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 08:43:42 +00:00
nobu
981f9c52c6 vm_dump.c: no methods in segv handler
* vm_dump.c (rb_vm_bugreport): get rid of calling methods in sigsegv
  handler.  based on a patch by charliesome (Charlie Somerville)
  [ruby-core:49573] [Bug #7402]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 07:19:16 +00:00
nobu
8e2839ba2f parse.y: false usage of local variable
* parse.y (parser_yylex): fix false usage of local variable, it cannot
  appear in fname state [ruby-core:49659] [Bug #7408]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 06:24:40 +00:00
drbrain
6969043477 * lib/rubygems/package.rb: Load YAML for building gems.
* test/rubygems/test_gem_commands_contents_command.rb:  Sort expected
  output of default gem contents.  Re-fixes r38004 and r38005.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 06:20:34 +00:00
drbrain
42968fe65a * lib/rubygems/commands/setup_command.rb: Remove old files on install
of RubyGems.  (not by rbinstall.rb).
	* test/rubygems/test_gem_commands_setup_command.rb:  Test for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38029 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 04:30:12 +00:00
knu
4078d42b72 Fix a line matching problem in Abbrev.abbrev(words, "prefix").
* lib/abbrev.rb (Abbrev#abbrev): A fixed string prefix pattern
  should only match the beginning of each word, not the beginning
  of every line in it.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 03:56:28 +00:00
knu
aac52e2b87 Improve test data in test_abbrev.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38026 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 03:56:25 +00:00
knu
06c3b413f0 Add tests for lib/abbrev.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 03:35:01 +00:00
drbrain
aee295fc74 * lib/rubygems/spec_fetcher.rb: Allow prerelease spec fetching to fail
for bundler.
	* test/rubygems/test_gem_spec_fetcher.rb:  Test for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 03:28:04 +00:00
drbrain
8137152e01 * lib/rake/backtrace.rb: Removed duplication in
Rake::Backtrace::SUPPRESSED_PATHS
	* test/rake/test_rake_backtrace.rb:  Skip tests when tmpdir is in the
	  suppressed pattern.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 03:21:06 +00:00
shugo
9e44974874 * revert r37993 to avoid SEGV in tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 02:11:59 +00:00
drbrain
696ebcd8ca * lib/rdoc/ri/driver.rb: Relaxed matching for pages to be more
user-friendly.
* test/rdoc/test_rdoc_ri_driver.rb:   Test for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 01:39:03 +00:00
naruse
d8da36dd22 Refix r38002: capture_subprocess_io also doesn't fork
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 01:29:57 +00:00
naruse
b479ca0c98 Use capture_subprocess_io instead of capture_io. fix r38002
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 00:54:04 +00:00
drbrain
82e6c75d14 * lib/rubygems/commands/contents_command.rb: Sort output from command.
Replaces r38004, r38005
* test/rubygems/test_gem_commands_contents_command.rb:  ditto.

* lib/rubygems/defaults.rb:  Use Gem.path_separator for jruby support.
* lib/rubygems/path_support.rb:  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 00:23:15 +00:00
drbrain
09af9d7f7f * lib/rdoc/generator/darkfish.rb: Silenced warning
* test/rdoc/test_rdoc_rdoc.rb:  ditto

	* lib/rdoc/markup/parser.rb:  Use byteslice when available for
	  performance
	* test/rdoc/test_rdoc_markup_parser.rb:  Test for above
	* lib/rdoc/test_case.rb:  ditto

	* lib/rdoc/parser/ruby.rb:  Fixed bug parsing yield({})
	* test/rdoc/test_rdoc_parser_ruby.rb (end):

	* lib/rdoc/rubygems_hook.rb:  Skip default gems.  Display generator
	  name properly.
	* test/rdoc/test_rdoc_rubygems_hook.rb:  Test for above

	* lib/rdoc/servlet.rb:  Fixed typo.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 23:34:29 +00:00
nari
59770bf960 * gc.c (rb_objspace_call_finalizer): finalize_deferred may free up
a object which is reachable from a part after this function,
  e.g. ruby_vm_destruct(). [ruby-dev:46647] [Bug #7452]

* test/ruby/test_gc.rb (test_finalizing_main_thread): add a test
  for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 22:56:02 +00:00
ko1
4db8340398 [EXPERIMENTAL: NEED DISCUSS]
* vm_trace.c: add events
* :thread_begin - hook at thread beggining.
* :thead_end - hook at thread ending.
* :b_call - hook at block enter.
* :b_return - hook at block leave.
  This change slow down block invocation.
  Please try and give us feedback until 2.0 code freeze.
* include/ruby/ruby.h: ditto.
* compile.c (rb_iseq_compile_node): ditto.
* insns.def: ditto.
* thread.c: ditto.
* vm.c: ditto.
* include/ruby/debug.h: add a comment.
* test/ruby/test_settracefunc.rb: add a tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 22:28:16 +00:00
ryan
2dc5e62545 Imported minitest 4.3.2 (r8027)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 22:02:36 +00:00
naruse
213ba52407 Fix typo of r38004
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 20:48:52 +00:00
naruse
e818b24c44 Sort th result to compare multiple lines
The order of the lines is depend on Dir.glob's result.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 20:34:29 +00:00
drbrain
d1d4490a57 * lib/rake/*: Updated to rake 0.9.5
* test/rake/*:  ditto.
* NEWS:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 19:16:46 +00:00
naruse
40bae2f67c Run another process to avoid failure when objspace is already loaded
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 18:22:52 +00:00
tenderlove
9709448474 * vm.c: add a return hook when a method raises an exception.
* probes_helper.h: look up klass and method if none are provided.

* eval.c: update macro usage.

* vm_eval.c: ditto.

* vm_insnhelper.c: ditto.

* test/dtrace/test_function_entry.rb: test for change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 17:55:54 +00:00
naruse
4556a9ec65 * compile.c (compile_array_): refix r37991 remove assertion:
it is true only if type == COMPILE_ARRAY_TYPE_HASH.
  [ruby-dev:46658] [Bug #7466]

* vm.c (m_core_hash_from_ary): add assertion instead of above.

* vm.c (m_core_hash_merge_ary): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 17:35:29 +00:00
nahi
361f6b2503 * test/openssl/test_cipher.rb (test_ctr_if_exists): add CTR mode test
if underlying OpenSSL supports it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 13:24:42 +00:00
shugo
421314cf4e * vm_method.c (rb_method_entry_make): add a method entry with
VM_METHOD_TYPE_REFINED to the class refined by the refinement if
  the target module is a refinement.  When a method entry with
  VM_METHOD_TYPE_UNDEF is invoked by vm_call_method(), a method with
  the same name is searched in refinements.  If such a method is
  found, the method is invoked.  Otherwise, the original method in
  the refined class (rb_method_definition_t::body.orig_def) is
  invoked.  This change is made to simplify the normal method lookup
  and to improve the performance of normal method calls.

* vm_method.c (EXPR1, search_method, rb_method_entry),
  vm_eval.c (rb_call0, rb_search_method_entry): do not use
  refinements for method lookup.

* vm_insnhelper.c (vm_call_method): search methods in refinements if
  ci->me is VM_METHOD_TYPE_REFINED.  If the method is called by
  super (i.e., ci->call == vm_call_super_method), skip the same
  method entry as the current method to avoid infinite call of the
  same method.

* class.c (include_modules_at): add a refined method entry for each
  method defined in a module included in a refinement.

* class.c (rb_prepend_module): set an empty table to
  RCLASS_M_TBL(klass) to add refined method entries, because
  refinements should have priority over prepended modules.

* proc.c (mnew): use rb_method_entry_with_refinements() to get
  a refined method.

* test/ruby/test_refinement.rb (test_inline_method_cache): do not skip
  the test because it should pass successfully.

* test/ruby/test_refinement.rb (test_redefine_refined_method): new
  test for the case a refined method is redefined.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 12:50:10 +00:00
naruse
bda0aca2af Revert r37991 "compile.c: hash must be paired"
DO BUILD BEFORE COMMIT !

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 11:09:34 +00:00
nobu
399a32dfca compile.c: hash must be paired
* compile.c (compile_array_): hash elements must be paired even for
  literal elements.  [ruby-dev:46658] [Bug #7466]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 10:15:16 +00:00
nobu
f77c97a8ca variable.c: show namespace
* variable.c (rb_const_set): show namespace in warning messages.
  [Feature #7190]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-29 08:45:13 +00:00