Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Feb 15, 2011
  1. Bump version and configure

    Evan Phoenix authored
  2. Add 1.2.1 release notes and regen site

    Evan Phoenix authored
  3. Use proper conversion semantics for year

    Evan Phoenix authored
  4. Check for libs by prepending lib too. Fixes #663

    Evan Phoenix authored
  5. Remove some old, crusty tasks

    Evan Phoenix authored
  6. Make set_superclass private to declare intent. Fixes #659

    Evan Phoenix authored
  7. Show metaclasses more clearly

    Evan Phoenix authored
  8. Don't allow nils, so use num2long. Fixes #668

    Evan Phoenix authored
  9. Add a few more arg type check specs for Time

    Evan Phoenix authored
  10. Format fix some Time specs

    Evan Phoenix authored
Commits on Feb 14, 2011
  1. Avoid long DelegatedMethod chains. Fixes #679

    Evan Phoenix authored
  2. Add spec for IO#expect

    Evan Phoenix authored
  3. Add IO#expect extract from the pty extension

    Evan Phoenix authored
  4. IO.select should return any read IO with data buffered

    Evan Phoenix authored
Commits on Feb 12, 2011
  1. Ari Brown
  2. Ari Brown

    Changes the threshold in Array#sort for determining whether to use in…

    seydar authored
    …sertion sort or quicksort. The threshold was 6, but it is now 13. Results and methodology below.
    
    ## Code
    
    def quicksort(v, tally=[])
      return v if v.nil? or v.length <= 1
      less, more = v[1..-1].partition { |i| tally << 1; i < v[0] }
      quicksort(less, tally) + [v[0]] + quicksort(more, tally)
    end
    
    def qsort(v)
      array = []
      quicksort(v, array)
      array.size
    end
    
    def isort(list)
      tally = 0
      for i in 1..(list.length - 1)
        value = list[i]
        j = i - 1
        while j >= 0 and list[j] > value
          list[j + 1] = list[j]
          j -= 1
          tally += 1
        end
        list[j + 1] = value
      end
      tally
    end
    
    def random_array(size)
      array = []
      size.times { array << rand(1_000_000) }
      array
    end
    
    class Array
      def average
        sum / size
      end
    
      def sum
        inject(0) {|s, v| s + v }
      end
    end
    
    #################################
    q_results = Array.new(51) { [] }
    i_results = Array.new(51) { [] }
    
    10_000.times do
      (1..50).map do |i|
        q_results[i] << qsort(random_array(i))
        i_results[i] << isort(random_array(i))
      end
    end
    
    puts "Size\t| Quicksort\t| Insertio[i].average}\t| #{i_results[i].average}"
    end
    
    ## Results
    Size    | Quicksort     | Insertion sort
    1       | 0     | 0
    2       | 1     | 0
    3       | 2     | 1
    4       | 4     | 2
    5       | 7     | 5
    6       | 10    | 7
    7       | 13    | 10
    8       | 16    | 14
    9       | 20    | 17
    10      | 24    | 22
    11      | 28    | 27
    12      | 32    | 32
    13      | 37    | 38
    14      | 41    | 45
    15      | 46    | 52
    16      | 51    | 59
    17      | 55    | 68
    18      | 60    | 76
    19      | 65    | 85
    20      | 71    | 94
    21      | 76    | 104
    22      | 81    | 115
    23      | 87    | 126
    24      | 92    | 138
    25      | 98    | 150
    26      | 104   | 162
    27      | 110   | 175
    28      | 115   | 188
    29      | 121   | 203
    30      | 127   | 217
    31      | 134   | 232
    32      | 139   | 247
    33      | 145   | 264
    34      | 152   | 280
    35      | 158   | 297
    36      | 164   | 314
    37      | 171   | 333
    38      | 177   | 351
    39      | 184   | 370
    40      | 191   | 390
    41      | 197   | 410
    42
    43      | 211   | 452
    44      | 216   | 472
    45      | 224   | 494
    46      | 231   | 517
    47      | 238   | 541
    48      | 244   | 563
    49      | 251   | 588
    50      | 258   | 612
    
    real    1m57.527s
    user    1m56.007s
    sys     0m0.314s
    
    ## uname -a
    Darwin baits-190183.reshall.umich.edu 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386 i386
Commits on Feb 11, 2011
  1. Yehuda Katz
  2. Yehuda Katz
  3. Yehuda Katz
  4. Yehuda Katz
  5. Yehuda Katz

    Name customization correctly.

    wycats authored
Commits on Feb 9, 2011
  1. Yehuda Katz

    Reorganize the compiler documentation around the compilation stages a…

    wycats authored
    …nd add a stub for a stage customization document
  2. Yehuda Katz
  3. Yehuda Katz
  4. Yehuda Katz

    Adding some documentation for the Rubinius parser and adding a stub p…

    wycats authored
    …age for customizing the Rubinius compiler pipeline
Commits on Feb 8, 2011
  1. Add spec for module_eval + lexical constant scope

    Evan Phoenix authored
  2. Brian Shirai
  3. Set the proper bytecode position of a when. Fixes #661

    Evan Phoenix authored
Commits on Feb 5, 2011
  1. Santiago Pastorino
  2. Santiago Pastorino
Something went wrong with that request. Please try again.