Skip to content
Commits on Nov 15, 2012
  1. @paulp

    Fixes SI-6628, Revert "Fix for view isEmpty."

    paulp committed
    This reverts commit caf7eb6.
    I don't have a better idea right now than wholesale reversion.
Commits on Nov 2, 2012
  1. @heathermiller
Commits on Sep 15, 2012
  1. @paulp

    More relative path elimination.

    paulp committed
    Some names I missed in 55b6094 .
    How one might know when one is done:
      mkdir scratch && cd scratch
      mkdir annotation beans collection compat concurrent io \
        math parallel ref reflect runtime scala sys testing \
        text tools util xml
      scalac $(find ../src/library -name '*.scala')
    Until recently that would fail with about a billion errors. When it
    compiles, that's when you're done.  And that's where this commit
    takes us, for src/library at least.
Commits on Sep 14, 2012
  1. @paulp

    Eliminate breaking relative names in source.

    paulp committed
    These things are killing me.  Constructions like
      import foo.Other
    DO NOT WORK in general.  Such files are not really in the
    "scala" package, because it is not declared
      package scala
    And there is a second problem: using a relative path name means
    compilation will fail in the presence of a directory of the same
    name, e.g.
      % mkdir reflect
      % scalac src/reflect/scala/reflect/internal/util/Position.scala
      src/reflect/scala/reflect/internal/util/Position.scala:9: error:
        object ClassTag is not a member of package reflect
      import reflect.ClassTag
      src/reflect/scala/reflect/internal/util/Position.scala:10: error:
        object base is not a member of package reflect
      import reflect.base.Attachments
    As a rule, do not use relative package paths unless you have
    explicitly imported the path to which you think you are relative.
    Better yet, don't use them at all. Unfortunately they mostly work
    because scala variously thinks everything scala.* is in the scala
    package and/or because you usually aren't bootstrapping and it
    falls through to an existing version of the class already on the
    Making the paths explicit is not a complete solution -
    in particular, we remain enormously vulnerable to any directory
    or package called "scala" which isn't ours - but it greatly
    limts the severity of the problem.
Commits on Aug 13, 2012
  1. @paulp

    Fix for view isEmpty.

    paulp committed
    Views have been inheriting the very inefficient isEmpty
    from Traversable, and since isEmpty is not specifically
    forwarded to the underlying collections, views miss out on all
    the important optimizations in those collections which tend to
    be implemented via method override.  Not to mention, they miss
    out on correctness, because calling foreach has a habit of
    forcing the first element of the view.
Commits on May 16, 2012
  1. @heathermiller
Commits on May 13, 2012
  1. @retronym

    Address doc comment rot in the standard library.

    retronym committed
    - Match @param/@tparam names to the actual parameter name
    - Use @tparam for type parameters
    - Whitespace is required between `*` and `@`
    - Fix incorrect references to @define macros.
    - Use of monospace `` and {{{}}} (much more needed)
    - Remove `@param p1 ...` stubs, which appear in the generated docss.
      - But, retainsed `@param p1` stubs, assuming they will be filtered from
        the generated docs by SI-5795.
    - Avoid use of the shorthand `@param   doc for the solitary param`
      (which works, but isn't recognized by the code inspection in IntelliJ
      I used to sweep through the problems)
    The remaining warnings from `ant docs` seem spurious, I suspect they are
    an unintended consequence of documenting extension methods.
      [scaladoc] /Users/jason/code/scala/src/library/scala/collection/TraversableOnce.scala:181: warning: Variable coll undefined in comment for method reduceOption in class Tuple2Zipped
      [scaladoc]   def reduceOption[A1 >: A](op: (A1, A1) => A1): Option[A1] = reduceLeftOption(op)
      [scaladoc]       ^
Commits on Apr 28, 2012
  1. @paulp

    Removed all the imports of the bridge annotation.

    paulp committed
    Now that nothing uses it.
  2. @soc

    Removes @bridge methods.

    soc committed
Commits on Apr 13, 2012
  1. @odersky
Commits on Mar 20, 2012
  1. @VladUreche
Commits on Feb 6, 2012
  1. @odersky
Commits on Sep 3, 2011
  1. @paulp

    Removed the type parameter from sliding, no rev...

    paulp committed
    Removed the type parameter from sliding, no review.
Commits on Aug 15, 2011
  1. @paulp

    Removing the code which has been deprecated sin...

    paulp committed
    Removing the code which has been deprecated since 2.8.0. Contributed by
    Simon Ochsenreither, although deleting code is such fun one hesitates to
    call it a contribution. Still, we will. Closes SI-4860, no review.
Commits on Jul 16, 2011
  1. @paulp

    Make IterableLike.toIterator more efficient

    paulp committed
    Override TraversableLike.toIterator which uses unnecessary toStream.
    Fixes SI-4802.  Contributed by Yang Zhang.
Commits on Jun 18, 2011
  1. @kzys

    Fixes #4490 and #4467.

    kzys committed
Commits on Apr 24, 2011
  1. @odersky

    Added a bunch of bridges to make ameliorate bin...

    odersky committed
    Added a bunch of bridges to make ameliorate binary compatibility of new
    collections. Review by prokopec. Review by extempore.
Commits on Apr 20, 2011
  1. @paulp

    One of the blips in the performance charts seem...

    paulp committed
    One of the blips in the performance charts seems to implicate some
    changes I made with slice to reduce the number of implementations and
    surface area for inconsistencies and bugs. Altering those changes in a
    more performance-mindful way, although I don't see anything here which
    is likely to help much. Also fixing some wrong documentation about
    copyToArray. No review.
