Граф коммитов

22024 Коммитов

Автор SHA1 Сообщение Дата
naruse b285af6468 * enc/euc_jp.c: fix typo: the name of EUC-JIS-2004.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-01 17:11:48 +00:00
charliesome 8b1b2638f3 * vm_eval.c (rb_mod_module_eval): mention in docs that arguments passed
to the method are passed to the block

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-01 14:17:14 +00:00
knu 6bdfe415df * lib/set.rb (Set#freeze, taint, untaint): Save a "self" by
utilizing super returning self, and add tests while at it.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-01 09:01:16 +00:00
nobu 4a223fb67f compile.c: not simple if keyword args
* compile.c (iseq_set_arguments): not a simple single argument if any
  keyword arguments exist.  [ruby-core:55203] [Bug #8463]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-01 08:25:05 +00:00
nobu 06c7ede259 vm_insnhelper.c: extract keyword arguments after splat
* vm_insnhelper.c (vm_yield_setup_block_args): split single parameter
  if any keyword arguments exist, and then extract keyword arguments.
  [ruby-core:55203] [Bug #8463]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-01 08:21:39 +00:00
kazu a10ea5b94d remove duplicated entry
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-01 02:25:47 +00:00
nobu e71d501ee0 error.c: better names for rb_exc_new family
* error.c (rb_exc_new_cstr): rename from rb_exc_new2.
* error.c (rb_exc_new_str): rename from rb_exc_new3.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-01 02:16:25 +00:00
nobu d956526a76 string.c: remove old interfaces
* string.c (rb_str_new[2-5], rb_{tainted,usascii}_str_new2),
  (rb_str_buf_new2): remove old interfaces.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-01 01:13:21 +00:00
mrkn 8663df2f20 Restore the removed change-log entries
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-01 01:00:10 +00:00
nobu aa8cc01aa3 zlib.c: check EOF
* ext/zlib/zlib.c (gzfile_read, gzfile_read_all, gzfile_getc),
  (gzreader_gets): check EOF.  [ruby-core:55220] [Bug #8467]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 23:00:48 +00:00
akr ce20b98b14 * bignum.c: Use BDIGIT type for hbase.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 22:32:55 +00:00
nobu b77f98aac2 ChangeLog: revert accidentally removed entries
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 22:17:04 +00:00
naruse a78e45b5fe * ext/socket/option.c (sockopt_s_byte): constructor of the sockopt
whose value's is byte.

* ext/socket/option.c (sockopt_byte): getter for above.

* ext/socket/option.c (inspect_byte): inspect for above.

* ext/socket/option.c (sockopt_s_ip_multicast_loop): constructor of
  the sockopt whose optname is IP_MULTICAST_LOOP.

* ext/socket/option.c (sockopt_ip_multicast_loop): getter for above.

* ext/socket/option.c (sockopt_s_ip_multicast_ttl): constructor of
  the sockopt whose optname is IP_MULTICAST_TTL.

* ext/socket/option.c (sockopt_ip_multicast_ttl): getter for above.

* ext/socket/option.c (sockopt_inspect): use above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 17:37:55 +00:00
mrkn 1db209763a * ext/bigdecimal/bigdecimal.c (BigDecimal_power): use rb_dbl2big
to convert a double value to a Bignum.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 16:59:09 +00:00
akr 25e5a75863 * bignum.c (calc_hbase): Make hbase the maximum power of base
representable in BDIGIT.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 15:24:47 +00:00
akr 2a38d9043e * bignum.c (calc_hbase): Extracted from rb_big2str0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 14:57:03 +00:00
akr fc1f9d2cb2 * bignum.c: Don't hard code SIZEOF_BDIGITS for log_base(hbase).
(big2str_orig): hbase_numdigits argument added.
  (big2str_karatsuba): Ditto.
  (rb_big2str0): Calculate hbase_numdigits.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 14:24:31 +00:00
zzak 1d80ad6a39 * process.c: Improve Process::exec documentation
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 08:58:06 +00:00
nobu 0544c09761 vm_eval.c: new names of rb_funcall family
* vm_eval.c (rb_funcallv): add better names of rb_funcall2.
* vm_eval.c (rb_funcallv_public): ditto for rb_funcall3.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 08:27:06 +00:00
nobu 1c5cdc62cc array.c: new names of rb_ary_new family
* array.c (rb_ary_new_capa): add better names of rb_ary_new2.
* array.c (rb_ary_new_from_args): ditto for rb_ary_new3.
* array.c (rb_ary_new_from_values): ditto for rb_ary_new4.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 08:04:56 +00:00
nobu 58bec3e2cb configure.in: HAVE_ATTRIBUTE_FUNCTION_ALIAS
* configure.in (HAVE_ATTRIBUTE_FUNCTION_ALIAS): define to tell if
  alias attribute is available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 07:36:19 +00:00
zzak acae96deb7 * object.c, proc.c: s/call_seq/call-seq in rdoc. [Fix GH-322]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 07:04:33 +00:00
zzak ee0478bce9 * ext/openssl/ossl_ssl.c: Add missing paren in rdoc [Fix GH-321]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 07:02:11 +00:00
nobu 6f017366ad vm_method.c: extract set_visibility
* vm_method.c (set_visibility): extract from rb_mod_public(),
  rb_mod_protected() and rb_mod_private().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 02:58:45 +00:00
mame 6f9f8d2ef7 * vm_insnhelper.c (vm_callee_setup_keyword_arg,
vm_callee_setup_arg_complex): consider a hash argument for keyword
  only when the number of arguments is more than the expected
  mandatory parameters.  [ruby-core:53199] [ruby-trunk - Bug #8040]

* test/ruby/test_keyword.rb: update a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-30 10:50:41 +00:00
zzak 89a452c7c1 * process.c: RDoc on Process.spawn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-30 08:55:41 +00:00
xibbar 38a14c68e0 fix a typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-30 07:59:27 +00:00
ko1 6e19585ac7 * gc.c (gc_profile_enable): rest_sweep() to finish last GC.
Profiling record is allocated at first of marking phase.
  Enable at lazy sweeping may cause an error (SEGV).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-29 15:10:28 +00:00
kazu 76300fbae2 fix a typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-29 01:44:24 +00:00
ko1 68f96f6c3c * hash.c: fix WB bug.
(1) Hash's key also needs WB.
  (2) callback parameter *key and *value of st_update() is not a
  storage of st_table itself (only local variable). So that
  OBJ_WRITE() is not suitable, especially for `!exsinting'.
  OBJ_WRITTEN() is used instead of OBJ_WRITE().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-29 01:38:52 +00:00
kazu 57edd09603 trivial change
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-28 12:15:31 +00:00
ko1 7453c53b08 * ext/objspace/object_tracing.c: fix a bug reported at
"[ruby-core:55182] [ruby-trunk - Bug #8456][Open] Sugfault in Ruby Head"
  Care about the case TracePoint#path #=> `nil'.
* ext/objspace/object_tracing.c: add two new methods:
* ObjectSpace.allocation_class_path(o)
* ObjectSpace.allocation_method_id(o)
  They are not useful for Object.new because they are always
  "Class" and :new.
  To trace more useful information, we need to maintain call-tree
  using call/return hooks, which is implemented by
  ll-prof <http://sunagae.net/wiki/doku.php?id=software:llprof>
* test/objspace/test_objspace.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-28 03:36:34 +00:00
nobu b0e7ec8c9a extmk.rb: untouch makefiles
* ext/extmk.rb (extmake): leave makefiles untouched if the content is
  not changed, to get rid of unnecessary re-linking.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-28 02:30:13 +00:00
ko1 30dbed3837 * ext/objspace/gc_hook.c, ext/objspace/objspace.c: add new methods to
hook GC invocation.
* ObjectSpace.after_gc_start_hook=(proc)
* ObjectSpace.after_gc_end_hook=(proc)
  Note that hooks are not kicked immediately. Procs are kicked
  at postponed_job.
  This feature is a sample of new internal event and
  rb_postponed_job API.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 18:14:28 +00:00
ko1 b01c4ddfce * gc.c (gc_stat): remove wrong rest_sweep().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 17:57:08 +00:00
ko1 8a81b54a2b * gc.c (garbage_collect_body): fix GC_ENABLE_LAZY_SWEEP condition.
* gc.c (GC_NOTIFY): move debug print location and use stderr instead
  of stdout.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 17:46:20 +00:00
ko1 c180e0d880 * vm_trace.c (rb_postponed_job_register_one): fix iteration bug.
* ext/-test-/postponed_job/postponed_job.c,
  test/-ext-/postponed_job/test_postponed_job.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 17:08:25 +00:00
ko1 f72bd6e720 add a ChangeLog.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 15:46:09 +00:00
ko1 e4c58251b7 * include/ruby/ruby.h, gc.c: add new internal event
RUBY_INTERNAL_EVENT_GC_END. This event invokes at the end of
  after_sweep().
  Time chart with lazy sweep is here:
  (1) Kick RUBY_INTERNAL_EVENT_GC_START
  (2) [gc_marks()]
  (3) [lazy_sweep()]
  (4) [... run Ruby program (mutator) with lazy_sweep() ...]
  (5) [after_sweep()]
  (6) Kick RUBY_INTERNAL_EVENT_GC_END
  (7) [... run Ruby program (mutator), and go to (1) ...]
* ext/-test-/tracepoint/tracepoint.c,
  test/-ext-/tracepoint/test_tracepoint.rb: modify a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 15:40:27 +00:00
ko1 eccb729a3f * vm_trace.c (rb_postponed_job_flush): remove a wrong comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 15:19:36 +00:00
akr 783cffce1d * include/ruby/ruby.h (RHASH_SIZE): Add a cast to suppress a
warning, comparison between signed and unsigned integer
  expressions [-Wsign-compare], on ILP32.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 13:11:06 +00:00
ko1 f0b6cb6fc7 * include/ruby/ruby.h: rename RUBY_INTERNAL_EVENT_FREE to
RUBY_INTERNAL_EVENT_FREEOBJ.
* ext/-test-/tracepoint/tracepoint.c,
  ext/objspace/object_tracing.c,
  gc.c, vm_trace.c: catch up this change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 10:28:25 +00:00
ko1 050dd10d6f * ext/objspace/objspace.c: support ObjectSpace.trace_object_allocations.
Read the following test to know HOWTO.
  This feature is a sample of RUBY_INTERNAL_EVENT.
* test/objspace/test_objspace.rb: add a test.
* ext/objspace/object_tracing.c: ditto.
* gc.c (rb_gc_count): add. THis function returns GC count.
* internal.h: add decl. of rb_gc_count(). Same as `GC.count'.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 10:01:45 +00:00
nobu 14f6c8ca8a rbinstall.rb: reject empty files
* tool/rbinstall.rb (install_recursive): add maxdepth option.
* tool/rbinstall.rb (bin-comm): limit depth of bindir and reject empty
  files.  [ruby-core:55101] [Bug #8432]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40956 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 08:33:47 +00:00
ko1 a1b1b6f7fb * vm_trace.c (rb_postponed_job_flush, rb_postponed_job_register): use
ruby_xmalloc/xfree. It is safe during GC.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 07:17:30 +00:00
kazu 308d5d0cf3 fix typos
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-27 05:46:42 +00:00
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
ko1 96090c083d * ext/-test-/postponed_job/postponed_job.c: fix `init' function name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-26 23:40:01 +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