Commit graph

5121 commits

Author SHA1 Message Date
tadf
d53204f910 * test/ruby/test_rubyoptions.rb (TestRubyOptions#test_usage2):
revert the previous.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-23 02:41:47 +00:00
nobu
0d280f3d63 test_rubyoptions.rb: refine assertion
* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_usage2): refine
  assertion.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-23 02:13:48 +00:00
nobu
d03ed07e60 test_rubyoptions.rb: --help
* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_usage2): now
  --help option is for modern terminals.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-23 02:12:09 +00:00
shirosaki
97ecab7b34 Fix cache validity check of require
* array.c (rb_ary_shared_with_p): fix cache validity check.
  If #pop or #shift has been called against $: or $", the array will
  be still shared with the snapshot. We check array length for cache
  validity.
  [ruby-core:49518] [Bug #7383]

* test/ruby/test_require.rb
  (TestRequire#test_require_with_array_pop,
   TestRequire#test_require_with_array_shift): add tests for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-22 14:55:32 +00:00
tadf
b4f25e30df * test/ruby/test_rubyoptions.rb: added a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-22 12:36:22 +00:00
knu
61e21e82ad Apply performance improvement to short byte array search.
* re.c (rb_memsearch_ss): Apply performance improvement to short
  byte array search for platforms without memmem(3).
  [Feature #6311] [ruby-dev:45530]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-22 05:23:12 +00:00
knu
9cbaeed6ed Add some corner cases to tests for String#index.
* test/ruby/test_string.rb (TestString#test_index): Add some
  corner cases to tests for String#index, which might fail if ruby
  directly used a buggy memmem(3) implementation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-22 05:02:30 +00:00
nari
cda3a0c75e * test/ruby/test_gc.rb (test_profiler_clear): fix wrong method
calls [Bug #7419] [ruby-core:49828].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-21 23:09:46 +00:00
nobu
e786aa711d io/wait: add IO#wait_writable method
* ext/io/wait/wait.c (io_wait_writable): this is easier to use than
  IO.select for a single IO object and is immune to the
  limitations/innefficiency of select() on platforms where poll/ppoll
  is available.  patched by Eric Wong.  [Feature #4646]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-21 13:40:00 +00:00
nari
fe9fc6df01 * gc.c (gc_profile_clear): realloc profile records if its size is
higher than the threshold, GC_PROFILE_RECORD_DEFAULT_SIZE * 2.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-21 13:15:10 +00:00
shyouhei
5821c75148 revert r37710, requested by Tadayoshi Funaba [ruby-dev:46575]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37776 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-21 05:09:19 +00:00
naruse
9d71f70da9 * test/ruby/test_m17n_comb.rb (test_str_crypt): Use RbConfig to get
libc's directory. Patched by Vit Ondruch [ruby-core:49763] [Bug #7312]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 15:29:59 +00:00
naruse
bf445c240a fix guards for glibc crypt(3) see #7312
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 13:09:15 +00:00
nobu
c3da426d10 remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 12:34:37 +00:00
suke
a00a9a28fb * test/win32ole/test_win32ole_type.rb (test_implemented_ole_types):
IShellDispatch6 bundled in Windows 8. Thanks to phasis68 (Heesob
  Park).  [ruby-core:49580][Bug #7403]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 12:34:21 +00:00
ko1
1da641a16b * vm_trace.c: rename and add TracePoint APIs.
(1) TracePoint.new(...){...} creates a new trace point
  but does not make it enable.
  (2) TracePoint.trace(...){...} creats a new trace point
  and enable it (same as old behavior).
  (3) TracePoint#enable make it enable (renamed from TracePoint#retrace).
  If block given, when enable only in block.
  (4) TracePoint#disable make it disable (renamed from TracePoint#untrace).
  If block given, when disable only in block.
  (5) TracePoint#enabled? returns this trace is enable or not.
* test/ruby/test_settracefunc.rb: addd tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 11:05:20 +00:00
ko1
553931962a * vm_trace.c: add two methods:
(1) TracePoint#return_value which returns return
  value on the :return and :c_return event.
  (2) TracePoint#raised_exception which returns raised exception
  value on the :raise event.
  Eeach methods raise RuntimeError if it is called at unsupported
  event.
  Please review and give us feedback until next preview
  release (Dec/2012) of Ruby 2.0.0.
* insns.def, vm.c, vm_eval.c, vm_insnhelper.c, eval.c, thread.c:
  ditto.
* vm_trace.c, vm_core.h: move definition of rb_trace_arg_t from
  vm_trace.c to vm_core.h.
  Caller fills rb_trace_arg_t and pass the pointer of this variable.
* test/ruby/test_settracefunc.rb: fix tests to test this change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 09:48:24 +00:00
kosaki
4d3f768b41 * test/ruby/test_signal.rb (TestSignal#test_signame): fix windows
test failure. Process.kill on windows can't send a signal to
  another process.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 05:39:14 +00:00
naruse
29996bb313 Don't send INT signal itself.
On make test-all, it kills the process.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-20 00:50:58 +00:00
kosaki
58282ed667 * signal.c (sig_signame): implements Signal.signame method
[Feature #5613]
* test/ruby/test_signal.rb (test_signame): adds test for above
* NEWS: add an item about above



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-19 09:43:53 +00:00
nobu
7588c674d5 struct.c: yield assoc in each_pair
* struct.c (rb_struct_each_pair): yield associated pairs so that
  an unsplat argument can get both, for consistency with Hash,
  OpenStruct, and etc.  [ruby-dev:46533] [Bug #7382]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-19 07:31:05 +00:00
ko1
15d940b8b0 * thread.c: add `Thread#backtrace_locations' method.
This method is similart to `caller_locations' method for
  specific method.
  And fix to accept `level' and `n' parameters for `Thread#backtrace'
  and `Thread#backtrace_locations'.
  `caller' (and `caller_locations') do not return `caller' method
  frame.
  However, `Thread#backtrace' (and `Thread#backtrace_locations')
  return `Thread#backtrace' method frame itself
  if `Thread.current.backtrace' was called.
* vm_backtrace.c: ditto.
* internal.h: ditto.
* test/ruby/test_backtrace.rb: add tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-19 06:07:06 +00:00
tadf
2630ad09bd * bignum.c (rb_cstr_to_inum): should accept underscores of
sequence of two or more when unchecked mode.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-18 11:55:34 +00:00
tadf
20039668dd * complex.c (make_patterns): should not accept extra sign.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 14:57:22 +00:00
luislavena
6285597653 Skip path expansion for all wildcard characters
* win32/file.c (replace_to_long_name): skip expansion for all wildcard
  characters.
  [ruby-core:49451] [Bug #7374]

* test/ruby/test_file_exhaustive.rb: add more assertions to test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 12:46:17 +00:00
tenderlove
653b0bcbaf * ext/psych/lib/psych/visitors/yaml_tree.rb: use literal YAML style
when emitting multi-line strings. Thanks @atambo

* test/psych/test_yaml.rb: test for change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 03:15:54 +00:00
tenderlove
24c6a7c368 * ext/psych/lib/psych/scalar_scanner.rb: avoid raising exceptions when
parsing Floats and Integers. Thanks riffraff [ruby-core:44426]
* test/psych/test_numeric.rb: associated test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 03:11:22 +00:00
shirosaki
262cb379d6 st_update passes the key in st_table
* st.c (st_update): pass the key in st_table so that we can free
  memory of the key in st_table when deleting.
  [ruby-core:49220] [Bug #7330]

* test/-ext-/st/test_update.rb
  (Bug::StTable#test_pass_objects_in_st_table): add a test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-17 02:46:13 +00:00
luislavena
25058a58a2 skip long name conversion if last character is a wildcard one
* win32/file.c (replace_to_long_name): skip automatic path expansion
  when wildcard character is used.  [ruby-core:49451] [Bug #7374]

* test/ruby/test_file_exhaustive.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 22:43:22 +00:00
nagachika
f45f668fa1 * marshal.c (w_object): add flonum to arg->data to keep reference index
consistency. [ruby-core:49323] [Bug #7348]

* test/ruby/test_marshal.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 15:55:59 +00:00
nobu
1e6ced13be remove trailing spaces
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 06:41:05 +00:00
naruse
a632fe43d8 * test/rake/helper.rb (Rake::TestCase#setup): revert r37669.
@orig_PWD should be the original pwd.

* test/rake/test_*.rb: don't use @orig_PWD to load libraries.
  It should be specified with relative path from the file.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 03:49:09 +00:00
naruse
48aab9e032 * test/rake/helper.rb (Rake::TestCase#setup): @orig_PWD shouldn't be
Dir.pwd when the build directory is different from source directory.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 01:25:46 +00:00
drbrain
1b023030a8 * lib/rake*: Updated to rake 0.9.4
http://rake.rubyforge.org/doc/release_notes/rake-0_9_4_rdoc.html for
  a list of changes in 0.9.4.
* test/rake*:  ditto
* NEWS:  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-15 22:32:34 +00:00
drbrain
9c66bad9f3 * lib/rake*: Updated to rake 0.9.3
* test/rake*:  ditto
* bin/rake:  ditto
* NEWS:  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-15 21:59:37 +00:00
mame
412b023742 * range.c (range_bsearch): fix some bugs: a documentation bug, a wrong
condition, missed break in switch/case, and workaround for GCC
  optimization. See [ruby-core:49364] in detail.  A great patch from
  Heesob Park. [Bug #7352] [Feature #4766]

* array.c (rb_ary_bsearch): fix similar bug (missed break).

* test/ruby/test_range.rb: add two test cases for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-15 13:50:55 +00:00
mame
de07850e47 * array.c (rb_ary_bsearch): add Array#bsearch for binary search.
[ruby-core:36390] [Feature #4766]

* test/ruby/test_array.rb: add a test for above.

* range.c (range_bsearch): add Range#bsearch for binary search.
  [ruby-core:36390] [Feature #4766]

* test/ruby/test_range.rb: add a test for above

* NEWS: added the two new methods.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-14 15:53:50 +00:00
shugo
684aa1f985 * eval.c (rb_mod_using): raise an ArgumentError if cyclic using is
detected.  based on the patch by Charlie Somerville.
  [ruby-core:49092] Bug #7308

* test/ruby/test_refinement.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-13 09:05:18 +00:00
naruse
e7659bd2fd Define dtrace test classes only when dtrace exists
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-13 08:52:34 +00:00
tenderlove
4c740bae97 * probes.d: add DTrace probe declarations. [ruby-core:27448]
* array.c (empty_ary_alloc, ary_new): added array create DTrace probe.

* compile.c (rb_insns_name): allowing DTrace probes to access
  instruction sequence name.

* Makefile.in: translate probes.d file to appropriate header file.

* common.mk: declare dependencies on the DTrace header.

* configure.in: add a test for existence of DTrace.

* eval.c (setup_exception): add a probe for when an exception is
  raised.

* gc.c: Add DTrace probes for mark begin and end, and sweep begin and
  end.

* hash.c (empty_hash_alloc): Add a probe for hash allocation.

* insns.def: Add probes for function entry and return.

* internal.h: function declaration for compile.c change.

* load.c (rb_f_load): add probes for `load` entry and exit, require
  entry and exit, and wrapping search_required for load path search.

* object.c (rb_obj_alloc): added a probe for general object creation.

* parse.y (yycompile0): added a probe around parse and compile phase.

* string.c (empty_str_alloc, str_new): DTrace probes for string
  allocation.

* test/dtrace/*: tests for DTrace probes.

* vm.c (vm_invoke_proc): add probes for function return on exception
  raise, hash create, and instruction sequence execution.

* vm_core.h: add probe declarations for function entry and exit.

* vm_dump.c: add probes header file.

* vm_eval.c (vm_call0_cfunc, vm_call0_cfunc_with_frame): add probe on
  function entry and return.

* vm_exec.c: expose instruction number to instruction name function.

* vm_insnshelper.c: add function entry and exit probes for cfunc
  methods.

* vm_insnhelper.h: vm usage information is always collected, so
  uncomment the functions.

12 19:14:50 2012  Akinori MUSHA  <knu@iDaemons.org>

* configure.in (isinf, isnan): isinf() and isnan() are macros on
  DragonFly which cannot be found by AC_REPLACE_FUNCS().  This
  workaround enforces the fact that they exist on DragonFly.

12 15:59:38 2012  Shugo Maeda  <shugo@ruby-lang.org>

* vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo),
  vm_insnhelper.c (vm_search_method): revert r37616 because it's too
  slow.  [ruby-dev:46477]

* test/ruby/test_refinement.rb (test_inline_method_cache): skip
  the test until the bug is fixed efficiently.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-12 21:52:12 +00:00
shugo
afdfbde4e7 * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo),
vm_insnhelper.c (vm_search_method): revert r37616 because it's too
  slow.  [ruby-dev:46477]

* test/ruby/test_refinement.rb (test_inline_method_cache): skip
  the test until the bug is fixed efficiently.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-12 07:00:12 +00:00
tadf
cb9beafd11 * test/date/test_date_{parse,strptime}.rb: changed the format of
some extra messages.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-11 10:02:32 +00:00
naruse
64757d284a glibc 2.16 or later denies salt contained other than [0-9A-Za-z./] [Bug #7312]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-11 08:15:53 +00:00
nobu
5051186a0b hash.c: warn for wrong elements
* hash.c (rb_hash_s_create): just warn for wrong elements now.
  [ruby-dev:46440] [Bug #7300]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-11 06:39:08 +00:00
shugo
10ba3bdd53 * eval.c (top_using): remove Kernel#using, and add main.using instead.
* test/ruby/test_refinement.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-11 06:14:16 +00:00
shugo
b0c8aeeb9c * eval.c (rb_using_refinement, rb_mod_using, f_using): clear method
cache only when using is called explicitly.

* test/ruby/test_refinement.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-11 04:45:31 +00:00
shugo
ba5ea548ce * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo):
add a new field for inline method cache.

* vm_insnhelper.c (vm_search_method): check rb_call_info_t::refinements
  not to confuse inline method cache when module_eval is used with
  refinements.

* test/ruby/test_refinement.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-11 02:42:04 +00:00
marcandre
52c50bf5f5 Revert of 37541 "* test/ruby/test_enumerator.rb: Add test to shed light upon the bug"
[#7298]
This reverts commit 0ab21f9572.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-10 04:03:30 +00:00
nobu
62f7424640 erb.rb: safe concurrent use
* lib/erb.rb (ERB#run, ERB#result): eval under isolated bindings for
  safe concurrent use.  [ruby-core:47638] [Bug #7046]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-09 14:33:11 +00:00
naruse
efeee7afa9 * array.c (rb_ary_splice): fix r37583 doesn't condier the case when
beg > array length.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-09 11:04:05 +00:00