Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Nov 15, 2012
  1. Fixes SI-6628, Revert "Fix for view isEmpty."

    Paul Phillips authored
    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. More relative path elimination.

    Paul Phillips authored
    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. Eliminate breaking relative names in source.

    Paul Phillips authored
    These things are killing me.  Constructions like
    
      package scala.foo.bar.baz
      import foo.Other
    
    DO NOT WORK in general.  Such files are not really in the
    "scala" package, because it is not declared
    
      package scala
      package foo.bar.baz
    
    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
    classpath.
    
    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. Fix for view isEmpty.

    Paul Phillips authored
    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 authored
    - 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. Removed all the imports of the bridge annotation.

    Paul Phillips authored
    Now that nothing uses it.
  2. @soc

    Removes @bridge methods.

    soc authored
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. Removed the type parameter from sliding, no rev...

    Paul Phillips authored
    Removed the type parameter from sliding, no review.
Commits on Aug 15, 2011
  1. Removing the code which has been deprecated sin...

    Paul Phillips authored
    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. Make IterableLike.toIterator more efficient

    Paul Phillips authored
    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 authored
Commits on Apr 24, 2011
  1. @odersky

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

    odersky authored
    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. One of the blips in the performance charts seem...

    Paul Phillips authored
    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. Adds "since" field to @deprecated.

    Paul Phillips authored
    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 authored
    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 authored
    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 authored
    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
    unguarded.
    
    No review.
Commits on Mar 8, 2011
  1. An overhaul of slice and related implementation...

    Paul Phillips authored
    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 authored
Commits on Dec 29, 2010
  1. Some accumulated cleanup done while profiling a...

    Paul Phillips authored
    Some accumulated cleanup done while profiling and reducing uses of
    length. No review.
Commits on Dec 4, 2010
  1. A selection of collections additions from the l...

    Paul Phillips authored
    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. Some collections overrides for more efficient t...

    Paul Phillips authored
    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 authored
    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 authored
Commits on Jun 8, 2010
  1. @axel22

    Fixes #3461. No review.p

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

    Antonio Cunei authored
    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 authored
Commits on Apr 8, 2010
  1. @axel22

    Another set of typos fixed.

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

    Spring cleaning of collection libraries.

    odersky authored
    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.