Commit graph

24190 commits

Author SHA1 Message Date
naruse
1f6a7c18f5 * ext/date/date_core.c (DAY_IN_NANOSECONDS): refix: 31438.
check with LONG_MAX and cast as long; without this the calculation
  will be done as int and overflow.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-06 08:38:36 +00:00
svn
534388dd17 * 2011-05-06
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-06 06:19:20 +00:00
shyouhei
e3a69233e6 * ext/syck/rubyext.c (mktime_do): avoid buffer overrun, by
silently ignoring lesser significant digits.  Required buffer
  length can be computable so you might at first think of
  allocating enough memory space on the fly using alloca().  That
  is a wrong idea because when using alloca there is always risk
  of integer overflow.  A function that accepts outer-process
  resources like this should not blindly trust its inputs.  In
  this particular case we just want to generate miliseconds
  resolution by strtod() so the string in question needs no more
  length than what we originally have.  Ignoring lesser
  significant digits should suffice I believe.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-06 06:19:17 +00:00
shyouhei
be237a9d8f ChangeLog for it
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-06 06:19:14 +00:00
shyouhei
dbbfac20fc YAML.load time correctly parse usecs smaller than 1 fixes #4571
Signed-off-by: URABE, Shyouhei <shyouhei@ruby-lang.org>



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-06 06:19:12 +00:00
kosaki
25d040780f * test/ruby/test_io.rb (TestIO#test_O_CLOEXEC): fix false positive
detection.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-05 14:09:21 +00:00
kosaki
b5d612e0df * thread_pthread.c (native_mutex_reinitialize_atfork): removed
unused macro.
* thread_win32.c (native_mutex_reinitialize_atfork): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-05 13:26:18 +00:00
nobu
66fc78d207 * ext/date/date_core.c (DAY_IN_NANOSECONDS): long long int is not
available on all platforms.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-05 13:09:42 +00:00
nagachika
6410a4ae27 * eval.c (frame_func_id): store result of method_entry_of_iseq() to
cfp->me because method_entry_of_iseq() might become expensive.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-05 08:39:22 +00:00
nagachika
5358a5c016 * eval.c (frame_func_id): __method__ return different name from
methods defined by Module#define_method with a same block.
    [ruby-core:35386] fixes #4606
  * eval (method_entry_of_iseq): new helper function. search control
    frame stack for a method entry which has given iseq.
  * test/ruby/test_method.rb: add tests for #4696

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-05 06:32:37 +00:00
svn
09c2f41211 * 2011-05-05
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 23:08:03 +00:00
tenderlove
d3802d719c fix capture to avoid doing a sub on the useconds when parsing dates
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 23:07:58 +00:00
kosaki
f5b0f04d2a * benchmark/bm_vm4_pipe.rb: Reduced iterations. Too slow benchmark
is bad.
* benchmark/bm_vm4_thread_pass.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 13:14:28 +00:00
kosaki
674a33edf5 * test/date/test_date_base.rb: don't use no message skip().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 13:10:06 +00:00
kosaki
512624b628 * benchmark/bm_io_select2.rb: reduce number of using file
descriptors. because gdb need some fds.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 12:13:02 +00:00
kosaki
be62297f92 * io.c (Init_IO): Added File::CLOEXEC constant. [ruby-core:22893] [Feature #1291]
* test/ruby/test_io.rb (TestIO#test_o_cloexec): test for File::CLOEXEC.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 11:29:24 +00:00
kosaki
c06da4735d * thread.c (rb_wait_for_single_fd): Fix wrong return value.
* test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb
(TestWaitForSingleFD#test_wait_for_closed_pipe): test for it.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 10:02:06 +00:00
kosaki
2a989121db * ext/-test-/wait_for_single_fd: New. for testing
rb_wait_for_single_fd() internal function.
  The patch was written by Eric Wong. [ruby-core:35991]

* test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 09:50:27 +00:00
kazu
8a98c57ff0 fix a typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 06:26:13 +00:00
kosaki
951b090130 * thread.c (rb_wait_for_single_fd): Added POLLNVAL check.
based on a patch from Eric Wong at [ruby-core:35991].



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 03:47:33 +00:00
kosaki
d7fa4d837e * io.c (rb_f_select): remove useless ifdef.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 02:54:34 +00:00
kosaki
9851b0ce2f * ext/socket/init.c (wait_connectable): fix error handling code.
RB_WAITFD_OUT is turned on even though an error occur.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 02:44:28 +00:00
kosaki
4da4cb0421 * ext/readline/readline.c (readline_event): use rb_wait_for_single_fd().
The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 01:13:02 +00:00
kosaki
82b2e80120 * ext/socket/init.c (wait_connectable): use rb_wait_for_single_fd().
The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]

* ext/socket/init.c (try_wait_connectable, wait_connectable_ensure):
  removed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 01:12:04 +00:00
kosaki
cd796c609f * ext/io/wait/wait.c (io_wait): use rb_wait_for_single_fd().
The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 01:09:08 +00:00
kosaki
249fe0e742 * thread.c (rb_wait_for_single_fd): new. poll(2) based backend for rb_wait_for_single_fd().
Now only Linux uses it.

The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 01:07:03 +00:00
kosaki
9be37ca7d5 * thread.c (rb_wait_for_single_fd): new.
* thread.c (select_single): select(2) based backend for rb_wait_for_single_fd().

* io.c (make_writeconv): use rb_wait_for_single_fd() instaed of
  rb_thread_fd_select().
* io.c (rb_io_wait_readable): ditto.
* thread.c (rb_thread_wait_fd_rw): ditto.

* io.c (wait_readable): removed.
* thread.c (init_set_fd): new helper function.
* include/ruby/io.h (RB_WAITFD_IN, RB_WAITFD_PRI, RB_WAITFD_OUT):
  new constant for rb_single_wait_fd().

The patch was written by Eric Wong. [Ruby 1.9 - Feature #4531]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-04 00:59:57 +00:00
tenderlove
d47073de04 * ext/psych/lib/psych/visitors/yaml_tree.rb: fix time dumping so that
Syck can load UTC times that Psych dumps.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-03 23:06:19 +00:00
svn
fb58474627 * 2011-05-04
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-03 22:37:12 +00:00
kosaki
f081eca1d7 * thread.c (rb_fd_copy): fix wrong argument.This issue was pointed
out by Eric Wong. [ruby-core:35982]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-03 22:37:07 +00:00
kosaki
50522eb351 * test/fileutils/test_fileutils.rb (TestFileUtils#test_chmod_symbol_mode):
Skip sticky bit test if the platform is FreeBSD. It doesn't allow to
  change sticky bit if a target is regular file.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-03 11:31:20 +00:00
yugui
7ad29955a6 * test/date/test_date.rb (TestDate#test_coerce):
test for [ruby-core:35127].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-03 09:31:13 +00:00
kazu
227609ea96 fix typos and remove some whitespaces
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-03 04:45:28 +00:00
nobu
55a1b1d97a * thread.c (rb_thread_select): preserve errno if no error
occurred.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-02 19:27:59 +00:00
nobu
ab8e05cc45 * win32/win32.c (rb_w32_fdcopy): suppress a warning.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-02 19:27:56 +00:00
nobu
7694c34157 * win32/win32.c: remove trailing spaces and no-cuddle "else".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-02 19:05:03 +00:00
svn
690072a1a5 * 2011-05-03
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-02 18:57:10 +00:00
nobu
88559ce46e * include/ruby/intern.h (rb_w32_fdcopy): add prototype. fixes
#4640

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-02 18:57:06 +00:00
kosaki
0a1e7d1568 * lib/fileutils.rb (FileUtils#chmod): accept symbolic mode argument.
The patch was written by takkanm. [ruby-core:26029][Feature #2190]

* lib/fileutils.rb (FileUtils#fu_mode): new helper function.
* lib/fileutils.rb (FileUtils#symbolic_modes_to_i): ditto.
* lib/fileutils.rb (FileUtils#mode_mask): ditto.
* lib/fileutils.rb (FileUtils#user_mask): ditto.

* test/fileutils/test_fileutils.rb (TestFileUtils#test_chmod_symbol_mode):
  new test for the above symbolic mode.
* test/fileutils/test_fileutils.rb (TestFileUtils#test_chmod_R): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-01 16:16:05 +00:00
svn
0468df6249 * 2011-05-02
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-01 15:38:57 +00:00
kosaki
49b4510cd1 * ext/socket/init.c (rsock_connect): add to care EINTR. based
on a patch from Eric Wong at [ruby-core:35621][Bug #4555]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-01 15:38:53 +00:00
kosaki
4d88169267 * thread.c (rb_thread_select): release GVL while waiting select().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-30 16:08:20 +00:00
svn
3cea846e42 * 2011-05-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-30 16:02:15 +00:00
kosaki
e140be6956 fix commit mistake of r31389.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-30 16:02:11 +00:00
kosaki
04202dc83d * win32/win32.c (rb_w32_fdcopy): New. This can copy even though
fdset size exceed FD_SETSIZE.
* include/ruby/intern.h (rb_fd_copy): use rb_w32_fdcopy()



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-30 14:11:34 +00:00
kosaki
3c68095b8a * thread.c (do_select): Change arugment type to rb_fdset_t.
Now do_select() is free from unexpected hangup if
  HAVE_RB_FD_INIT=1 [Bug #4636]

* thread.c (rb_thread_fd_select, rb_thread_wait_fd_rw):
  adapt new argument type.

* thread.c (rb_thread_select): make dummy implementation.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-30 11:23:08 +00:00
kosaki
225fa965bc * thread.c (rb_fd_copy): Change function argument. Now
rb_fd_copy() has fully copy semantics.
* include/ruby/intern.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-30 11:18:14 +00:00
kosaki
2d2544c8e6 * include/ruby/intern.h (rb_thread_select): mark as deprecated.
* ext/io/wait/wait.c (wait_readable): use rb_thread_fd_select
  instead of rb_thread_select.
* ext/socket/init.c (wait_connectable0): ditto.
* ext/readline/readline.c (readline_event): ditto.
* io.c (rb_io_wait_readable, wait_readable, rb_io_wait_writable,
  wait_writable): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-30 11:15:15 +00:00
kosaki
4c926e9f15 * thread.c (do_select): remove useless ifdef. time calculation
is not heavy weight.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-30 11:08:39 +00:00
kosaki
5201602c27 * benchmark/bm_io_select3.rb: New.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-30 07:49:29 +00:00