Commit graph

833 commits

Author SHA1 Message Date
eban
7974acf6c5 2002-02-25
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-25 09:20:05 +00:00
nobu
9093e4a4a5 2002-02-22
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2116 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-22 11:24:56 +00:00
eban
ce9ce9ad63 2002-02-21
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-21 10:21:09 +00:00
nobu
7f97e8948d 2002-02-20
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-20 06:45:07 +00:00
nobu
0cbfe8c524 * io.c (rb_io_ungetc): don't fail pushed EOF back.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-19 04:19:06 +00:00
nobu
e58ec21435 2002-02-18
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-18 11:54:50 +00:00
nobu
b1544b7d5d 2002-02-17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-17 13:01:56 +00:00
nobu
0d8551b3a9 2002-02-16
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-16 02:23:49 +00:00
matz
1e5d404935 * eval.c (rb_eval): replace rb_cvar_declare() by rb_cvar_set().
* eval.c (assign): ditto.

* variable.c (rb_cvar_set): 4th argument (warn) added; define new
  class variable if it's not defined yet.

* variable.c (rb_cvar_declare): removed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-02-15 06:14:26 +00:00
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