Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Feb 10, 2013
  1. @adriaanm

    [nomaster] Revert "SI-4664 Make scala.util.Random Serializable"

    adriaanm authored
    Also revert "SI-4664 [Make scala.util.Random Serializable] Add test case"
    This reverts commit 0b92073.
    This reverts commit 2aa66be.
    This is necessary to maintain binary compatibility with 2.10.0.
Commits on Feb 7, 2013
  1. @jroper @JamesIry

    [backport] SI-6478 Fixing JavaTokenParser ident

    jroper authored JamesIry committed
    Backport of 2569341 from PR
Commits on Jan 4, 2013
  1. SI-6915 Updates copyright properties to 2002-2013

    James Iry authored
    The .scala header files had the right copyright dates
    but properties used to generate the information in
    e.g. "scala -version" hadn't been updated.
    review @adriaanm
Commits on Dec 1, 2012
  1. @jedesah
Commits on Nov 2, 2012
  1. @heathermiller
Commits on Sep 29, 2012
  1. @soc
Commits on Sep 15, 2012
  1. @paulp

    More relative path elimination.

    paulp 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. @paulp

    Eliminate breaking relative names in source.

    paulp authored
    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 Sep 7, 2012
  1. @jsuereth

    Minor code style alterations and performance fixes.

    jsuereth authored
    Specifically, avoid reinstantiating an immutable object to alter the type parameter *IF*
    that type parameter has nothing to do with the contents of the object.
  2. @jsuereth

    Fix for SI-6333 - Try throws from combinators.

    jsuereth authored
    * Added  more comprehensive tests to Try.
    * Delineated what methods do and don't catch exceptions in docs.
    * Fixed combinator methods that should catch exceptions.
Commits on Aug 24, 2012
  1. @jsuereth
Commits on Aug 22, 2012
  1. @jsuereth
Commits on Aug 20, 2012
  1. @jsuereth

    Merge pull request #1165 from jsuereth/fix/try-catch-libs

    jsuereth authored
    Fix/try catch libs
  2. @jsuereth
  3. @gkossakowski

    Don't allocate closure in List.hashCode.

    gkossakowski authored
    Provided specialized version of hashing algorithm
    for List that does not allocate the closure.
    This saves us 124k closures allocated in a compiler
    when compiling `Vector.scala` from std library.
    That's aroudn 5% of all closures allocated for that
    compiler run.
Commits on Aug 17, 2012
  1. @paulp

    Restored lastNoSuccess to Parsers.

    paulp authored
    It was in 2.9.2 and can't be removed without deprecation.
Commits on Aug 15, 2012
  1. @xeno-by

    cleanup of reflection- and macro-related stuff

    xeno-by authored
    mostly removes [Eugene] marks that I left back then and reviews related code
    some of those tokens got left in place, because I don't know to how fix them
    without imposing risks on 2.10.0
Commits on Aug 7, 2012
  1. @heathermiller
Commits on Aug 5, 2012
  1. @heathermiller

    Temporarily skips failing test due to optimizer bug SI-6188

    heathermiller authored
    Also swaps the arguments to method transform on Try, so as to mirror transform on scala.concurrent.Future.
Commits on Aug 4, 2012
  1. @heathermiller
Commits on Aug 1, 2012
  1. @xuwei-k

    minor fixes scaladoc

    xuwei-k authored
Commits on Jul 27, 2012
  1. @paulp

    Eliminated all the current feature warnings.

    paulp authored
    This pretty much takes us down to deprecation and inliner warnings.
  2. @paulp

    Eliminated remainder of "catches Throwable" warnings.

    paulp authored
    And also non-exhaustive matches.
    And added -nowarn to the build options for scalacheck,
    we don't need to hear the warnings for code we aren't
    able to fix.
Commits on Jul 12, 2012
  1. @xuwei-k
