10901 Commits

Author SHA1 Message Date
akr
0d89567252 * struct.c (rb_struct_alloc_noinit): new function.
(rb_struct_define_without_accessor): add allocator to the arguments.

* range.c (range_alloc): re-introduced using rb_struct_alloc_noinit.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-23 07:00:50 +00:00
akr
2109a52503 * re.c (REG_CASESTATE): unused macro removed.
(rb_reg_prepare_re): check encoding difference.
  (rb_reg_initialize): check 8bit byte.

* parse.y (parser_tokadd_escape): fix has8bit.

  [ruby-dev:32113]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-23 06:30:26 +00:00
akr
f1afb3959c add ML ref.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-23 04:51:02 +00:00
akr
0dbdad7599 * struct.c (rb_struct_define_without_accessor): new function.
* range.c (range_alloc): removed.
  (Init_Range): use rb_struct_define_without_accessor.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-23 04:35:53 +00:00
matz
d73f08d56d * re.c (match_begin): should return offset by character.
[ruby-dev:32331]

* re.c (match_end): ditto.

* re.c (rb_reg_search): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-23 02:10:44 +00:00
matz
050a10c607 * compile.c (defined_expr): defined(method(x)) dumped core. a
patch from Yusuke ENDOH <mame AT tsg.ne.jp>.  [ruby-dev:32335]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-23 01:46:44 +00:00
akr
cca64ecb9a previous change refined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-22 01:36:13 +00:00
akr
6ed29c55ef add test for [ruby-dev:32329].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-22 01:32:32 +00:00
matz
c227d3feb3 * insnhelper.ci (vm_search_normal_superclass): rename function.
* insnhelper.ci (vm_search_superclass): ditto.

* proc.c (struct METHOD): rename rklass -> rclass.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-22 01:17:52 +00:00
ko1
c79ab68d37 * vm.c: fix to recycle thread data (VM stack).
* thread.c: ditto.
* benchmark/bm_vm3_thread_create_join.rb: add loop count.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-21 09:06:06 +00:00
ko1
58b1f91b46 * benchmark/driver.rb: add path to trunk/lib if driver runner is
in build directory.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-21 09:03:52 +00:00
akr
a5c4480732 * test/fileutils/fileasserts.rb (assert_equal_timestamp): new assert
to test tv_sec only for filestamp resolution portability.
  (assert_same_entry): use assert_same_entry for mtime comparison.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-21 07:40:36 +00:00
ko1
53b3bf961c * array.c (rb_ary_permutation): add gc guard codes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-21 06:06:10 +00:00
matz
d154b1c346 * process.c (rb_f_system): returns nil on execution failure.
[ruby-core:13715]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 18:21:39 +00:00
matz
7da723cfbb * object.c (nil_plus): remove unused function. [ruby-core:13737]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 16:16:53 +00:00
akr
43e55c6bc4 * time.c (time_mload): ignore invalid digits in submicro.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 12:50:29 +00:00
ko1
01dacec2b4 * include/ruby/ruby.h: rename RFloat#double_value -> float_value.
* numeric.c, parse.y: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 11:35:12 +00:00
akr
9ea27a0b53 update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 10:55:22 +00:00
ko1
3453b2bd0e * gc.h, vm_core.h: decl of rb_gc_save_machine_context()
should be at vm_core.h.
* include/ruby/ruby.h, intern.h: remove type rb_thread_t.
* include/ruby/intern.h: change rb_unblock_function_t,
  rb_unblock_function_t.
* file.c, process.c: apply above changes.
* thread.c, thread_pthread.ci, thread_win32.ci: ditto.
* io.c: support blocking open (2). [ruby-core:13614]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 10:47:53 +00:00
akr
d481323b92 * io.c (rb_io_close_on_exec_p): new method IO#close_on_exec?.
(rb_io_set_close_on_exec): new method IO#close_on_exec=.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 08:12:34 +00:00
akr
60d0ddc942 * gc.c (gc_mark_children): obj->as.file.fptr may be 0 for T_FILE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 07:25:07 +00:00
nobu
64ba5303fd * parse.y (parser_read_escape): has8bit flag may be set with control
escape.  [ruby-core:13722]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 06:09:03 +00:00
nobu
d7e4c1e66b * parse.y (parser_prepare): set begging after BOM if exists.
[ruby-core:13718]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 06:08:16 +00:00
drbrain
db74541efe Update to RubyGems 0.9.5
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 05:56:43 +00:00
usa
cae4fb76dc * include/ruby/win32.h win32/win32.c (rb_w32_pipe_exec): use dual fd
instead of socketpair when mode is RDWR.

	* io.c (pipe_open): pass &write_fd to rb_w32_pipe_exec().

	* io.c (popen_redirect): define only when HAVE_FORK.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 04:04:51 +00:00
akr
0d8ac93f58 * include/ruby/io.h (rb_io_t): add tied_io_for_writing member.
* io.c: use tied_io_for_writing for duplex popen.

* gc.c: mark tied_io_for_writing.

* common.mk: gc.o depends io.h.

  [ruby-dev:32205]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 03:16:53 +00:00
akr
ee1029cb7f * test/drb/test_drb.rb: rename TestRubyYield to TestDRbRubyYield to
avoid name crash with test/ruby/test_yield.rb.
  TestRuby18Yield is renamed to TestDRbRuby18Yield too.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-20 03:01:49 +00:00
