Commit graph

6433 commits

Author SHA1 Message Date
nobu
a106b310e5 vm_method.c: drop include_all flag
* vm_method.c (rb_obj_respond_to): drop optional include_all flag if
  respond_to? method is defined in old style.  [Bug #7722]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 07:25:27 +00:00
ko1
88101695ab * proc.c (rb_binding_new_with_cfp): permit to create binding object
of IFUNC frame.
  When `rb_binding_new_with_cfp()' is called, VM finds out the first
  normal (has iseq) frame and create a binding object of this frame
  and create Env objects. `ep's of related frames are updated
  (`ep's point Env object managed spaces).
  However, `ep' of skipped IFUNC frame was not updated and
  old invalid `ep' was remained. It causes serious problems.
  To solve this issue, permit IFUNC to create binding.
  (Maybe there is no problem on it)
  [ruby-dev:46908] [ruby-trunk - Bug #7774]
* test/ruby/test_settracefunc.rb: add a test.
* vm.c (rb_vm_get_binding_creatable_next_cfp), vm_core.h: added.
* vm_trace.c: fix to use `rb_vm_get_binding_creatable_next_cfp()'.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 06:04:59 +00:00
marcandre
d22ce4a522 * numeric.c (fix_pow): Handle special cases when base is 0, -1 or +1
[Bug #5713] [Bug #5715]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 05:39:49 +00:00
marcandre
8797ebd662 * rational.c (nurat_expt): Deal with special cases for rationals 0, ±1
[bug #5713] [bug #5715]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 05:39:33 +00:00
nobu
55f0fa5a7a test_range.rb: refine message
* test/ruby/test_range.rb (TestRange#test_bsearch_with_mathn): refine
  failure messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 04:45:23 +00:00
nobu
490f1fc009 console.c: default by stty raw
* ext/io/console/console.c (rawmode_opt): use default values by `stty
  raw`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 04:27:57 +00:00
marcandre
e29e4b55ab * range.c: Use div instead of / for bsearch
* test/ruby/test_range.rb: Test showing bug when requiring mathn

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 03:51:09 +00:00
marcandre
1677cbce9d * enumerator.c: Use to_enum for Enumerable methods returning Enumerators.
This makes Lazy#cycle no longer needed, so it was removed.
  Make Enumerator#chunk and slice_before return lazy Enumerators.
  [Bug #7715]

* internal.h: Remove ref to rb_enum_cycle_size; no longer needed

* enum.c: Make enum_cycle_size static.

* test/ruby/test_lazy_enumerator.rb: Test for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 03:49:59 +00:00
marcandre
44cd5f21e9 * enumerator.c: Finalize and document Lazy.new. [Bug #7248]
Add Lazy#to_enum and simplify Lazy#size.

* test/ruby/test_lazy_enumerator.rb: tests for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 03:49:41 +00:00
drbrain
1633e543db * lib/rubygems/commands/push_command.rb: Fixed credential download for
`gem push --host`
* lib/rubygems/gemcutter_utilities.rb:  ditto.
* test/rubygems/test_gem_commands_push_command.rb:  Test for the above.
* test/rubygems/test_gem_gemcutter_utilities.rb:  ditto.

* lib/rubygems/config_file.rb:  Abort if the `gem push` credentials
  file has insecure permissions.
* test/rubygems/test_gem_config_file.rb:  Test for the above.

* lib/rubygems/ext/builder.rb:  Do not look for Gemfile, Isolate, etc.
  while building gem extensions.

* lib/rubygems/package.rb:  Unset spec and files list if a gem's
  signatures cannot be verified.
* test/rubygems/test_gem_package.rb:  Test for the above.

* lib/rubygems/specification.rb:  Reduce use of eval.
* lib/rubygems/test_case.rb:  ditto.

* test/rubygems/test_gem_specification.rb:  Test setting
  specification_version for legacy gems.  Dup Gem.ruby before
  untainting in case it's frozen.

* lib/rubygems.rb:  Reduce use of eval.  Only read files when looking
  for Gemfile, Isolate, etc.
* test/rubygems/test_gem.rb:  Test for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 02:37:35 +00:00
nobu
b381a662fe test_io_console.rb: descriptive assertions
* test/io/console/test_io_console.rb (test_stringio_getch): use more
  descriptive assertions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-03 07:54:24 +00:00
nobu
f050b22327 console.c: fix unit of min
* ext/io/console/console.c (rawmode_opt): min is minimum characters,
  not tenths.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39029 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-03 07:54:18 +00:00
mame
7dc77be299 * lib/fileutils.rb (copy_entry, wrap_traverse): preserve attributes of
directories on FileUtils.cp_r.  The fix was proposed by Jan
  Wedekind.  [Bug #7246]

* test/fileutils/test_fileutils.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-02 03:54:00 +00:00
mame
4077b9b89d * lib/fileutils.rb: chmod/chmod_R with a string mode (e.g., "+x")
caused error in verbose mode.

* test/fileutils/test_fileutils.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-02 03:07:17 +00:00
marcandre
f810d1804a * proc.c (proc_curry): Fix arity check [Bug #5747]
* test/ruby/test_proc.rb: Test for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-01 22:46:32 +00:00
marcandre
83610815d4 * proc.c: Add {*}_min_max_arity and refactor.
[Bug #7765]

* test/ruby/test_proc.rb: Fix wrong test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-01 22:46:07 +00:00
charliesome
86aa98fed4 * array.c (rb_ary_dup): make returned array the same class as the original
array [Bug #7768] [ruby-core:51792]
* test/ruby/test_array.rb (class TestArray): add test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-01 14:05:49 +00:00
nobu
3fe939564f marshal.c: prohibit_ivar
* marshal.c (r_object0): prohibit setting instance variables of
  exising class/module.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-01 07:35:37 +00:00
nobu
20af032e82 parse.y: no assigned but unused warnings in eval
* parse.y (local_push_gen): no assigned but unused variable warnings
  in eval as well as -e.  [Feature #7730] [ruby-core:51580]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-31 07:33:30 +00:00
kosaki
b10e6b69a5 * test/ruby/test_signal.rb (test_trap_puts): Fix typo. "sync"
should be "STDOUT.sync".

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-31 07:08:23 +00:00
shugo
4ccfb2743f * ext/socket/raddrinfo.c (rsock_unix_sockaddr_len): return
sizeof(sa_familiy_t) if path is empty.  see "Autobind Feature" in
  unix(7) for details.

* ext/socket/lib/socket.rb (unix_socket_abstract_name?): treat an
  empty path as an abstract name.

* test/socket/test_unix.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-31 04:59:31 +00:00
shugo
e16b8482c7 * ext/socket/unixsocket.c (rsock_init_unixsock): use rb_inspect()
because rb_sys_fail_str() fails if its argument contains NUL.

* test/socket/test_unix.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-30 06:30:12 +00:00
nobu
5efb130d39 vm_dump.c: important message first
* vm_dump.c (rb_vm_bugreport): show the most important message, Crash
  Report log information, first.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-30 06:21:33 +00:00
marcandre
20c0fb69d6 * array.c (rb_ary_bsearch): Raise TypeError on bad return from block
* range.c (range_bsearch): ditto

* test/ruby/test_array.rb (class): Test for above

* test/ruby/test_range.rb (class): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-30 06:00:24 +00:00
marcandre
00d6bb5108 * range.c: Restrict bsearch to integers [#7728]
* test/ruby/test_range.rb: Test for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-30 05:46:48 +00:00
marcandre
39048aca75 * array.c (rb_ary_bsearch): Return enumerator if no block [#7725]
* range.c (range_bsearch): ditto

* test/ruby/test_array.rb: Test for above

* test/ruby/test_range.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-30 05:11:03 +00:00
nobu
71eddb1dea parse.y: warn assigned but unused in toplevel
* parse.y (local_push_gen): warn assigned but unused variables also in
  toplevel, except for -e option.  [Feature #7730] [ruby-core:51580]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-30 04:22:12 +00:00
nobu
29707c1d73 cont.c: fiber local svar
* cont.c (cont_restore_thread): svar should be separate per fibers.
  [ruby-core:51331] [Bug #7678]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-30 04:17:59 +00:00
marcandre
3df94d7b5d * re.c (reg_operand): Simplify and reuse error handling [Bug #7539]
* test/ruby/test_regexp.rb: Test for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 22:15:23 +00:00
marcandre
c34e9f23aa * object.c: Improve error for failed implicit conversions [Bug #7539]
* error.c: Adapt rdoc

* test/ruby/test_object.rb: Test for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 22:00:58 +00:00
marcandre
115a51f8ec * range.c: Fix Range#bsearch for floats [Bug #7724]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 22:00:36 +00:00
nobu
e3f88ac44d test_settracefunc.rb: fix tests
* test/ruby/test_settracefunc.rb (assert_security_error_safe4): fix
  tests to set $SAFE separatedly

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 08:58:04 +00:00
ko1
18e01f6381 * vm_backtrace.c: fix issue of rb_debug_inspector_open().
The order of making binding should be stack (frame) top to bottom.
  [Bug #7635]
  And also fix issue of collecting klass. Collecting klass is same
  as TracePoint#defined_class.
  (previous version, it returns T_ICLASS (internal objects).
* test/-ext-/debug/test_debug.rb: add a test.
* ext/-test-/debug/extconf.rb, init.c, inspector.c: ditto.
* vm_backtrace.c: remove magic number and add enum CALLER_BINDING_*.
* vm_backtrace.c, include/ruby/debug.h: add new C api (experimental)
  rb_debug_inspector_frame_self_get().
* vm.c, vm_core.h, vm_trace.c: move decl. of
  rb_vm_control_frame_id_and_class() and constify first parameter.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 08:25:32 +00:00
nobu
499ca89e24 vm_trace.c: TracePoint safe level check
* vm_trace.c (rb_tracepoint_enable, rb_tracepoint_disable): check safe
  level as well as set_trace_func.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 07:51:00 +00:00
nobu
e26c2bc21b vm_trace.c: trace_func safe level check
* vm_trace.c (set_trace_func, thread_{add,set}_trace_func_m): check
  safe level as well as 1.8.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 07:50:27 +00:00
nobu
b0c4ac7779 proc.c: original arity
* proc.c (rb_mod_method_arity): return original arity of the method if
  aliased because of visibility change, like as Method#arity.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 07:49:22 +00:00
akr
2d55537dce * test/ruby/test_marshal.rb: remove temporally files early.
* test/ruby/test_process.rb: ditto.

* test/psych/test_exception.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 03:06:40 +00:00
shugo
a1ed445b81 * ext/socket/socket.c (sock_s_pack_sockaddr_un): calculate the
correct address length of an abstract socket.

* test/socket/test_unix.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 00:32:05 +00:00
nobu
43ce5ce1b4 envutil.rb: no core dump
* test/ruby/envutil.rb (assert_separately): imply no core dump.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-28 08:51:41 +00:00
nobu
b2ca2c58f1 test_system.rb: commit miss
* test/ruby/test_system.rb (TestSystem#test_system_redirect_win): fix
  intentional failure left carelessly.  [Bug #7482]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-27 13:13:12 +00:00
nobu
d10cea5010 test_system.rb: indent
* test/ruby/test_system.rb (TestSystem#test_system): adjust indent

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-27 04:04:26 +00:00
nobu
ad1715f0b9 test_system.rb: fix test
* test/ruby/test_system.rb (TestSystem#test_system_redirect_win): fix
  meaningless test.  [Bug #7482]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38956 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-27 04:04:23 +00:00
nobu
3d0786a3a8 marshal.c: marshal_dump instance varialbes
* marshal.c (w_object): dump instance varialbes of the result of
  marshal_dump not the original object.  [ruby-core:51163] [Bug #7627]
* complex.c (nucomp_marshal_dump): need to copy instance variables.
* rational.c (nurat_marshal_dump): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-26 13:39:15 +00:00
kosaki
0dddb4b328 * test/ruby/test_io.rb (test_ioctl_linux): skip if a platform is
not x86 because linux ioctl request number depend on cpu arch.
  At least, alpha, mips, sparc and ppc have a different number.
  [Bug #7718] [ruby-core:51544]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-25 17:15:05 +00:00
shugo
ad55d141eb * ext/socket/raddrinfo.c (rsock_unixpath_len, init_unix_addrinfo),
ext/socket/unixsocket.c (unixsock_connect_internal,
  rsock_init_unixsock): calculate the correct address length of
  an abstract socket.  Without this fix, sizeof(struct sockaddr_un)
  is specified as the length of an abstract socket for bind(2) or
  connect(2), so the address of the socket is filled with extra NUL
  characters.  See unix(7) for details.

* ext/socket/lib/socket.rb (unix_server_socket): don't access the
  file system if the platform is Linux and path starts with NUL,
  which means that the socket is an abstract socket.

* test/socket/test_unix.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-25 08:15:26 +00:00
nobu
8cc69387e0 test_process.rb: reduce command string size
* test/ruby/test_process.rb (test_spawn_too_long_path),
  (test_aspawn_too_long_path): reduce command string size until
  intended exception occurs.  [ruby-core:51592] [Bug #7721]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-25 01:37:34 +00:00
drbrain
2d579c0074 * lib/rdoc/generator/darkfish.rb: Fixed debug message. RDoc bug #174
by Thomas Leitner.

* lib/rdoc/store.rb:  Fixed deletion of ri attribute data when a class
  was loaded then saved.  RDoc bug #171 by Thomas Leitner.
* test/rdoc/test_rdoc_store.rb:  Test for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-25 00:15:08 +00:00
marcandre
aab2f788d7 * enumerator.c (lazy_zip): raise error for bad arguments
[Bug #7706]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-24 07:50:33 +00:00
marcandre
1af390b1ea * enumerator.c: Optimize Lazy#zip when passed only arrays
[Bug #7706]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-24 07:05:42 +00:00
marcandre
41d6ba8765 * enumerator.c: Fix state handling for Lazy#zip
[bug #7696] [bug #7691]

* test/ruby/test_lazy_enumerator.rb: test for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-24 06:24:22 +00:00