Commits on Jul 9, 2012
  1. @havocp

    Collection of updates to SIP-14 (scala.concurrent)

    havocp authored
    Developed by Viktor Klang and Havoc Pennington
    - add Promise.isCompleted
    - add Future.successful and Future.failed
    - add ExecutionContextExecutor and ExecutionContextExecutorService for Java interop
    - remove defaultExecutionContext as default parameter value from promise and future
    - add which must be explicitly imported, rather
      than the previous always-available value for the implicit EC
    - remove currentExecutionContext, since it could create bugs by being
      out of sync with the implicit ExecutionContext
    - remove Future task batching (_taskStack) and Future.releaseStack
        This optimization should instead be implemented either in
        a specific thread pool or in a specific ExecutionContext.
        Some pools or ExecutionContexts may not want or need it.
        In this patch, the defaultExecutionContext does not
        keep the batching optimization. Whether it should
        have it should perhaps be determined through benchmarking.
    - move internalBlockingCall to BlockContext and remove currentExecutionContext
        In this patch, BlockContext must be implemented by Thread.currentThread,
        so the thread pool is the only place you can add custom hooks
        to be run when blocking.
        We implement BlockContext for the default ForkJoinWorkerThread in terms of
    - add public BlockContext.current and BlockContext.withBlockContext
        These allow an ExecutionContext or other code to override
        the BlockContext for the current thread. With this
        API, the BlockContext is customizable without
        creating a new pool of threads.
        BlockContext.current is needed to obtain the previous
        BlockContext before you push, so you can "chain up" to
        it if desired.
        BlockContext.withBlockContext is used to override the context
        for a given piece of code.
    - move isFutureThrowable into impl.Future
    - add implicitNotFound to ExecutionContext
    - remove default global EC from future {} and promise {}
    - add for explicit use of the global default EC,
      replaces defaultExecutionContext
    - add a timeout to scala-concurrent-tck tests that block on SyncVar
      (so tests time out rather than hang)
    - insert blocking{} calls into concurrent tck to fix deadlocking
    - add NonFatal.apply and tests for NonFatal
    - add OnCompleteRunnable marker trait
        This would allow an ExecutionContext to distinguish a Runnable originating
        from Future.onComplete (all callbacks on Future end up going through
    - rename ListenerRunnable to CallbackRunnable and use for KeptPromise too
      Just adds some clarity and consistency.
Commits on Jul 6, 2012
  1. @heathermiller
Commits on Jul 5, 2012
  1. @heathermiller
Commits on Jun 23, 2012
  1. @soc
Commits on Jun 21, 2012
  1. @axel22

    Fix SI-4809.

    axel22 authored
Commits on Jun 12, 2012
  1. @jdanbrown
Commits on Jun 8, 2012
  1. @xeno-by

    removes array tags

    xeno-by authored
    Before 2.10 we had a notion of ClassManifest that could be used to retain
    erasures of abstract types (type parameters, abstract type members) for
    being used at runtime.
    With the advent of ClassManifest (and its subtype Manifest)
    it became possible to write:
      def mkGenericArray[T: Manifest] = Array[T]()
    When compiling array instantiation, scalac would use a ClassManifest
    implicit parameter from scope (in this case, provided by a context bound)
    to remember Ts that have been passed to invoke mkGenericArray and
    use that information to instantiate arrays at runtime (via Java reflection).
    When redesigning manifests into what is now known as type tags, we decided
    to explore a notion of ArrayTags that would stand for abstract and pure array
    creators. Sure, ClassManifests were perfectly fine for this job, but they did
    too much - technically speaking, one doesn't necessarily need a java.lang.Class
    to create an array. Depending on a platform, e.g. within JavaScript runtime,
    one would want to use a different mechanism.
    As tempting as this idea was, it has also proven to be problematic.
    First, it created an extra abstraction inside the compiler. Along with class tags
    and type tags, we had a third flavor of tags - array tags. This has threaded the
    additional complexity though implicits and typers.
    Second, consequently, when redesigning tags multiple times over the course of
    Scala 2.10.0 development, we had to carry this extra abstraction with us, which
    exacerbated the overall feeling towards array tags.
    Finally, array tags didn't fit into the naming scheme we had for tags.
    Both class tags and type tags sound logical, because, they are descriptors for
    the things they are supposed to tag, according to their names.
    However array tags are the odd ones, because they don't actually tag any arrays.
    As funny as it might sound, the naming problem was the last straw
    that made us do away with the array tags. Hence this commit.
  2. @xeno-by

    removes tags and their incantations from Predef

    xeno-by authored
    All tags and reflection-related stuff requires a prefix,
    be it scala.reflect for simple tags (ArrayTags and ClassTags),
    or scala.reflect.basis/scala.reflect.runtime.universe for type tags.
  3. @xeno-by

    ClassTag.erasure => ClassTag.runtimeClass

    xeno-by authored
    This change is made to be consistent with JavaMirrors.
    And, in my opinion, a technology-neutral term is better here.
Commits on Jun 7, 2012
  1. @axel22

    Add the first iteration of the `util.hashing` package.

    axel22 authored
    Move `MurmurHash3` to `util.hashing`.
    Make the `class` private and retain a public companion
    `object`, and put the `MurmurHash3.Hashing` implementations
    for various types in the companion.
    Add a method which composes `ByteswapHashing` with some other hashing.
    Rename `hashOf` to `hash`.
    Fix chi-square test in a test-case.
    Review by @jsuereth.
    Moved a failing test that seems to use some other library version to pending.
Commits on Jun 1, 2012
  1. @axel22

    Fix `Hashing`.

    axel22 authored
    Move `Hashing` to `scala.util.hashing`.
    Adde `Hashing.Default` to `Hashing` companion object.
    Change `TrieMap` to autoswitch from `Hashing.Default` to `TrieMap.MangledHashing`.
Something went wrong with that request. Please try again.