mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 a62935cf06
			
		
	
	
		a62935cf06
		
	
	
	
	
		
			
			git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			112 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| Language Spec.
 | |
| 
 | |
| - def foo; .. rescue .. end
 | |
| - compile time string concatenation, "hello" "world" => "helloworld"
 | |
| - rescue modifier; a rescue b => begin a rescue; b end
 | |
| - %w(a\ b\ c abc) => ["a b c", "abc"]
 | |
| - objectify symbols
 | |
| - class variable (prefix @@)
 | |
| - rescue RuntimeError in err ??
 | |
| * operator !! for rescue. ???
 | |
| * objectify characters
 | |
| * ../... outside condition invokes operator method too.
 | |
| * ... inside condition turns off just before right condition.???
 | |
| * package or access control for global variables??
 | |
| * named arguments like foo(nation:="german") or foo(nation: "german").
 | |
| * method to retrieve argument information (needs new C API)
 | |
| * multiple return values, yield values.  maybe incompatible ???
 | |
| * cascading method invocation ???
 | |
| * def Class#method .. end ??
 | |
| * class Foo::Bar<Baz .. end, module Boo::Bar .. end
 | |
| * def Foo::Bar::baz() .. end ??
 | |
| * I18N (or M17N) script/string/regexp
 | |
| * Fixnum 0 as false ????
 | |
| * discourage use of symbol variable (e.g. $/, etc.) in manual
 | |
| * discourage use of Perlish features by giving warnings.
 | |
| * `exception' method to be alternative for `$!'. ??
 | |
| 
 | |
| Hacking Interpreter
 | |
| 
 | |
| - use eban's fnmatch
 | |
| - RUBYOPT environment variable
 | |
| - alias $defout $>
 | |
| - retrieve STACK_LEVEL_MAX from users' limit.
 | |
| - remove end_proc registered out of require only
 | |
| - all object made freezable
 | |
| * non-blocking open (e.g. for named pipe) for thread
 | |
| * avoid blocking with gethostbyname/gethostbyaddr (use fork ???)
 | |
| * objectify interpreters ???
 | |
| * remove rb_eval() recursions
 | |
| * syntax tree -> bytecode ???
 | |
| * scrambled script, or script filter
 | |
| * setuid ruby
 | |
| * performance tune for in-block (dynamic) local variables.
 | |
| * generational GC ?? (is it possible?)
 | |
| 
 | |
| Standard Libraries
 | |
| 
 | |
| - hash[key] = nil does not remove entry; hashes may have nil as the value.
 | |
| - hash.fetch(key) raises exception if key is not found.
 | |
| - Array#{first,last,at}
 | |
| - Dir.glob(pat){|f|...}
 | |
| - sprintf/printf's $ to specify argument order
 | |
| - Dir.glob("**/*.c") ala zsh
 | |
| - Remove Enumerable#{size,length}
 | |
| - Array#slice, Array#slice!
 | |
| - String#slice, String#slice!
 | |
| - Marshal should handle generic instance variables.
 | |
| - debugger for thread programming
 | |
| - SyntaxError, NameError, LoadError and NotImplementError are subclasses of
 | |
|   ScriptError<Exception, not StandardError.
 | |
| - Thread::start gives arguments, not a thread object to the block
 | |
| - regexp: (?>..), \G
 | |
| - Struct::new([name,]member,...)
 | |
| - IO#reopen accepts path as well
 | |
| - Kernel#scan
 | |
| - call initialize for builtin classes too (not yet: Regexp, Class, Module)
 | |
| - performance tune for String's non-bang methods.
 | |
| - 'w' template for pack/unpack
 | |
| * 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.
 | |
| * Stream or Port, abstract superclass of IO ?
 | |
| * String#{pred,prev}, String#downto
 | |
| * optional stepsize argument for succ()
 | |
| * Ruby module -- Ruby::Version, Ruby::Interpreter
 | |
| 
 | |
| Extension Libraries
 | |
| 
 | |
| - FastCGI ruby
 | |
| * ptk.rb pTk wrapper that is compatible to tk.rb
 | |
| * Berkeley DB extension
 | |
| * BitVector
 | |
| 
 | |
| Ruby Libraries
 | |
| 
 | |
| - net/http.rb
 | |
| * add uri.rb
 | |
| * urllib.rb, nttplib.rb, etc.
 | |
| * format like perl's
 | |
| 
 | |
| Tools
 | |
| 
 | |
| - extension library maker using SWIG
 | |
| * freeze or undump to bundle everything
 | |
| 
 | |
| Misc
 | |
| 
 | |
| - publish Ruby books
 | |
| * publish Ruby books in English
 | |
| 
 | |
| Things To Do Before 1.6
 | |
| 
 | |
| * fix spec. for the following:
 | |
| 
 | |
|   * alternative for $! (exception? in? into? =>?)
 | |
|   * alternative for interator?
 | |
|   * regex - /p, /m
 | |
|   * odd? even?
 | |
|   * mkmf.rb - create_makefile("net/socket")
 |