home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ruby164.zip / rbemx164.zip / ruby / share / doc / ruby-1.6.4 / ToDo < prev   
Text File  |  2001-06-18  |  4KB  |  130 lines

  1. Language Spec.
  2.  
  3. - def foo; .. rescue .. end
  4. - compile time string concatenation, "hello" "world" => "helloworld"
  5. - rescue modifier; a rescue b => begin a rescue; b end
  6. - %w(a\ b\ c abc) => ["a b c", "abc"]
  7. - objectify symbols
  8. - class variable (prefix @@)
  9. - rescue RuntimeError => err
  10. * operator !! for rescue. ???
  11. * objectify characters
  12. * ../... outside condition invokes operator method too.
  13. * ... inside condition turns off just before right condition.???
  14. * package or access control for global variables??
  15. * named arguments like foo(nation:="german") or foo(nation: "german").
  16. * method to retrieve argument information (needs new C API)
  17. * multiple return values, yield values.  maybe incompatible ???
  18. * cascading method invocation ???
  19. * def Class#method .. end ??
  20. * class Foo::Bar<Baz .. end, module Boo::Bar .. end
  21. * def Foo::Bar::baz() .. end ??
  22. * I18N (or M17N) script/string/regexp
  23. * Fixnum 0 as false ????
  24. * discourage use of symbol variable (e.g. $/, etc.) in manual
  25. * discourage use of Perlish features by giving warnings.
  26. * non confusing in-block local variable (is it possible?)
  27.   + remove scope by block
  28.   + variables appears within block may have independent values.
  29. * Regexp: make /o thread safe.
  30. * decide if begin with rescue or ensure make do..while loop.
  31. * a +1 to be a+1, not a(+1).
  32.  
  33. Hacking Interpreter
  34.  
  35. - use eban's fnmatch
  36. - RUBYOPT environment variable
  37. - alias $defout $>
  38. - retrieve STACK_LEVEL_MAX from users' limit.
  39. - remove end_proc registered out of require only
  40. - all object made freezable
  41. * non-blocking open (e.g. for named pipe) for thread
  42. * avoid blocking with gethostbyname/gethostbyaddr (use fork ???)
  43. * objectify interpreters ???
  44. * remove rb_eval() recursions
  45. * syntax tree -> bytecode ???
  46. * scrambled script, or script filter
  47. * setuid ruby
  48. * performance tune for in-block (dynamic) local variables.
  49. * generational GC
  50. * give warnings to assign magic variables.
  51. * export rb_io_{addstr,printf,puts,print}
  52. * autoload should work with threads [ruby-talk:4589]
  53. * remove stdio dependency from IOs.
  54. * warn for inconsistent local variable usage (lv m and method m at the same time). 
  55.  
  56. Standard Libraries
  57.  
  58. - hash[key] = nil does not remove entry; hashes may have nil as the value.
  59. - hash.fetch(key) raises exception if key is not found.
  60. - Array#{first,last,at}
  61. - Dir.glob(pat){|f|...}
  62. - sprintf/printf's $ to specify argument order
  63. - Dir.glob("**/*.c") ala zsh
  64. - Remove Enumerable#{size,length}
  65. - Array#slice, Array#slice!
  66. - String#slice, String#slice!
  67. - Marshal should handle generic instance variables.
  68. - debugger for thread programming
  69. - SyntaxError, NameError, LoadError and NotImplementedError are subclasses of
  70.   ScriptError<Exception, not StandardError.
  71. - Thread::start gives arguments, not a thread object to the block
  72. - regexp: (?>..), \G
  73. - Struct::new([name,]member,...)
  74. - IO#reopen accepts path as well
  75. - Kernel#scan
  76. - call initialize for builtin classes too
  77. - performance tune for String's non-bang methods.
  78. - 'w' template for pack/unpack
  79. - alternative for interator? => block_given?
  80. - regex - /p (made obsolete), /m (new)
  81. - consistent /, %, divmod
  82. - unbound method object
  83. - integrate final.rb into the core.
  84. * Enumerable#sort_by for Schwartzian transformation
  85. * String#scanf(?)
  86. * Object#fmt(?)
  87. * Integer#{bin,oct,hex,heX}
  88. * Time::strptime
  89. * Integer[num], Float[num];  Fixnum[num]?
  90. * method to retrieve non-number trailer for to_i/to_f.
  91. * Stream or Port, abstract superclass of IO ?
  92. * String#{pred,prev}, String#downto
  93. * optional stepsize argument for succ()
  94. * Ruby module -- Ruby::Version, Ruby::Interpreter
  95. * introduce Boolean class; super of TrueClass, FalseClass
  96. * Process::waitall [ruby-talk:4557]
  97. * synchronized method - synchronized{...}, synchronized :foo, :bar
  98. * move Time::times to Process.
  99. - Module#define_method which takes a name and a body (block, proc or method).
  100. * IO#for_fd in general
  101. * Array#&, Array#| to allow duplication. ???
  102. - fork_and_kill_other_threads.
  103. * way to specify immortal (fork endurance) thread;
  104. * or raise ForkException to every thread but fork caller.
  105. * Array#fetch
  106.  
  107. Extension Libraries
  108.  
  109. - FastCGI ruby
  110. * ptk.rb pTk wrapper that is compatible to tk.rb
  111. * Berkeley DB extension
  112. * BitVector
  113.  
  114. Ruby Libraries
  115.  
  116. - net/http.rb
  117. * add uri.rb
  118. * urllib.rb, nttplib.rb, etc.
  119. * format like perl's
  120.  
  121. Tools
  122.  
  123. - extension library maker using SWIG
  124. * freeze or undump to bundle everything
  125.  
  126. Misc
  127.  
  128. - publish Ruby books
  129. - publish Ruby books in English
  130.