ぼくの考えた最強のRuby新機能案
野心的な新機能案や、互換性等の理由でおよそ採用されないであろう夢を書き連ねています。
Fixnum と Bignum を削除して、Integer クラスに統合する。両者は Flonum のように内部的に切り替えられる。
Integer#/ の結果を Rational で返すようにする。 https://bugs.ruby-lang.org/issues/5512#change-37021
0.1 を浮動小数点数リテラルでは無く、有理数リテラルにする。 http://www.slideshare.net/mrkn/float-is-legacy
Windows で Time#zone を tzdata の名前で出す。
そのままzoneに入れる
Get the absolute path of ruby binary https://gist.github.com/nurse/1129437
SEGV時にスレッドのリストなどを表示する
https://twitter.com/_ko1/status/305339352307863556
https://bugs.ruby-lang.org/issues/7114
一連の機能を備えているかどうかを宣言するようなやつ
GoのInterfaceだなこれ
https://github.com/ruby/ruby/pull/884/files https://connect.microsoft.com/VisualStudio/feedback/details/1279133 http://d.hatena.ne.jp/nurse/20150426#1430026878
https://bugs.ruby-lang.org/issues/2255
https://bugs.ruby-lang.org/issues/12010
ARGVもだな
https://github.com/rails/rails/pull/31944
diff --git a/parse.y b/parse.y
index 02529f4..1add807 100644
--- a/parse.y
+++ b/parse.y
@@ -4667,7 +4667,16 @@ f_bad_arg : tCONSTANT
}
;
-f_norm_arg : f_bad_arg
+f_arg_type : tCONSTANT
+ | tCONSTANT '|' f_arg_type
+ ;
+
+f_norm_arg : f_arg_type tIDENTIFIER
+ {
+ formal_argument(get_id($2));
+ $$ = $2;
+ }
+ | f_bad_arg
| tIDENTIFIER
{
formal_argument(get_id($1));
akr: 今はトップレベルの定数(クラスも含む)はObjectに定義されているが、レキシカルスコープの外側、例えばmainに定義するのでもよかったのではないか。 ko1: すでにObject経由でいじっているコードが大量になるのでRubyで本当に導入するのは難しい https://bugs.ruby-lang.org/issues/11547