Commits on Apr 14, 2011
  1. @paulp

    Adds "since" field to @deprecated.

    paulp committed
    for the patch, as it's a change I've always wanted. Moving up in the
    glamorous world of scala commits! No review.
  2. @axel22

    Adding some docs refactorings.

    axel22 committed
    Also, added some docs variables to Gen* traits that were missing.
    No review.
Commits on Apr 13, 2011
  1. @axel22

    Refactoring the collections api to support diff...

    axel22 committed
    Refactoring the collections api to support differentiation between
    referring to a sequential collection and a parallel collection, and to
    support referring to both types of collections.
    New set of traits Gen* are now superclasses of both their * and Par* subclasses. For example, GenIterable is a superclass of both Iterable and ParIterable. Iterable and ParIterable are not in a subclassing relation. The new class hierarchy is illustrated below (simplified, not all relations and classes are shown):
    TraversableOnce --> GenTraversableOnce
      ^                    ^
      |                    |
    Traversable     --> GenTraversable
      ^                    ^
      |                    |
    Iterable        --> GenIterable        <-- ParIterable
      ^                    ^                      ^
      |                    |                      |
    Seq             --> GenSeq             <-- ParSeq
    (the *Like, *View and *ViewLike traits have a similar hierarchy)
    General views extract common view functionality from parallel and
    sequential collections.
    This design also allows for more flexible extensions to the collections
    framework. It also allows slowly factoring out common functionality up
    into Gen* traits.
    From now on, it is possible to write this:
    import collection._
    val p = parallel.ParSeq(1, 2, 3)
    val g: GenSeq[Int] = p // meaning a General Sequence
    val s = g.seq // type of s is Seq[Int]
    for (elem <- g) {
      // do something without guarantees on sequentiality of foreach
      // this foreach may be executed in parallel
    for (elem <- s) {
      // do something with a guarantee that foreach is executed in order, sequentially
    for (elem <- p) {
      // do something concurrently, in parallel
    This also means that some signatures had to be changed. For example,
    method `flatMap` now takes `A => GenTraversableOnce[B]`, and `zip` takes
    a `GenIterable[B]`.
    Also, there are mutable & immutable Gen* trait variants. They have
    generic companion functionality.
Commits on Mar 22, 2011
  1. @axel22

    Implementing foreach to work in parallel in Par...

    axel22 committed
    Implementing foreach to work in parallel in ParIterableLike.
    Doing a bunch of refactoring around in the collection framework to
    ensure a parallel foreach is never called with a side-effecting method.
    This still leaves other parts of the standard library and the compiler
    No review.
Commits on Mar 8, 2011
  1. @paulp

    An overhaul of slice and related implementation...

    paulp committed
    An overhaul of slice and related implementations (primarily that is
    drop and take.) In the course of trying to get it working consistently
    (mostly with respect to negative indices, which were dealt with
    arbitrarily differently across the 25+ concrete implementations) I fixed
    various bugs.
    Closes #4288, no review.
Commits on Jan 20, 2011
  1. Updated copyright notices to 2011

    Antonio Cunei committed
Commits on Dec 29, 2010
  1. @paulp

    Some accumulated cleanup done while profiling a...

    paulp committed
    Some accumulated cleanup done while profiling and reducing uses of
    length. No review.
Commits on Dec 4, 2010
  1. @paulp

    A selection of collections additions from the l...

    paulp committed
    A selection of collections additions from the lower end of the
    controversy scale.
    // TraversableOnce
    def collectFirst[B](pf: PartialFunction[A, B]): Option[B]
    def maxBy[B](f: A => B)(implicit cmp: Ordering[B]): A
    def minBy[B](f: A => B)(implicit cmp: Ordering[B]): A
    // Iterator
    def span(p: A => Boolean): (Iterator[A], Iterator[A])
    // Traversable
    def inits: Iterator[Repr]
    def tails: Iterator[Repr]
    def unzip3[A1, A2, A3](implicit asTriple: A => (A1, A2, A3)): (CC[A1], CC[A2], CC[A3])
    // Sequences
    def permutations: Iterator[Repr]
    Review by odersky.
Commits on Dec 1, 2010
  1. @paulp

    Some collections overrides for more efficient t...

    paulp committed
    Some collections overrides for more efficient toSeq and toBuffer where
    possible. Closes #2972, review by malayeri.
Commits on Nov 8, 2010
  1. @axel22

    Added size maps to flat hash tables.

    axel22 committed
    Added parallel mutable hash sets.
    Implemented parallel mutable hash set iterators.
    Implemented parallel mutable hash set combiners.
    Factored out unrolled linked lists into a separate class UnrolledBuffer, added tests.
    Added parallel mutable hash set tests, and debugged hashsets.
    No review.
Commits on Jun 16, 2010
  1. @axel22

    Fixes #3563. Review by extempore.

    axel22 committed
Commits on Jun 8, 2010
  1. @axel22

    Fixes #3461. No review.p

    axel22 committed
Commits on May 12, 2010
  1. Removed more than 3400 svn '$Id' keywords and r...

    Antonio Cunei committed
    Removed more than 3400 svn '$Id' keywords and related junk.
Commits on May 10, 2010
  1. @odersky
Commits on Apr 9, 2010
  1. @odersky

    Updated documentation

    odersky committed
Commits on Apr 8, 2010
  1. @axel22

    Another set of typos fixed.

    axel22 committed
Commits on Mar 19, 2010
  1. @odersky

    Spring cleaning of collection libraries.

    odersky committed
    If people think some operations can be more lazy, please provide
    patches/do changes. Also brought proxies and forwarders into line.
Something went wrong with that request. Please try again.