Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Nov 24, 2011
  1. Paul Phillips

    Refinements of "def seq" and murmurhash.

    paulp authored
    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. Paul Phillips

    Dropped about 1.5 Mb off scala-library.jar.

    paulp authored
    This commit and the two subsequent commits were contributed by:
    
      Todd Vierling <tv@duh.org>.
    
    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
    analysis.
    
    * 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. Paul Phillips

    Addressing most of the warnings revealed by the...

    paulp authored
    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. Paul Phillips

    A new murmur3 hashcode implementation contribut...

    paulp authored
    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. Paul Phillips
Something went wrong with that request. Please try again.