Commit graph

3924 commits

Author SHA1 Message Date
nobu
9bd2c2681f 2002-02-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-14 08:49:21 +00:00
eban
99facfbdf8 2002-02-13
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-13 09:32:24 +00:00
nobu
1995213e4b * ruby.c (load_file): avoid SEGV on '#' only input.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-10 07:55:40 +00:00
nobu
b1f086d014 2002-02-09
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-09 15:57:27 +00:00
nobu
3d44db882b 2002-02-08
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-08 07:34:34 +00:00
nobu
96a172e701 2002-02-07
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-07 15:48:22 +00:00
matz
d77119bfe4 * io.c (rb_io_readlines): avoid calling GetOpenFile() repeatedly.
* io.c (rb_io_each_line): ditto.

* io.c (argf_getline): ditto.

* process.c: should include <time.h> to get proper CLK_TCK.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-06 07:30:13 +00:00
matz
8210c254be * io.c (fptr_finalize): should raise error when fclose fails.
* eval.c (method_inspect): proper output format to distinguish
  methods and singleton methods.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-05 07:56:31 +00:00
eban
b175c4be3c 2002-02-04
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-04 08:22:21 +00:00
nobu
dad91ce6d8 2002-02-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-01 06:13:37 +00:00
nobu
7ddde51c68 * regex.c (re_adjust_startpos): search start of multibyte
backward.

* regex.c (mbc_startpos): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-29 19:33:11 +00:00
matz
4f38c453b4 * eval.c (is_defined): defined?(Foo::Baz) should check constants
only, no methods.

* eval.c (is_defined): should not dump core on defined?(a::b)
  where a is not a class nor a module.

* object.c (Init_Object): remove dup and clone from TrueClass,
  FalseClass, and NilClass.

* array.c (rb_ary_fill): Array#fill takes block to get the value to
  fill.

* string.c (rb_str_to_i): to_i(0) auto-detects base radix.

* array.c (rb_ary_initialize): fill by the block evaluation value
  if block is given.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-28 08:44:45 +00:00
eban
a0bf3b3bb9 * configure.in (solaris): add '-shared' only for GNU ld.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-25 09:00:50 +00:00
nobu
b6cc058c53 2002-01-23
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-23 07:25:40 +00:00
eban
59d3fd1832 2002-01-21
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-21 09:36:45 +00:00
usa
0de16b913b 2002-01-19
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-19 14:32:50 +00:00
nobu
e664d467a9 2002-01-18
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-18 14:56:05 +00:00
matz
36192dfa4a * eval.c (block_pass): allow "retry" from within argument passed
block. [new]

* eval.c (localjump_error): should preserve exit status in the
  exception object. [new]

* eval.c (proc_invoke): should raise exception for "break" if it's
  yielding, not calling. [new]

* eval.c (block_pass): should NOT raise exception for "break". [new]

* eval.c (block_pass): should allow block argument relay even in
  the tainted mode.

* ext/socket/socket.c: support subclassing by proper "initialize"
  calling convention. [new]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-17 08:05:01 +00:00
nobu
57432f52b4 2001-01-16
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-16 10:37:37 +00:00
usa
806d838cb0 2002-01-11
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-11 11:48:01 +00:00
nobu
399bb7e739 2002-01-10
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-10 13:31:20 +00:00
nobu
1a101d775a * eval.c (rb_add_method): clear replaced method from the cache.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-08 07:02:26 +00:00
eban
dcbb422253 2002-01-07
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-07 07:03:55 +00:00
eban
0ad520443c 2002-01-05
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-04 15:29:42 +00:00
eban
df3e2499a7 2002-01-05
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-04 15:18:54 +00:00
eban
06261c1b0f 2002-01-05
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-01-04 15:18:16 +00:00
nobu
c891189693 * parse.y (yycompile): always store copy of filename.
* parse.y (rb_compile_file): no longer need to strdup() here.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-31 05:26:24 +00:00
nobu
a59cf8edc5 * array.c (rb_cmpint): fixed typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-28 05:42:23 +00:00
nobu
3b4641a4bf * bignum.c (rb_cstr2inum): deny "0_".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-27 09:53:54 +00:00
nobu
d0c78c8567 * bignum.c (rb_cstr2inum): allow "0\n" and so on.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-26 17:01:20 +00:00
eban
6d9e4a20e1 2001-12-21
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-21 04:16:22 +00:00
nobu
b7a58b0650 * lib/mkmf.rb (with_destdir): new.
* lib/mkmf.rb: prefix target directories with $(DESTDIR) all.

