[前][次][番号順一覧][スレッド一覧]

ruby-changes:42080

From: mame <ko1@a...>
Date: Thu, 17 Mar 2016 21:49:23 +0900 (JST)
Subject: [ruby-changes:42080] mame:r54154 (trunk): * NEWS: add Array#max, #min, and the optimization. [Feature #12172]

mame	2016-03-17 21:49:19 +0900 (Thu, 17 Mar 2016)

  New Revision: 54154

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=54154

  Log:
    * NEWS: add Array#max, #min, and the optimization.  [Feature #12172]

  Modified files:
    trunk/ChangeLog
    trunk/NEWS
Index: NEWS
===================================================================
--- NEWS	(revision 54153)
+++ NEWS	(revision 54154)
@@ -16,6 +16,12 @@ with all sufficient information, see the https://github.com/ruby/ruby/blob/trunk/NEWS#L16
 
 === Core classes updates (outstanding ones only)
 
+* Array
+  * Array#max and Array#min.  [Feature #12172]
+    This may cause a tiny incompatibility: if you redefine
+    Enumerable#max and call max to an Array, your redefinition will be
+    now ignored.  You should also redefine Array#max.
+
 * Dir
 
   * Dir.empty?.  [Feature #10121]
@@ -53,3 +59,11 @@ with all sufficient information, see the https://github.com/ruby/ruby/blob/trunk/NEWS#L59
 === Supported platform changes
 
 === Implementation improvements
+
+* In some condition, `[x, y].max` and `[x, y].min` are optimized
+  so that a temporal array is not created.  The concrete condition is
+  an implementation detail: currently, the array literal must have no
+  splat, must have at least one expression but literal, the length must
+  be <= 0x100, and Array#max and min must not be redefined.  It will work
+  in most casual and real-life use case where it is written with intent
+  to `Math.max(x, y)`.
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 54153)
+++ ChangeLog	(revision 54154)
@@ -1,8 +1,12 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Thu Mar 17 21:47:57 2016  Yusuke Endoh  <mame@r...>
+
+	* NEWS: add Array#max, #min, and the optimization.  [Feature #12172]
+
 Thu Mar 17 21:45:02 2016  Yusuke Endoh  <mame@r...>
 
 	* compile.c (NODE_CALL): add optimization shortcut for Array#max/min.
 	  Now `[x, y].max` is optimized so that a temporal array object is not
-	  created in some condition.
+	  created in some condition.  [Feature #12172]
 
 	* insns.def (opt_newarray_max, opt_newarray_min): added.
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]