Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge branch 'develop' | Paul Phillips | 2012-02-17 | 19 | -548/+1083 |
|\ | |||||
| *---. | Merge remote-tracking branches 'VladUreche/issue/5005', ↵ | Paul Phillips | 2012-02-17 | 18 | -547/+1078 |
| |\ \ \ | | | | | | | | | | | | | | | | 'adriaanm/topic/virtpatmat', 'dcsobral/ticket/5439' and 'magarciaEPFL/cleanInliner' into develop | ||||
| | | | * | significantly faster Inliner, with extensive documentation. | Miguel Garcia | 2012-02-17 | 3 | -336/+635 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The same inlining decisions are made as before, see -Ylog:inliner, with a focus on lines starting with "[log inliner] Inlining" review by @VladUreche @dragos @paulp | ||||
| | | * | | Move code to a better place. | Daniel C. Sobral | 2012-02-17 | 1 | -2/+3 |
| | | |/ | |||||
| | * | | [vpm] simpler implementation of switch emission | Adriaan Moors | 2012-02-17 | 1 | -30/+13 |
| | | | | |||||
| | * | | [vpm] PF's missingCase, cleaned up isDefinedAt gen | Adriaan Moors | 2012-02-17 | 4 | -94/+122 |
| | | | | |||||
| | * | | [vpm] avoid triggering virtualized matching | Adriaan Moors | 2012-02-17 | 1 | -9/+9 |
| | | | | |||||
| | * | | [vpm] generate proper isDefinedAt for switches | Adriaan Moors | 2012-02-17 | 3 | -3/+35 |
| | | | | | | | | | | | | | | | | don't consider the matcherror-throwing catch-all case (generated by virtpatmat) a default case | ||||
| | * | | [vpm] working type switch for try/catch | Adriaan Moors | 2012-02-17 | 9 | -107/+295 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | catch handlers are now also translated by the virtualizing pattern matcher emit type-based switches when possible, fallback to catch-all with full pattern match (the logic used to emit constant-based switches was generalized to type-based switches, abstracting out how to refer to the scrutinee and the shape of a default/catch-all case) this was the last missing piece of essential functionality now the virtualizing pattern matcher and the old one are mutually exclusive: -Yvirtpatmat disables the old matcher logic completely | ||||
| | * | | remove unused `tree` argument from typedCases | Adriaan Moors | 2012-02-17 | 3 | -6/+6 |
| | |/ | |||||
| * / | Prevent extaneous output in SI-5005 | Vlad Ureche | 2012-02-16 | 1 | -1/+5 |
| |/ | |||||
* / | Fixed AnyRef specialization. | Paul Phillips | 2012-02-17 | 11 | -32/+148 |
|/ | | | | | | | | | | At least for the value of fix which means "better than it was in 2.9." I accidentally spent a long while trying to fix something I didn't realize I hadn't broken. But then I lucked into partially fixing it, so that's good news. See run/t5488-fn.scala if you want to see what still doesn't work. (It's covered at SI-4770, which is now reopened.) Closes SI-5488. | ||||
* | Merge remote-tracking branch 'erikrozendaal/SI-5331' into develop | Paul Phillips | 2012-02-15 | 8 | -89/+1181 |
|\ | |||||
| * | Removed TODOs. | Erik Rozendaal | 2012-01-24 | 1 | -2/+2 |
| | | |||||
| * | Custom implementations of drop/take/slice. | Erik Rozendaal | 2012-01-23 | 5 | -12/+75 |
| | | | | | | | | This mainly helps performance when comparing keys is expensive. | ||||
| * | Custom coded version of range/from/to/until. | Erik Rozendaal | 2012-01-21 | 4 | -42/+59 |
| | | | | | | | | | | This avoids unnecessary allocation of Option and Function objects, mostly helping performance of small trees. | ||||
| * | Optimized implementation of TreeMap/TreeSet#to method. | Erik Rozendaal | 2012-01-15 | 6 | -24/+77 |
| | | | | | | | | Performance of `to` and `until` is now the same. | ||||
| * | Test for maximum height of red-black tree. | Erik Rozendaal | 2012-01-08 | 1 | -0/+5 |
| | | |||||
| * | Fix silly copy-paste error. | Erik Rozendaal | 2012-01-07 | 1 | -9/+9 |
| | | |||||
| * | Tests for takeWhile/dropWhile/span. | Erik Rozendaal | 2012-01-07 | 4 | -8/+32 |
| | | | | | | | | Also simplified implementation of span to just use splitAt. | ||||
| * | Renamed object RedBlack to RedBlackTree. | Erik Rozendaal | 2012-01-07 | 6 | -469/+690 |
| | | | | | | | | | | | | This more clearly separates the new implementation from the now deprecated abstract class RedBlack and avoids naming conflicts for the member classes. | ||||
| * | Restore old RedBlack class to maintain backwards compatibility. | Erik Rozendaal | 2012-01-06 | 4 | -171/+452 |
| | | | | | | | | | | | | | | | | | | The class is marked as deprecated and no longer used by the TreeMap/TreeSet implementation but is restored in case it was used by anyone else (since it was not marked as private to the Scala collection library). Renamed RedBlack.{Tree,RedTree,BlackTree} to Node, RedNode, and BlackNode to work around name clash with RedBlack class. | ||||
| * | Deprecate TreeMap.isSmaller and TreeSet.isSmaller. | Erik Rozendaal | 2012-01-06 | 2 | -0/+2 |
| | | | | | | | | | | | | These methods were used by the old RedBlack tree implementation, but are no longer required and were not defined in any interface. Use ordering or compare instead. | ||||
| * | Add implementation notes. Consistently use eq/ne to compare with null. | Erik Rozendaal | 2012-01-05 | 1 | -7/+24 |
| | | |||||
| * | Move nth method to RedBlack. Inline factories for tree nodes. | Erik Rozendaal | 2012-01-05 | 3 | -18/+20 |
| | | |||||
| * | Optimize foreach and iterators. | Erik Rozendaal | 2012-01-04 | 5 | -44/+103 |
| | | |||||
| * | Use null to represent empty trees. Removed Empty/NonEmpty classes. | Erik Rozendaal | 2012-01-03 | 4 | -404/+367 |
| | | |||||
| * | Implemented range without using pattern matching. | Erik Rozendaal | 2012-01-02 | 1 | -9/+14 |
| | | |||||
| * | Implemented deletes without pattern matching. | Erik Rozendaal | 2012-01-02 | 1 | -61/+72 |
| | | |||||
| * | Moved key/value/left/right fields up to NonEmpty class. Don't rely | Erik Rozendaal | 2012-01-02 | 3 | -33/+57 |
| | | | | | | | | on pattern matching for updating the tree. | ||||
| * | Minimize number of calls to ordering. | Erik Rozendaal | 2011-12-28 | 1 | -13/+14 |
| | | |||||
| * | Added some tests for TreeMap/TreeSet. | Erik Rozendaal | 2011-12-28 | 2 | -0/+182 |
| | | |||||
| * | Improved performance of RedBlack.NonEmpty.nth (helps take/drop/split/etc). | Erik Rozendaal | 2011-12-28 | 1 | -2/+3 |
| | | |||||
| * | Performance improvements for iteration (foreach and iterator). | Erik Rozendaal | 2011-12-28 | 3 | -18/+51 |
| | | |||||
| * | TreeMap/TreeSet no longer keep track of the size (the RedBlack tree | Erik Rozendaal | 2011-12-28 | 2 | -40/+31 |
| | | | | | | | | already does so). | ||||
| * | Made RedBlack private to the scala.collection.immutable package. | Erik Rozendaal | 2011-12-28 | 2 | -10/+12 |
| | | | | | | | | | | Use ArrayStack instead of Stack in TreeIterator for slightly increased performance. | ||||
| * | Make sure the redblack test compiles and runs. | Erik Rozendaal | 2011-12-28 | 2 | -42/+37 |
| | | |||||
| * | Use single shared Empty instance across all RedBlack trees. | Erik Rozendaal | 2011-12-28 | 3 | -23/+32 |
| | | |||||
| * | Changed abstract class RedBlack to singleton object. | Erik Rozendaal | 2011-12-28 | 3 | -10/+13 |
| | | |||||
| * | Moved type parameter A from RedBlack to Tree. | Erik Rozendaal | 2011-12-28 | 3 | -71/+71 |
| | | |||||
| * | Moved from Empty case object to case class in preparation of moving | Erik Rozendaal | 2011-12-28 | 3 | -15/+15 |
| | | | | | | | | type parameter A. | ||||
| * | Moved from implicit ordering value to implicit parameter. | Erik Rozendaal | 2011-12-28 | 1 | -17/+15 |
| | | |||||
| * | Switched from isSmaller to ordering. | Erik Rozendaal | 2011-12-28 | 1 | -9/+9 |
| | | |||||
| * | Implemented takeWhile/dropWhile/span to use tree splitting. This | Erik Rozendaal | 2011-12-28 | 2 | -0/+26 |
| | | | | | | | | | | changes the operation from O(n log n) to O(n) and allows for more structural sharing. | ||||
| * | Implemented drop/take/slice/splitAt/dropRight/takeRight for | Erik Rozendaal | 2011-12-28 | 3 | -0/+53 |
| | | | | | | | | | | | | TreeMap/TreeSet by splitting the underlying RedBlack tree. This makes the operation O(log n) instead of O(n) and allows more structural sharing. | ||||
| * | RedBlack.scala: Change count from 'def' to 'val' in NonEmpty tree | Erik Rozendaal | 2011-12-28 | 1 | -1/+1 |
| | | | | | | | | | | to ensure TreeSet/TreeMap 'range' operations are O(log n) instead of O(n). | ||||
| * | Optimized implementation of init/tail for TreeSet/TreeMap. | Erik Rozendaal | 2011-12-28 | 2 | -0/+6 |
| | | |||||
| * | Optimized implementations of head/headOption/last/lastOption for | Erik Rozendaal | 2011-12-28 | 3 | -0/+19 |
| | | | | | | | | TreeMap/TreeSet. | ||||
| * | Use custom implementation for iterating over RedBlack trees. Raw | Erik Rozendaal | 2011-12-28 | 1 | -5/+31 |
| | | | | | | | | performance is much better than '++' based iterator. | ||||
| * | Use RedBlack.iterator to create iterators for TreeSet/TreeMap. | Erik Rozendaal | 2011-12-28 | 2 | -2/+2 |
| | | | | | | | | | | | | | | This turns iterator creation from an O(n) operation into an O(log n) operation. Unfortunately, it halves actual iteration speed (consuming the iterator fully), probably due to the many by-name closures that are needed. |