Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Nov 24, 2011
  1. @paulp

    Refinements of "def seq" and murmurhash.

    paulp committed
    Trying to make hashcodes faster. Didn't achieve much on that front, so
    redirected into structural/consistency issues. The latter was lacking
    in terms of how/where "def seq" was defined. The documentation I can
    find doesn't give me much hint that the sequential form of my sequential
    collection might be a single-use iterator! (As in StringOps, ArrayOps.)
    If that's intentional it should be in huge letters. I'm assuming for now
    that it wasn't.
    Also, there was this:
      GenMapLike:     def seq: Map[A, B]
      GenSetLike:     def seq: Set[A]
      GenSeqLike:     // nothing, returns Traversable
    So I added some def seqs where I needed the more specific types for
    my hashcode work. Hashcodewise, I broke the MurmurHash3 object into
    a reusable class and a collections-specific object, and I deprecated
    the methods which took GenTraversableOnce in favor of ones taking
    TraversableOnce, because there's no reason the hashcode library should
    have to know about things like "make sure to call seq before you
    traverse or you'll be sorry." Exclude things by their type and you can
    never make a mistake. End transmission.
Commits on Nov 7, 2011
  1. @paulp

    Dropped about 1.5 Mb off scala-library.jar.

    paulp committed
    This commit and the two subsequent commits were contributed by:
      Todd Vierling <>.
    I combined some commits and mangled his commit messages, but all the
    credit is his. This pursues the same approach to classfile reduction
    seen in r19989 when AbstractFunctionN was introduced, but applies it to
    the collections. Thanks to -Xlint it's easy to verify that the private
    types don't escape.
    Design considerations as articulated by Todd:
    * Don't necessarily create concrete types for _everything_. Where a
    subtrait only provides a few additional methods, don't bother; instead,
    use the supertrait's concrete class and retain the "with". For example,
    "extends AbstractSeq[A] with LinearSeq[A]".
    * Examine all classes with .class file size greater than 10k. Named
    classes and class names ending in $$anon$<num> are candidates for
    * If a return type is currently inferred where an anon subclass would be
    returned, make the return type explicit. Don't allow the library-private
    abstract classes to leak into the public namespace [and scaladoc].
Commits on Mar 30, 2011
  1. @paulp

    Addressing most of the warnings revealed by the...

    paulp committed
    Addressing most of the warnings revealed by the patch to warn about
    unknown scaladoc variables. Updated and reran genprod. No review.
Commits on Jan 25, 2011
  1. @paulp

    A new murmur3 hashcode implementation contribut...

    paulp committed
    A new murmur3 hashcode implementation contributed by rex kerr. I'm
    really happy with it. There is benchmarking code included but you can
    use the pudding for proof: the compiler compiling itself is clearly
    faster. I deleted the existing murmur2 implementation which has never
    left trunk in a release.
    There remain some possible points of improvement with inlining and/or
    synthetic method generation, but this is a major improvement over the
    status quo. Closes #2537, review by prokopec.
Commits on Oct 19, 2010
  1. @paulp
Something went wrong with that request. Please try again.