<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>t/array/select.t</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -302,6 +302,7 @@ namespace :test do |ns|
         test &quot;array/reject.t&quot;
         test &quot;array/replace.t&quot;
         test &quot;array/reverse.t&quot;
+        test &quot;array/select.t&quot;
         test &quot;array/shift.t&quot;
         test &quot;array/slice.t&quot;
         test &quot;array/sort.t&quot;
@@ -311,7 +312,7 @@ namespace :test do |ns|
         test &quot;array/warray.t&quot;
 
         desc &quot;Run tests on Array.&quot;
-        task :all =&gt; [:array, :assign, :at, :clear, :collect, :compact, :concat, :count, :delete, :empty, :equals, :fetch, :fill, :first, :flatten, :grep, :include, :index, :insert, :intersection, :join, :mathop, :pop, :push, :reject, :replace, :reverse, :shift, :slice, :sort, :to_s, :uniq, :values_at, :warray]
+        task :all =&gt; [:array, :assign, :at, :clear, :collect, :compact, :concat, :count, :delete, :empty, :equals, :fetch, :fill, :first, :flatten, :grep, :include, :index, :insert, :intersection, :join, :mathop, :pop, :push, :reject, :replace, :reverse, :select, :shift, :slice, :sort, :to_s, :uniq, :values_at, :warray]
     end
     
     namespace :file do </diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -284,6 +284,27 @@ Return a sorted copy of the list
     .return ($P0)
 .end
 
+.sub 'select' :method
+    .param pmc block :named('!BLOCK')
+    .local pmc uarray, val
+
+    uarray = new 'CardinalArray'
+    $P0 = iter self
+
+  loop:
+    unless $P0 goto done
+
+    $P1 = shift $P0
+    $P2 = block($P1)
+    unless $P2 goto loop
+
+    uarray.'push'($P1)
+    goto loop
+
+  done:
+    .return (uarray)
+.end
+
 .sub reject :method
     .param pmc block :named(&quot;!BLOCK&quot;)
     .local pmc uarray, val</diff>
      <filename>src/classes/Array.pir</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>a2b5f4dcbf6db1d1a1bdd88a1301e745aea0ad79</id>
    </parent>
  </parents>
  <author>
    <name>Danius Michaelides</name>
    <email>danius.michaelides@gmail.com</email>
  </author>
  <url>http://github.com/cardinal/cardinal/commit/f33b4944e160024765ec2d3e37eb840925e59170</url>
  <id>f33b4944e160024765ec2d3e37eb840925e59170</id>
  <committed-date>2009-08-23T08:57:15-07:00</committed-date>
  <authored-date>2009-08-23T08:18:56-07:00</authored-date>
  <message>Implement Array#select.

Signed-off-by: Ted Reed &lt;ted.reed@gmail.com&gt;</message>
  <tree>f21ca477e72a57fd6dd492a4aef7845dc7dc5556</tree>
  <committer>
    <name>Ted Reed</name>
    <email>ted.reed@gmail.com</email>
  </committer>
</commit>
