diff options
author | Seth Tisue <seth@tisue.net> | 2016-02-25 08:33:44 -0500 |
---|---|---|
committer | Seth Tisue <seth@tisue.net> | 2016-02-25 08:33:44 -0500 |
commit | e891bb60f721465bfe497b16f5ef440de0a7d5e5 (patch) | |
tree | edbe21ff3fd89156701c8ecedf5d900915bfb759 /src | |
parent | d375334c26c625da345c5e77bca2975f21b8bd10 (diff) | |
parent | 964630ec1f4cf94f4d09eff394f959e733e3fcf7 (diff) | |
download | scala-e891bb60f721465bfe497b16f5ef440de0a7d5e5.tar.gz scala-e891bb60f721465bfe497b16f5ef440de0a7d5e5.tar.bz2 scala-e891bb60f721465bfe497b16f5ef440de0a7d5e5.zip |
Merge pull request #4996 from retronym/merge/2.11.x-to-2.12.x-20160225
Merge 2.11.x to 2.12.x [ci: last-only]
Diffstat (limited to 'src')
41 files changed, 108 insertions, 86 deletions
diff --git a/src/build/genprod.scala b/src/build/genprod.scala index b470348e8c..f85a151ae5 100644 --- a/src/build/genprod.scala +++ b/src/build/genprod.scala @@ -15,7 +15,6 @@ import scala.language.postfixOps * where the argument is the desired output directory * * @author Burak Emir, Stephane Micheloud, Geoffrey Washburn, Paul Phillips - * @version 1.1 */ object genprod extends App { val MAX_ARITY = 22 @@ -353,7 +352,7 @@ object ProductTwo extends Product(2) class Product(val i: Int) extends Group("Product") with Arity { val productElementComment = """ - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/build/maven/scala-compiler-doc-pom.xml b/src/build/maven/scala-compiler-doc-pom.xml index 8572e55b42..0c33d23d61 100644 --- a/src/build/maven/scala-compiler-doc-pom.xml +++ b/src/build/maven/scala-compiler-doc-pom.xml @@ -51,8 +51,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-compiler-interactive-pom.xml b/src/build/maven/scala-compiler-interactive-pom.xml index ad8192b694..d3e5e0b834 100644 --- a/src/build/maven/scala-compiler-interactive-pom.xml +++ b/src/build/maven/scala-compiler-interactive-pom.xml @@ -41,8 +41,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-compiler-pom.xml b/src/build/maven/scala-compiler-pom.xml index 8ca18f6f14..15546109c8 100644 --- a/src/build/maven/scala-compiler-pom.xml +++ b/src/build/maven/scala-compiler-pom.xml @@ -63,8 +63,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-dist-pom.xml b/src/build/maven/scala-dist-pom.xml index 1f6b6710ac..ce511661b0 100644 --- a/src/build/maven/scala-dist-pom.xml +++ b/src/build/maven/scala-dist-pom.xml @@ -62,8 +62,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-library-all-pom.xml b/src/build/maven/scala-library-all-pom.xml index 074c067742..4620c620dc 100644 --- a/src/build/maven/scala-library-all-pom.xml +++ b/src/build/maven/scala-library-all-pom.xml @@ -61,8 +61,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-library-pom.xml b/src/build/maven/scala-library-pom.xml index 78fc05a7c3..e27f8fb12f 100644 --- a/src/build/maven/scala-library-pom.xml +++ b/src/build/maven/scala-library-pom.xml @@ -39,8 +39,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scala-reflect-pom.xml b/src/build/maven/scala-reflect-pom.xml index c21caefcf2..f7f3c8bc08 100644 --- a/src/build/maven/scala-reflect-pom.xml +++ b/src/build/maven/scala-reflect-pom.xml @@ -44,8 +44,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/build/maven/scalap-pom.xml b/src/build/maven/scalap-pom.xml index 236ac999fc..acdd44f19b 100644 --- a/src/build/maven/scalap-pom.xml +++ b/src/build/maven/scalap-pom.xml @@ -41,8 +41,8 @@ <name>EPFL LAMP</name> </developer> <developer> - <id>Typesafe</id> - <name>Typesafe, Inc.</name> + <id>Lightbend</id> + <name>Lightbend, Inc.</name> </developer> </developers> </project> diff --git a/src/compiler/scala/tools/nsc/GenericRunnerCommand.scala b/src/compiler/scala/tools/nsc/GenericRunnerCommand.scala index 2584054686..24496fa013 100644 --- a/src/compiler/scala/tools/nsc/GenericRunnerCommand.scala +++ b/src/compiler/scala/tools/nsc/GenericRunnerCommand.scala @@ -87,7 +87,11 @@ A file argument will be run as a scala script unless it contains only self-contained compilation units (classes and objects) and exactly one runnable main method. In that case the file will be compiled and the main method invoked. This provides a bridge between scripts and standard -scala source.%n""" +scala source. + +When running a script or using -e, an already running compilation daemon +(fsc) is used, or a new one started on demand. The -nc option can be +used to prevent this.%n""" } object GenericRunnerCommand { diff --git a/src/library/scala/Product1.scala b/src/library/scala/Product1.scala index dbc34ba66a..e82300adf6 100644 --- a/src/library/scala/Product1.scala +++ b/src/library/scala/Product1.scala @@ -24,7 +24,7 @@ trait Product1[@specialized(Int, Long, Double) +T1] extends Any with Product { override def productArity = 1 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product10.scala b/src/library/scala/Product10.scala index 70de79d49a..5fc4874048 100644 --- a/src/library/scala/Product10.scala +++ b/src/library/scala/Product10.scala @@ -24,7 +24,7 @@ trait Product10[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10] extends Any w override def productArity = 10 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product11.scala b/src/library/scala/Product11.scala index 1bb79ac017..dcebc90e3e 100644 --- a/src/library/scala/Product11.scala +++ b/src/library/scala/Product11.scala @@ -24,7 +24,7 @@ trait Product11[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11] extends override def productArity = 11 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product12.scala b/src/library/scala/Product12.scala index d7e1e1b05c..2221170452 100644 --- a/src/library/scala/Product12.scala +++ b/src/library/scala/Product12.scala @@ -24,7 +24,7 @@ trait Product12[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12] e override def productArity = 12 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product13.scala b/src/library/scala/Product13.scala index 8571b45a40..e76f326766 100644 --- a/src/library/scala/Product13.scala +++ b/src/library/scala/Product13.scala @@ -24,7 +24,7 @@ trait Product13[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 13 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product14.scala b/src/library/scala/Product14.scala index a2f5140370..a076e2cc7a 100644 --- a/src/library/scala/Product14.scala +++ b/src/library/scala/Product14.scala @@ -24,7 +24,7 @@ trait Product14[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 14 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product15.scala b/src/library/scala/Product15.scala index 1c6ad0011c..4568aff1fe 100644 --- a/src/library/scala/Product15.scala +++ b/src/library/scala/Product15.scala @@ -24,7 +24,7 @@ trait Product15[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 15 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product16.scala b/src/library/scala/Product16.scala index f03b0b34a2..84dccb0ac8 100644 --- a/src/library/scala/Product16.scala +++ b/src/library/scala/Product16.scala @@ -24,7 +24,7 @@ trait Product16[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 16 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product17.scala b/src/library/scala/Product17.scala index 72df1b496a..0d50898bf4 100644 --- a/src/library/scala/Product17.scala +++ b/src/library/scala/Product17.scala @@ -24,7 +24,7 @@ trait Product17[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 17 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product18.scala b/src/library/scala/Product18.scala index 0402f90a01..9b32265d71 100644 --- a/src/library/scala/Product18.scala +++ b/src/library/scala/Product18.scala @@ -24,7 +24,7 @@ trait Product18[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 18 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product19.scala b/src/library/scala/Product19.scala index b9770db47b..fe6b95669b 100644 --- a/src/library/scala/Product19.scala +++ b/src/library/scala/Product19.scala @@ -24,7 +24,7 @@ trait Product19[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 19 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product2.scala b/src/library/scala/Product2.scala index a43a4a285c..091bcc89de 100644 --- a/src/library/scala/Product2.scala +++ b/src/library/scala/Product2.scala @@ -24,7 +24,7 @@ trait Product2[@specialized(Int, Long, Double) +T1, @specialized(Int, Long, Doub override def productArity = 2 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product20.scala b/src/library/scala/Product20.scala index 7b0df201ec..81315e3558 100644 --- a/src/library/scala/Product20.scala +++ b/src/library/scala/Product20.scala @@ -24,7 +24,7 @@ trait Product20[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 20 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product21.scala b/src/library/scala/Product21.scala index f81347aac0..b5967c06e1 100644 --- a/src/library/scala/Product21.scala +++ b/src/library/scala/Product21.scala @@ -24,7 +24,7 @@ trait Product21[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 21 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product22.scala b/src/library/scala/Product22.scala index 7a25891c6e..c7b9da5ce8 100644 --- a/src/library/scala/Product22.scala +++ b/src/library/scala/Product22.scala @@ -24,7 +24,7 @@ trait Product22[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9, +T10, +T11, +T12, + override def productArity = 22 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product3.scala b/src/library/scala/Product3.scala index 9976240935..7154bf5bdf 100644 --- a/src/library/scala/Product3.scala +++ b/src/library/scala/Product3.scala @@ -24,7 +24,7 @@ trait Product3[+T1, +T2, +T3] extends Any with Product { override def productArity = 3 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product4.scala b/src/library/scala/Product4.scala index d6c1543390..046f8c7a7c 100644 --- a/src/library/scala/Product4.scala +++ b/src/library/scala/Product4.scala @@ -24,7 +24,7 @@ trait Product4[+T1, +T2, +T3, +T4] extends Any with Product { override def productArity = 4 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product5.scala b/src/library/scala/Product5.scala index 5f1b11a30d..3e952c8c55 100644 --- a/src/library/scala/Product5.scala +++ b/src/library/scala/Product5.scala @@ -24,7 +24,7 @@ trait Product5[+T1, +T2, +T3, +T4, +T5] extends Any with Product { override def productArity = 5 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product6.scala b/src/library/scala/Product6.scala index efd9408d73..010c68711a 100644 --- a/src/library/scala/Product6.scala +++ b/src/library/scala/Product6.scala @@ -24,7 +24,7 @@ trait Product6[+T1, +T2, +T3, +T4, +T5, +T6] extends Any with Product { override def productArity = 6 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product7.scala b/src/library/scala/Product7.scala index fab0a997a1..24e5a5c05a 100644 --- a/src/library/scala/Product7.scala +++ b/src/library/scala/Product7.scala @@ -24,7 +24,7 @@ trait Product7[+T1, +T2, +T3, +T4, +T5, +T6, +T7] extends Any with Product { override def productArity = 7 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product8.scala b/src/library/scala/Product8.scala index 41391f7050..4a9f65b00e 100644 --- a/src/library/scala/Product8.scala +++ b/src/library/scala/Product8.scala @@ -24,7 +24,7 @@ trait Product8[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8] extends Any with Product override def productArity = 8 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/Product9.scala b/src/library/scala/Product9.scala index e22538e1ee..9af11f709a 100644 --- a/src/library/scala/Product9.scala +++ b/src/library/scala/Product9.scala @@ -24,7 +24,7 @@ trait Product9[+T1, +T2, +T3, +T4, +T5, +T6, +T7, +T8, +T9] extends Any with Pro override def productArity = 9 - /** Returns the n-th projection of this product if 0 < n <= productArity, + /** Returns the n-th projection of this product if 0 <= n < productArity, * otherwise throws an `IndexOutOfBoundsException`. * * @param n number of the projection to be returned diff --git a/src/library/scala/collection/GenTraversableOnce.scala b/src/library/scala/collection/GenTraversableOnce.scala index 244ff26397..4af2ca23be 100644 --- a/src/library/scala/collection/GenTraversableOnce.scala +++ b/src/library/scala/collection/GenTraversableOnce.scala @@ -67,6 +67,23 @@ trait GenTraversableOnce[+A] extends Any { */ def foreach[U](f: A => U): Unit + /** Tests whether this $coll is known to have a finite size. + * All strict collections are known to have finite size. For a non-strict + * collection such as `Stream`, the predicate returns `'''true'''` if all + * elements have been computed. It returns `'''false'''` if the stream is + * not yet evaluated to the end. Non-empty Iterators usually return + * `'''false'''` even if they were created from a collection with a known + * finite size. + * + * Note: many collection methods will not work on collections of infinite sizes. + * The typical failure mode is an infinite loop. These methods always attempt a + * traversal without checking first that `hasDefiniteSize` returns `'''true'''`. + * However, checking `hasDefiniteSize` can provide an assurance that size is + * well-defined and non-termination is not a concern. + * + * @return `'''true'''` if this collection is known to have finite size, + * `'''false'''` otherwise. + */ def hasDefiniteSize: Boolean def seq: TraversableOnce[A] @@ -81,6 +98,9 @@ trait GenTraversableOnce[+A] extends Any { /** Tests whether the $coll is empty. * + * Note: Implementations in subclasses that are not repeatedly traversable must take + * care not to consume any elements when `isEmpty` is called. + * * @return `true` if the $coll contains no elements, `false` otherwise. */ def isEmpty: Boolean diff --git a/src/library/scala/collection/TraversableLike.scala b/src/library/scala/collection/TraversableLike.scala index fa9a3a7482..d914f2e0ff 100644 --- a/src/library/scala/collection/TraversableLike.scala +++ b/src/library/scala/collection/TraversableLike.scala @@ -138,17 +138,6 @@ trait TraversableLike[+A, +Repr] extends Any result } - /** Tests whether this $coll is known to have a finite size. - * All strict collections are known to have finite size. For a non-strict - * collection such as `Stream`, the predicate returns `'''true'''` if all - * elements have been computed. It returns `'''false'''` if the stream is - * not yet evaluated to the end. - * - * Note: many collection methods will not work on collections of infinite sizes. - * - * @return `'''true'''` if this collection is known to have finite size, - * `'''false'''` otherwise. - */ def hasDefiniteSize = true def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = { diff --git a/src/library/scala/collection/TraversableOnce.scala b/src/library/scala/collection/TraversableOnce.scala index 41362e8dd7..b87fcd166e 100644 --- a/src/library/scala/collection/TraversableOnce.scala +++ b/src/library/scala/collection/TraversableOnce.scala @@ -38,9 +38,10 @@ import scala.reflect.ClassTag * `Traversables`, such as folds, conversions, and other operations which * traverse some or all of the elements and return a derived value. * Directly subclassing `TraversableOnce` is not recommended - instead, - * consider declaring an `Iterator` with a `next` and `hasNext` method, - * creating an `Iterator` with one of the methods on the `Iterator` object, - * or declaring a subclass of `Traversable`. + * consider declaring an `Iterator` with a `next` and `hasNext` method or + * creating an `Iterator` with one of the methods on the `Iterator` object. + * Consider declaring a subclass of `Traversable` instead if the elements + * can be traversed repeatedly. * * @define coll traversable or iterator * @define orderDependent @@ -61,8 +62,8 @@ import scala.reflect.ClassTag trait TraversableOnce[+A] extends Any with GenTraversableOnce[A] { self => + //TODO 2.12: Remove these methods. They are already defined in GenTraversableOnce /* Self-documenting abstract methods. */ - def foreach[U](f: A => U): Unit def isEmpty: Boolean def hasDefiniteSize: Boolean diff --git a/src/library/scala/util/MurmurHash.scala b/src/library/scala/util/MurmurHash.scala index e05fe0875b..1b6db5d6aa 100644 --- a/src/library/scala/util/MurmurHash.scala +++ b/src/library/scala/util/MurmurHash.scala @@ -10,7 +10,7 @@ package scala package util /** An implementation of Austin Appleby's MurmurHash 3.0 algorithm - * (32 bit version); reference: http://code.google.com/p/smhasher + * (32 bit version); reference: https://github.com/aappleby/smhasher * * This is the hash used by collections and case classes (including * tuples). diff --git a/src/library/scala/util/hashing/MurmurHash3.scala b/src/library/scala/util/hashing/MurmurHash3.scala index 4e5537954f..6a56910451 100644 --- a/src/library/scala/util/hashing/MurmurHash3.scala +++ b/src/library/scala/util/hashing/MurmurHash3.scala @@ -193,7 +193,7 @@ private[hashing] class MurmurHash3 { * to remedy some weaknesses and improve performance. This represents the * latest and supposedly final version of the algorithm (revision 136). * - * @see [[http://code.google.com/p/smhasher]] + * @see [[https://github.com/aappleby/smhasher]] */ object MurmurHash3 extends MurmurHash3 { final val arraySeed = 0x3c074a61 diff --git a/src/manual/scala/man1/fsc.scala b/src/manual/scala/man1/fsc.scala index f2f8feb3fa..c7399da635 100644 --- a/src/manual/scala/man1/fsc.scala +++ b/src/manual/scala/man1/fsc.scala @@ -126,11 +126,7 @@ object fsc extends Command { "With Java 1.5 (or newer) one may for example configure the " & "memory usage of the JVM as follows: " & - Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\""), - - "With " & Link("GNU Java", "http://gcc.gnu.org/java/") & " one " & - "may configure the memory usage of the GIJ as follows: " & - Mono("JAVA_OPTS=\"--mx512m --ms16m\"") + Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\"") )))) val exitStatus = Section("EXIT STATUS", diff --git a/src/manual/scala/man1/scala.scala b/src/manual/scala/man1/scala.scala index 92d9c59cca..9f97dd546c 100644 --- a/src/manual/scala/man1/scala.scala +++ b/src/manual/scala/man1/scala.scala @@ -65,6 +65,10 @@ object scala extends Command { "Do not use the " & MBold("fsc") & " offline compiler."), Definition( + CmdOption("nc"), + "Same as " & Mono("-nocompdaemon") & "."), + + Definition( CmdOptionBound("D", "property=value"), "Set a Java system property. If no value is specified, " & "then the property is set to the empty string."), @@ -135,6 +139,11 @@ object scala extends Command { "line. Headers can be used to make stand-alone script files, as shown " & "in the examples below.", + "When running a script or using " & Mono("-e") & ", an already running " & + "compilation daemon (fsc) is used, or a new one started on demand. The " & + Mono("-nocompdaemon") & " or " & Mono("-nc") & " option can be used to " & + "prevent this.", + "If " & Mono("scala") & " is run from an sbaz(1) directory, " & "then it will add to its classpath any jars installed in the " & "lib directory of the sbaz directory. Additionally, if no " & @@ -175,11 +184,7 @@ object scala extends Command { "With Java 1.5 (or newer) one may for example configure the " & "memory usage of the JVM as follows: " & - Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\""), - - "With " & Link("GNU Java", "http://gcc.gnu.org/java/") & " one " & - "may configure the memory usage of the GIJ as follows: " & - Mono("JAVA_OPTS=\"--mx512m --ms16m\"") + Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\"") )))) val examples = Section("EXAMPLES", diff --git a/src/manual/scala/man1/scalac.scala b/src/manual/scala/man1/scalac.scala index 3219b10293..811fb2d94e 100644 --- a/src/manual/scala/man1/scalac.scala +++ b/src/manual/scala/man1/scalac.scala @@ -447,11 +447,7 @@ object scalac extends Command { "With Java 1.5 (or newer) one may for example configure the " & "memory usage of the JVM as follows: " & - Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\""), - - "With " & Link("GNU Java", "http://gcc.gnu.org/java/") & " one " & - "may configure the memory usage of the GIJ as follows: " & - Mono("JAVA_OPTS=\"--mx512m --ms16m\"") + Mono("JAVA_OPTS=\"-Xmx512M -Xms16M -Xss16M\"") )))) val examples = Section("EXAMPLES", diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala index 5b613316cc..9a3f6a6f3f 100644 --- a/src/reflect/scala/reflect/internal/Symbols.scala +++ b/src/reflect/scala/reflect/internal/Symbols.scala @@ -1267,8 +1267,9 @@ trait Symbols extends api.Symbols { self: SymbolTable => /** These should be moved somewhere like JavaPlatform. */ def javaSimpleName: Name = addModuleSuffix(simpleName.dropLocal) - def javaBinaryName: Name = addModuleSuffix(fullNameInternal('/')) - def javaClassName: String = addModuleSuffix(fullNameInternal('.')).toString + def javaBinaryName: Name = name.newName(javaBinaryNameString) + def javaBinaryNameString: String = fullName('/', moduleSuffix) + def javaClassName: String = fullName('.', moduleSuffix) /** The encoded full path name of this symbol, where outer names and inner names * are separated by `separator` characters. @@ -1276,18 +1277,29 @@ trait Symbols extends api.Symbols { self: SymbolTable => * Never adds id. * Drops package objects. */ - final def fullName(separator: Char): String = fullNameAsName(separator).toString - - /** Doesn't drop package objects, for those situations (e.g. classloading) - * where the true path is needed. - */ - private def fullNameInternal(separator: Char): Name = ( - if (isRoot || isRootPackage || this == NoSymbol) name - else if (owner.isEffectiveRoot) name - else effectiveOwner.enclClass.fullNameAsName(separator) append (separator, name) - ) + final def fullName(separator: Char): String = fullName(separator, "") + + private def fullName(separator: Char, suffix: CharSequence): String = { + var b: java.lang.StringBuffer = null + def loop(size: Int, sym: Symbol): Unit = { + val symName = sym.name + val nSize = symName.length - (if (symName.endsWith(nme.LOCAL_SUFFIX_STRING)) 1 else 0) + if (sym.isRoot || sym.isRootPackage || sym == NoSymbol || sym.owner.isEffectiveRoot) { + val capacity = size + nSize + b = new java.lang.StringBuffer(capacity) + b.append(chrs, symName.start, nSize) + } else { + loop(size + nSize + 1, sym.effectiveOwner.enclClass) + b.append(separator) + b.append(chrs, symName.start, nSize) + } + } + loop(suffix.length(), this) + b.append(suffix) + b.toString + } - def fullNameAsName(separator: Char): Name = fullNameInternal(separator).dropLocal + def fullNameAsName(separator: Char): Name = name.newName(fullName(separator, "")) /** The encoded full path name of this symbol, where outer names and inner names * are separated by periods. |