path: root/ToDo
diff options
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-12-10 07:18:16 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-12-10 07:18:16 +0000
commit2f8d3bdc21b37f0d6881b817c8fd9c5b4b351cd4 (patch)
treeeb88114284c1e7a35677815487d122a68fdf9f57 /ToDo
parent3493ea5c7acfeaf187873d4986181a5fda446aa3 (diff)
* 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 * 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:// b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ToDo')
1 files changed, 6 insertions, 4 deletions
diff --git a/ToDo b/ToDo
index b43679b..4c826c0 100644
--- a/ToDo
+++ b/ToDo
@@ -71,9 +71,11 @@ Standard Libraries
- fork_and_kill_other_threads.
- signal list (Signal::trap, Signal::list).
- move NameError under StandardError.
+- Integer#to_s(base)
+- Hash::new{default}
+- hash etc. should handle self referenceing array/hash
* String#scanf(?)
* Object#fmt(?)
-* Integer#{bin,oct,hex,heX}
* Time::strptime
* Integer[num], Float[num]; Fixnum[num]?
* method to retrieve non-number trailer for to_i/to_f.
@@ -86,16 +88,16 @@ Standard Libraries
* Array#&, Array#| to allow duplication. ???
* way to specify immortal (fork endurance) thread;
* or raise ForkException to every thread but fork caller.
-* Hash::new{default} or recommend Hash#fetch?
* new user-defined marshal scheme. _dump(dumper), _load(restorer)
-* hash etc. should handle self referenceing array/hash
* library to load per-user profile seeking .ruby_profile or ruby.ini file.
* warning framework (warn, warning for Ruby level)
-* marshal should not depend on sprintf/strtod (works bad for locale).
+* marshal should not depend on sprintf/strtod (works bad with locale).
* ternary arg pow: a.pow(b,c) == a**b%c
* new caller(), e.g. call_stack; needs better name.
* remove dependency on MAXPATHLEN.
* pointer share mechanism similar to one in String for Array.
+* Array#select(n1,n2...) works like Array#indexes(n1,n2...)
+* deprecate Array#indexes, and Array#indices.
Extension Libraries