seki
6591e38016 merged from ruby_1_8 branch.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 18:30:18 +00:00
akr
44b6b031ba previous change refined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 16:19:12 +00:00
akr
b4a0020707 * test/fileutils/fileasserts.rb (assert_equal_time): show nsec if
assertion fails but time.to_s equals.
  (assert_same_entry): use assert_equal_time.

* test/fileutils/test_fileutils.rb (test_install): use
  assert_equal_time.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 15:57:52 +00:00
akr
18b46e0c21 update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 14:40:15 +00:00
akr
b5ccb6b34f Time#nsec and Time#tv_nsec described.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 10:55:39 +00:00
akr
63a297994b * file.c (utime_internal): fallback utimensat to utimes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 09:48:00 +00:00
akr
81f0bb309e fix Time.parse to support nsec.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 09:24:28 +00:00
akr
a070c4fbe3 * configure.in: check struct timespec, clock_gettime, utimensat,
struct stat.st_atim,
  struct stat.st_atimespec,
  struct stat.st_atimensec,
  struct stat.st_mtim,
  struct stat.st_mtimespec,
  struct stat.st_mtimensec,
  struct stat.st_ctim,
  struct stat.st_ctimespec,
  struct stat.st_ctimensec.

* include/ruby/missing.h: provide struct timespec if not available.

* time.c: support nanosecond-resolution using struct timespec.

* include/ruby/intern.h: provide rb_time_nano_new.

* file.c (utime_internal): use utimensat if available.
  (rb_file_s_utime): refactored.
  (rb_f_test): use stat_atime, stat_mtime, stat_ctime.
  (rb_stat_cmp): check tv_nsec.
  (stat_atimespec): new function.
  (stat_atime): ditto.
  (stat_mtimespec): ditto.
  (stat_mtime): ditto.
  (stat_ctimespec): ditto.
  (stat_ctime): ditto.
  (rb_stat_atime): use stat_atime.
  (rb_file_s_atime): ditto.
  (rb_file_atime): ditto.
  (rb_stat_mtime): use stat_mtime.
  (rb_file_s_mtime): ditto.
  (rb_file_mtime): ditto.
  (rb_file_ctime): use stat_ctime.
  (rb_file_s_ctime): ditto.
  (rb_stat_ctime): ditto.

* variable.c (rb_copy_generic_ivar): clear clone's instance variables
  if obj has no instance variable.

* marshal.c (w_object): dump instance variables of generated string
  for TYPE_USERDEF, even if original object has instance variables.

* lib/time.rb (Time#xmlschema): use nsec instead of usec.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 09:09:38 +00:00
matz
a2946d85ec * object.c (rb_class_superclass): should not raise exception for
BasicObject.  [ruby-Bugs-15668]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 08:49:42 +00:00
matz
7a978073c9 * parse.y (parser_yylex): should clear parser->tokp as well.
[ruby-dev:32250]

* parse.y: remove NEED_ASSOC that break test_parser_events.

* parse.y (parser_yylex): should not decrement line numbers at the
  end of file.

* file.c (rb_find_file_ext): search .rb files first through in the
  loadpath.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 07:10:09 +00:00
matz
03c4e447fa * array.c (rb_ary_permutation): gives all permutations of elements
if no argument given.  a patch from Yusuke ENDOH <mame AT tsg.ne.jp>.
  [ruby-dev:32309]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-19 07:06:03 +00:00
nobu
126bd20141 * compile.c (iseq_compile_each): alias and undef accept dsyms as well
as literals.  [ruby-dev:32308]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-18 17:44:09 +00:00
nobu
9cef6acdc7 * eval_method.ci (rb_add_method): no redefinition warning for undef.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-18 17:31:39 +00:00
nobu
9417595993 * parse.y (parser_read_escape): disallow control and meta modifiers
for non-ASCII characters.  [ruby-core:13685]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-18 16:53:12 +00:00
akr
30e97cbb8b * marshal.c (mark_dump_arg): it may be called after dump_ensure.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-18 11:50:25 +00:00
akr
3184ac2dfe * time.c (time_minus): fix Time.at(2**60+1) - Time.at(2**60).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-18 09:30:17 +00:00
akr
1e3ca9807b * time.c (time_arg): show actual year in 2-3 digits year warning.
(time_mdump): show actual year in "year too big to marshal" error.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-18 08:30:26 +00:00
akr
68543f3092 use ML ref. for assertion message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-18 07:18:56 +00:00
nobu
c719cd9b46 * eval_method.ci (rb_alias): do not call hook functions until
initialization finishes.  [ruby-talk:279538]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13956 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-18 05:03:46 +00:00
nobu
16dc06014c * lib/mkmf.rb (String#tr_cpp): make preprocessor identifiers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-18 00:09:50 +00:00
akr
5c19fbacec check class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-17 20:25:27 +00:00
akr
aa7ce1ece1 * lib/mkmf.rb (have_struct_member): define HAVE_type_member.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-17 20:20:44 +00:00
suke
24dcd39f19 ext/win32ole/win32ole.c (ole_invoke): bug fix. [ruby-talk:279100]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-17 15:04:55 +00:00