* lib/mkmf.rb: no need to mkdir $(libdir)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-20 16:23:27 +00:00
matz
ee87eb1367 * eval.c (rb_mod_define_method): define_method should follow
default method visibility.

* eval.c (rb_attr): should warn if the default method visibility
  is "module_function" (can be error).

* eval.c (rb_mod_define_method): should define class/module method
  also if the visibility is "module_function".

* eval.c (rb_mod_define_method): should call hook method
  "method_added", and "singleton_method_added".

* string.c: use RESIZE_CAPA for capacity change.

* ext/socket/socket.c (Init_socket): add listen method to
  TCPServer and UNIXServer.

* ext/socket/socket.c (bsock_send): should raise EWOULDBLOCK
  exception.

* ext/socket/socket.c (s_recvfrom): ditto.

* ext/socket/socket.c (s_accept): ditto.

* ext/socket/socket.c (udp_send): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-19 07:48:32 +00:00
matz
35f851bcfe * string.c (rb_str_replace): swap arguments of OBJ_INFECT.
* eval.c (rb_thread_schedule): should not select a thread which is
  not yet initialized.

* time.c (time_plus): wrong boundary check.

* time.c (time_minus): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-18 08:47:06 +00:00
eban
4f8b1c8f64 2001-12-17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-17 07:29:19 +00:00
matz
d8c75ddad3 * time.c (time_new_internal): avoid loop to calculate negative
div, mod.

* time.c (time_cmp): should handle Bignums.

* array.c (rb_ary_pop): should ELTS_SHARED flag check before
  REALLOC.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-13 08:19:09 +00:00
matz
2f8d3bdc21 * array.c (rb_ary_modify): should copy the internal buffer if the
modifying buffer is shared.

* array.c (ary_make_shared): make an internal buffer of an array
  to be shared.

* array.c (rb_ary_shift): avoid sliding an internal buffer by
  using shared buffer.

* array.c (rb_ary_subseq): avoid copying the buffer.

* parse.y (gettable): should freeze __LINE__ string.

* io.c (rb_io_puts): old behavoir restored.  rationale: a) if you
  want to call to_s for arrays, you can just call print a, "\n".
  b) to_s wastes memory if array (and sum of its contents) is
  huge.  c) now any object that has to_ary is treated as an array,
  using rb_check_convert_type().

* hash.c (rb_hash_initialize): now accepts a block to calculate
  the default value. [new]

* hash.c (rb_hash_aref): call "default" method to get the value
  corrensponding to the non existing key.

* hash.c (rb_hash_default): get the default value based on the
  block given to 'new'.  Now it takes an optinal "key" argument.
  "default" became the method to get the value for non existing
  key.  Users may override "default" method to change the hash
  behavior.

* hash.c (rb_hash_set_default): clear the flag if a block is given
  to 'new'

* object.c (Init_Object): undef Data.allocate, left Data.new.

* ext/curses/curses.c (window_scrollok): use RTEST().

* ext/curses/curses.c (window_idlok): ditto.

* ext/curses/curses.c (window_keypad): ditto.

* ext/curses/curses.c (window_idlok): idlok() may return void on
  some platforms; so don't use return value.

* ext/curses/curses.c (window_scrollok): ditto for consistency.

* ext/curses/curses.c: replace FIX2INT() by typechecking NUM2INT().

