Commit graph

6433 commits

Author SHA1 Message Date
ko1
662cbf22fa * test/-ext-/postponed_job/test_postponed_job.rb: fix typo and class name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 00:24:23 +00:00
ko1
680f0b5ba4 * include/ruby/ruby.h, gc.c, vm_trace.c: add internal events.
* RUBY_INTERNAL_EVENT_NEWOBJ: object created.
* RUBY_INTERNAL_EVENT_FREE: object freeed.
* RUBY_INTERNAL_EVENT_GC_START: GC started.
  And rename `RUBY_EVENT_SWITCH' to `RUBY_INTERNAL_EVENT_SWITCH'.
  Internal events can not invoke any Ruby program because the tracing
  timing may be critical (under huge restriction).
  These events can be hooked only by C-extensions.
  We recommend to use rb_potponed_job_register() API to call Ruby
  program safely.
  This change is mostly written by Aman Gupta (tmm1).
  https://bugs.ruby-lang.org/issues/8107#note-12
  [Feature #8107]
* include/ruby/debug.h, vm_trace.c: added two new APIs.
* rb_tracearg_event_flag() returns rb_event_flag_t of this event.
* rb_tracearg_object() returns created/freeed object.
* ext/-test-/tracepoint/extconf.rb,
  ext/-test-/tracepoint/tracepoint.c,
  test/-ext-/tracepoint/test_tracepoint.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 00:21:02 +00:00
nobu
7f4d09d6a6 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-26 21:31:05 +00:00
ko1
e2793a908e * include/ruby/debug.h, vm_trace.c: add rb_postponed_job API.
Postponed jobs are registered with this API. Registered jobs
  are invoked at `ruby-running-safe-point' as soon as possible.
  This timing is completely same as finalizer timing.
  There are two APIs:
* rb_postponed_job_register(flags, func, data): register a
  postponed job with data. flags are reserved.
* rb_postponed_job_register_one(flags, func, data): same as
  `rb_postponed_job_register', but only one `func' job is
  registered (skip if `func' is already registered).
  This change is mostly written by Aman Gupta (tmm1).
  https://bugs.ruby-lang.org/issues/8107#note-15
  [Feature #8107]
* gc.c: use postponed job API for finalizer.
* common.mk: add dependency from vm_trace.c to debug.h.
* ext/-test-/postponed_job/extconf.rb, postponed_job.c,
  test/-ext-/postponed_job/test_postponed_job.rb: add a test.
* thread.c: implement postponed API.
* vm_core.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-26 21:30:44 +00:00
ktsj
9421b18662 * test/fiddle/test_handle.rb (Fiddle::TestHandle#test_static_sym): adjust indent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25 14:29:05 +00:00
ktsj
1dafd4ebf1 * test/fiddle/test_c_struct_entry.rb,
test/fiddle/test_c_union_entity.rb,
  test/fiddle/test_cparser.rb, test/fiddle/test_func.rb,
  test/fiddle/test_handle.rb, test/fiddle/test_import.rb,
  test/fiddle/test_pointer.rb: don't run test if the system
  don't support fiddle.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25 14:29:02 +00:00
mame
a0b3e03202 * dir.c (bracket): fix copy-paste error. When the first and last
characters of fnmatch range have different length, fnmatch may
  have wrongly matched a path that does not really match.
  Coverity Scan found this bug.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-25 09:32:47 +00:00
charliesome
9885529986 * variable.c (set_const_visibility): use rb_frame_this_func() instead
of rb_frame_callee() for getting the name of the called method

* test/ruby/test_module.rb: add test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-24 10:33:05 +00:00
naruse
c43dd625b6 * ext/strscan/strscan.c (strscan_aref): raise error if given
name reference is not found.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-24 07:32:45 +00:00
nobu
ec04fecda5 * test/ruby/test_io.rb (TestIO#test_write_32bit_boundary): HFS+ seems
not supporting a sparce file.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-23 03:00:52 +00:00
nobu
ded54cb860 test_io.rb: test for write
* test/ruby/test_io.rb (TestIO#test_write_32bit_boundary): add test
  for write part.  [ruby-core:55098] [Bug #8431]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-23 02:14:07 +00:00
naruse
7a32434fb6 Fix test failure of binmode from r40879
20130521T131601Z.log.html.gz

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-22 10:36:28 +00:00
nobu
a815b56d84 win32.c: check error of SetFilePointer
* win32/win32.c (setup_overlapped): check the error code in addition
  to the result of SetFilePointer() to determine if an error occurred,
  because INVALID_SET_FILE_POINTER is a valid value.
  [ruby-core:55098] [Bug #8431]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-22 06:19:03 +00:00
naruse
ecd5bbe82a * ext/strscan/strscan.c (strscan_aref): support named captures.
patched by Konstantin Haase [ruby-core:54664] [Feature #8343]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21 13:48:57 +00:00
kou
9662e3ded5 * test/ruby/test_dir_m17n.rb (TestDir_M17N#test_entries_compose):
Use #each instead of #map just for iteration.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21 12:50:21 +00:00
knu
07a6b4cbb5 * ext/digest/lib/digest.rb (Digest::Class.file): Take optional
arguments that are passed to the constructor of the digest
  class.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21 12:41:34 +00:00
nobu
0fd2c7e67b test_dir_m17n.rb: sort Dir.entries
* test/ruby/test_dir_m17n.rb (test_entries_compose): the order on the
  filesystem does not matter, so sort Dir.entries result to compare.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40875 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21 07:43:40 +00:00
naruse
32c5c675f2 force_encoding expected result as filesystem encoding
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-21 06:08:04 +00:00
nobu
1891b60f26 dir.c: compose HFS file names
* dir.c (dir_each): compose HFS file names from
  UTF8-MAC. [ruby-core:48745] [Bug #7267]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20 18:11:23 +00:00
nobu
a7092270da test_dir_m17n.rb: assert_separately
* test/ruby/test_dir_m17n.rb: prefer assert_separately over
  assert_ruby_status for more descriptive messages.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20 18:10:34 +00:00
nobu
80db7cc4fe envutil.rb: envutil in child
* test/ruby/envutil.rb (assert_separately): require envutil in the
  child process too.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20 18:08:55 +00:00
nobu
596cecb057 test_objectspace.rb: run test_each_object separately
* test/ruby/test_objectspace.rb (TestObjectSpace#test_each_object):
  run separately.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20 02:22:35 +00:00
nobu
88bcccd433 webrick: fix non-ascii escape bugs
* lib/webrick/htmlutils.rb (WEBrick::HTMLUtils#escape): replace HTML
  meta chars even in non-ascii string.  [Bug #8425] [ruby-core:55052]
* lib/webrick/httputils.rb (WEBrick::HTTPUtils#{_escape,_unescape}):
  fix %-escape encodings.  [Bug #8425] [ruby-core:55052]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-20 01:40:30 +00:00
naruse
df425a015a Default script encoding is now UTF-8
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-19 15:44:09 +00:00
ayumin
a920927afd * test/webrick/test_htmlutils.rb: add test for WEBrick::HTMLUtils.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-19 14:58:00 +00:00
naruse
53fdb30e7f * lib/uri/common.rb (URI.decode_www_form): scrub string if decoded
bytes are invalid for the encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-18 18:58:13 +00:00
knu
2849ee5d18 * lib/set.rb (Set#delete_if, Set#keep_if): Make Set#delete_if and
Set#keep_if more space and time efficient by avoiding to_a.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-18 17:48:18 +00:00
naruse
05c0a22854 * string.c (str_scrub_bang): add String#scrub!. [Feature #8414]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-18 11:16:56 +00:00
nobu
e38a2399d2 compile.c: forward kwrest
* compile.c (iseq_compile_each): forward anonymous and first keyword
  rest argument one.  [ruby-core:55033] [Bug #8416].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-18 07:38:55 +00:00
nobu
8a28e97ae9 enumerator.c: use VALUE
* enumerator.c (inspect_enumerator): use VALUE instead of mere char*
  by using rb_sprintf() and rb_id2str().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-18 02:05:17 +00:00
tenderlove
7ceafcbdf5 * ext/psych/lib/psych.rb: Adding Psych.safe_load for loading a user
defined, restricted subset of Ruby object types.
* ext/psych/lib/psych/class_loader.rb: A class loader for
  encapsulating the logic for which objects are allowed to be
  deserialized.
* ext/psych/lib/psych/deprecated.rb: Changes to use the class loader
* ext/psych/lib/psych/exception.rb: ditto
* ext/psych/lib/psych/json/stream.rb: ditto
* ext/psych/lib/psych/nodes/node.rb: ditto
* ext/psych/lib/psych/scalar_scanner.rb: ditto
* ext/psych/lib/psych/stream.rb: ditto
* ext/psych/lib/psych/streaming.rb: ditto
* ext/psych/lib/psych/visitors/json_tree.rb: ditto
* ext/psych/lib/psych/visitors/to_ruby.rb: ditto
* ext/psych/lib/psych/visitors/yaml_tree.rb: ditto
* ext/psych/psych_to_ruby.c: ditto
* test/psych/helper.rb: ditto
* test/psych/test_safe_load.rb: tests for restricted subset.
* test/psych/test_scalar_scanner.rb: ditto
* test/psych/visitors/test_to_ruby.rb: ditto
* test/psych/visitors/test_yaml_tree.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-14 17:26:41 +00:00
tenderlove
d7f06a665c * test/psych/helper.rb: envutil is not available outside Ruby, so
port the functions from envutil to the test helper.

* test/psych/test_deprecated.rb: ditto

* test/psych/test_encoding.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-14 17:07:51 +00:00
nagachika
c7d7ff45f1 * ext/dl/lib/dl/func.rb (DL::Function#call): check tainted when
$SAFE > 0.
* ext/fiddle/function.c (function_call): check tainted when $SAFE > 0.
* test/fiddle/test_func.rb (module Fiddle): add test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-14 11:06:58 +00:00
nobu
0824f9f224 proc.c: Kernel#singleton_method
* proc.c (rb_obj_singleton_method): new method Kernel#singleton_method
  which returns a Method object of the singleton method.
  non-singleton method causes NameError, but not aliased or zsuper
  method, right now.
  [ruby-core:54914] [Feature #8391]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-13 05:52:03 +00:00
kazu
6210fc9fe5 fix a typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-12 02:33:45 +00:00
akr
975e43b8cb * test/rinda/test_rinda.rb: Socket.getifaddrs may returns an interface
which #addr method returns nil for venet0 in OpenVZ.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-11 13:08:59 +00:00
akr
e3a2145d22 Add debug print to investigate a failure on Travis-CI.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-11 12:02:08 +00:00
naruse
ae17f7ab7d Simplify test with Socket.getifaddrs
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-11 10:51:22 +00:00
akr
b323d7d54c * ext/socket: New method, Socket.getifaddrs, implemented.
[ruby-core:54777] [Feature #8368]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-11 08:32:26 +00:00
akr
fade664f91 disable test_fcntl_lock_linux on x32.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-11 02:50:35 +00:00
nobu
ecddb96785 parse.y: invalid name as mere string
* parse.y (parser_peek_variable_name): treat invalid global, class,
  and instance variable names as mere strings rather than errors.
  [ruby-core:54885] [Bug #8375]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-10 14:56:40 +00:00
nobu
14c9944e88 * test/dtrace/helper.rb: ignore empty SUDO. reuse SUDO value by using
class variable.  use test/unit instead of minitest/autorun.  dispose
  `Interrupted system call' error messages at parallel test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-10 01:48:20 +00:00
ryan
8daa0d49cf Fixed minitest dependency bug by removing env PARALLEL checks (no clue why that was there). Exactly the same minitest code tho.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-10 00:55:03 +00:00
akr
adb575e21e * ext/socket/ancdata.c (bsock_sendmsg_internal): Always set
controls_num to raise NotImplementedError appropriately.
  (bsock_recvmsg_internal): Raise NotImplementedError if
  :scm_rights=>true is given on platforms which don't have
  4.4BSD style control message.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-09 11:48:29 +00:00
nobu
e8bdef657a class.c: include modules only
* class.c (rb_mod_included_modules): should not include non-modules.
  [ruby-core:53158] [Bug #8025]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-08 16:05:50 +00:00
nobu
3fd0000c0c class.c: exclude original module
* class.c (rb_mod_included_modules): should not include the original
  module itself.  [ruby-core:53158] [Bug #8025]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-08 13:47:11 +00:00
naruse
4834aa5307 * io.c (rb_io_ext_int_to_encs): ignore internal encoding if external
encoding is ASCII-8BIT. [Bug #8342]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-08 08:47:26 +00:00
nobu
85280f4b55 parse.y: fail if invalid name
* parse.y (parser_yylex): fail if $, @, @@ are not followed by a valid
  name character.  [ruby-core:54846] [Bug #8375].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-08 04:07:22 +00:00
nobu
4dfd373905 test_scanner_events.rb: assert_location
* test/ripper/test_scanner_events.rb (TestRipper#assert_location):
  rename so skipped in backtraces.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-08 04:07:21 +00:00
nobu
f620e9e7d3 * test/ruby/test_defined.rb (TestDefined#test_super_toplevel):
additional test for r40584.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-05 10:02:41 +00:00