Permalink
Commits on Nov 11, 2014
  1. Version bump to 1.2.1

    committed Nov 11, 2014
  2. Merge pull request #9 from bkutil/check_height

    Fix raise on check_height for empty RB tree
    committed Nov 11, 2014
  3. Merge pull request #8 from bkutil/gemspec_fix

    Add missing runtime dependency on atomic to gemspec
    committed Nov 11, 2014
  4. Fix raise on check_height for empty RB tree

    Balazs Kutil committed Nov 11, 2014
  5. Add missing runtime dependency on atomic to gemspec

    Balazs Kutil committed Nov 11, 2014
Commits on Sep 28, 2014
  1. Fix gemspec for release

    Also allow test failure on JRuby HEAD temporarily.
    committed Sep 28, 2014
  2. Version bump to 1.2.0

    committed Sep 28, 2014
  3. Update README.md

    committed Sep 28, 2014
  4. Rename README to README.md

    committed Sep 28, 2014
  5. Update README

    committed Sep 28, 2014
  6. Internal method signature refactoring

    No visible changes from outside.
    committed Sep 28, 2014
  7. Merge pull request #6 from nahi/topic_link_immutable

    Add ConcurrentRedBlackTree, thread-safe insert/delete/read based on link immutability and CAS
    committed Sep 28, 2014
  8. Name refactoring for readability

    link -> child, links -> children
    committed Sep 28, 2014
  9. Change the name for co-existing with the old one

    New name is ConcurrentRedBlackTree. Keep the name RedBlackTree as the
    thread unsafe version.
    committed Sep 28, 2014
  10. Abstract tree operation

    Introduce LEFT and RIGHT that fullfills ~LEFT == RIGHT and ~RIGHT ==
    LEFT then abstract tree operations by specifying operation direction as
    a method argument.
    
    It introduced 10% runtime performance drop of insert/delete but it's a
    good deal for maintenanceability.
    committed Sep 28, 2014
  11. Variable assignment refactoring

    committed Sep 28, 2014
Commits on Sep 27, 2014
  1. Add multi-thread benchmark

     * 2 Threads for insert
     * 2 Threads for delete
     * 2 Threads for read
    committed Sep 27, 2014
  2. Replace giant writer lock with CAS

    First, this commit makes nodes completely immutable (color and value,
    too.) for concurrent writer execution.  Then protect @root in
    insert/delete with CAS.  Now this gem depends 'atomic' gem.
    committed Sep 27, 2014
  3. Add explicit license files for licenses mentioned in README

    Tim Potter committed with Sep 26, 2014
  4. Test for AVLTree#height

    committed Sep 26, 2014
  5. Update Travis-CI build matrix

    committed Sep 25, 2014
  6. @seiyria

    added height accessor

    seiyria committed with Oct 12, 2013
  7. Merge pull request #7 from tpot/add-license-files

    Add explicit license files for licenses mentioned in README
    committed Sep 27, 2014
Commits on Sep 26, 2014
  1. Test for AVLTree#height

    committed Sep 26, 2014
  2. Merge pull request #5 from seiyria/patch-1

    added height accessor
    committed Sep 26, 2014
Commits on Sep 25, 2014
  1. Update Travis-CI build matrix

    committed Sep 25, 2014
  2. Add multi-threaded test

    With current version this test fails with 'should not happen'
    exception in rebalance or stack over flow from endless recursive call.
    committed Sep 25, 2014
  3. Make links immutable

    Color and value are still mutable but retrieve method should not mind
    it. Color is for rebalance (so insert/delete use it but retrieve
    doesn't) and value assignment is Thread-safe in Ruby.
    
    Write performance should drop but not yet measured.
    committed Sep 25, 2014
  4. Make it clear that it depends on test-unit

    Ruby 2.2 is going to make test-unit as a gem.
    committed Sep 25, 2014
  5. Remove node_flip to make a little more immutable

    Tree is not yet immutable (rotates, color_flip.)  Just make it
    simpler.
    committed Sep 25, 2014
Commits on Oct 12, 2013
  1. @seiyria

    added height accessor

    seiyria committed Oct 12, 2013
Commits on May 8, 2012
  1. Version bump to 1.1.3

    committed May 8, 2012
  2. Graceful handling of uncomparable keys

    h["a"] = 1
    h[1.1] = 2    # => TypeError because "a" <=> 1.1 returns nil
    h.delete(1.1) # => ditto
    h[1.1]        # => nil, not error
    
    Closes #4.
    committed May 8, 2012