* parse.y (str_extend): should not process immature #$x and
  #@x interpolation, e.g #@#@ etc.

* enum.c (enum_sort_by): sort_by does not have to be stable always.

* enum.c (enum_sort_by): call qsort directly to gain performance.

* util.c (ruby_qsort): ruby_qsort(qs6) is now native thread safe.

* error.c (rb_sys_fail): it must be a bug if it's called when
  errno == 0.

* regex.c (WC2MBC1ST): should not pass through > 0x80 number in UTF-8.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-10 07:18:16 +00:00
nobu
8adfdde6b7 20011209
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-09 18:10:13 +00:00
eban
f514f94a51 2001-12-03
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-12-03 10:12:10 +00:00
matz
6ab0ff977d * eval.c (rb_thread_select): should subtract timeofday() from
limit, not reverse.

* util.c (scan_hex): x is not a hexadecimal digit.

* eval.c (rb_thread_schedule): should treat the case that
  select(2) returns 0, if a thread is under both WAIT_SELECT and
  WAIT_TIME.  Jakub Travnik <J.Travnik@sh.cvut.cz> actually fixed
  this bug.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-28 14:56:32 +00:00
usa
5444b117f2 2001-11-25
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-25 12:10:13 +00:00
eban
e9abbf6a42 2001-11-22
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1853 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-22 05:17:06 +00:00
eban
505e295fd6 2001-11-20
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-20 03:54:04 +00:00
matz
df96f994f1 * parse.y (parse_regx): should raise error on untermitated
expression interpolation.

* pack.c (pack_unpack): should give length to utf8_to_uv().

* pack.c (utf8_to_uv): add length check.

* massages: replace "wrong #" by "wrong number".

* marshal.c (w_float): output Infinity and NaN explicitly.

* marshal.c (r_object): support new explicit float format.

* eval.c (rb_thread_wait_for): select may cause ERESTART on
  Solaris.

* eval.c (rb_thread_select): ditto.

* array.c (rb_ary_join): dumped core if sep is not T_STRING nor T_NIL.

* array.c (rb_ary_join): buffer size calculattion was wrong.

* array.c (rb_ary_to_s): if rb_output_fs is nil, insert newlines
  between array elements (use rb_default_rs as newline litral)
  [experimental].

* gc.c (init_mark_stack): no need to clear mark_stack.

* gc.c (gc_mark_all): need to handle finalizer mark.

* gc.c (gc_mark_rest): use MEMCPY instead of memcpy.

* gc.c (rb_gc_mark): earlier const check to avoid pusing special
  constants into mark stack.

* numeric.c (fix_to_s): 'to_s' now takes optional argument to
  specify radix. [new]

* bignum.c (rb_big_to_s): ditto. [new]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-19 05:03:03 +00:00
nobu
5ca24aa3e8 * parse.y: needless conditionals.
* parse.y (parse_regx): parse error at unterminated regex /#{.
  (ruby-bugs-ja:PR#142)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-18 10:49:28 +00:00
nobu
050a1687d2 20011115
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-15 15:57:49 +00:00
usa
beeda6eef0 2001-11-13
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-13 04:03:55 +00:00
matz
dc98adf839 * process.c (security): always give warning for insecure PATH.
* dir.c (my_getcwd): do not rely on MAXPATHLEN.

* file.c (rb_file_s_readlink): ditto.

* file.c (path_check_1): ditto.

* eval.c (rb_yield_0): should not call rb_f_block_given_p().

* string.c (rb_str_chomp_bang): should terminate string by NUL.

* eval.c (rb_yield_0): better error message.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-08 06:43:14 +00:00
matz
7ef9fbb35f gc patch
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-02 07:20:58 +00:00
matz
bbb608ad79 * bignum.c (rb_big_aref): idx may be a Bignum.
* numeric.c (fix_aref): negative index must return zero.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-11-01 05:11:24 +00:00