| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
SI-7658 Prevent StackOverflowError in ScalaRunTime.stringOf
|
| | |
|
| | |
|
|\ \
| | |
| | | |
SI-7544 Interpolation message for %% literal
|
| |/
| |
| |
| |
| |
| | |
Since interpolator args are of type Any, it's easy
to write s(args) instead of s(args: _*). I wonder
if Xlint would have warned me about that.
|
|\ \
| | |
| | | |
SI-7624 Fix -feature and some -Xlint warnings
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The changes are actually pretty small:
scala.language.implicitConversions is moved around so that it is only
emitted to the source file if there is an actual implicit conversion.
The rest of the diff are mostly the new generated source files
reflecting that change.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I added a language.existential import to LazyCombiner.scala which
should not be necessary, but causes a spurious warning otherwise:
scala/src/library/scala/collection/parallel/mutable/LazyCombiner.scala:33:
warning: the existential type
scala.collection.parallel.mutable.LazyCombiner[_$1,_$2,_$3] forSome {
type _$1; type _$2; type _$3 <: scala.collection.generic.Growable[_$1] with scala.collection.generic.Sizing },
which cannot be expressed by wildcards, should be enabled by making the implicit value scala.language.existentials visible.
if (other.isInstanceOf[LazyCombiner[_, _, _]]) {
^
I created ticket SI-7750 to track this issue.
|
|\ \ \
| | | |
| | | | |
SI-7737 Regex matches Char
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Enables Char extraction by regex.
```
val r = """(\p{Lower})""".r
"cat"(0) match { case r(x) => true }
val nc = """\p{Lower}""".r
"cat"(0) match { case nc() => true }
```
|
|\ \ \
| | | |
| | | | |
SI-7265 javaSpecVersion, adjust isJava... tests for 2.11
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make this and related properties public, because they
are useful.
This change ought to have been committed at 2.11 and then
backported with restrictions, rather than vice-versa.
Note that they are defined in the order, version, vendor
and name, which is the order from the underlying javadoc.
It would be a neat feature of the PR validator, as previously
imagined, to run a "pending" test and then, on success and
merge, to move it automatically to the canonical suite.
|
|\ \ \
| |_|/
|/| | |
Add deprecation warning to scala.concurrent.Lock class
|
| | | |
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I recently discovered a StackOverflowError, caused by this function:
https://gist.github.com/folone/7b2f2e2a16314ab28109
The circumstances are pretty extreme, still having a tail-recursive
function seems to be a good idea.
The function behaves the same way old function did (supported by tests),
which is not really how map2 behaves. I did not change this behavior to
not introduce any regression. I actually tried to make it behave like map2,
and it does introduce regression.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
bincompat-backward.whitelist.conf
bincompat-forward.whitelist.conf
src/compiler/scala/reflect/reify/phases/Reshape.scala
src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
src/compiler/scala/tools/nsc/transform/Mixin.scala
src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
src/compiler/scala/tools/nsc/typechecker/Typers.scala
src/library/scala/concurrent/impl/Promise.scala
src/reflect/scala/reflect/internal/StdAttachments.scala
test/files/neg/macro-override-macro-overrides-abstract-method-b.check
test/files/run/t7569.check
|
| |\ \
| | | |
| | | | |
SI-7336 Link flatMapped promises to avoid memory leaks
|
| | | | |
|
| |\ \ \
| | | | |
| | | | | |
SI-7265 General test for spec version
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The test for isJavaAtLeast uses the specification.version.
The method argument must have the form "major.minor".
The scaladoc is updated to reflect the new reality and a
test is added under junit.
Note that this implementation aims to be a simple
compromise between the functional and imperative camps,
that is, to be free of both closures and while loops.
And to elicit no cruft like regexes and wrappers for strings.
No doubt even more could be done in this department, but we
don't wish to spoil the fun on codegolf.stackexchange.com.
However, we might decide to sponsor a new site:
codereviewpingpong.com
For 2.10.x, javaSpecVersion is provided as a private member.
The active test is under `run` and the `junit` test must
bide its time in `pending`.
For 2.11, the private members can be public and the app test
replaced with the unit test.
|
| | |/ /
| |/| | |
|
|\ \ \ \
| | | | |
| | | | | |
SI-6811 Deprecate scala.text
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-7592 Deprecate s.c.m.DefaultMapModel
|
| | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
“This class is used internally.” — No, it isn't.
It isn't used anywhere else either and it doesn't add much benefit,
considering that it lacks documentation and has no tests at all.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
MergeableEither extends AnyVal
|
| |/ / / / |
|
|/ / / / |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Fix docs inconsistent (cmp -> ord).
|
| | | |
| | | |
| | | |
| | | | |
The parameter name is 'ord', but mentioned in docs with 'cmp'.
|
|\ \ \ \
| | | | |
| | | | | |
Separate jars for XML, Parser Combinators. Use released JLine.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Summary:
- Remove the last vestiges of xml from Predef and Contexts.
- Change build to compile scala.xml to scala-xml.jar.
- Deploy scala-xml module to maven.
- Update partest accordingly.
Note:
An older compiler cannot use the new standard library to
compile projects that use XML. Thus, skipping locker will
break the build until we use 2.11.0-M4 for STARR.
In the future build process, where we drop locker,
we would have to release a milestone that supports the old
and the new approach to xml. As soon as we'd be using that
new milestone for starr, we could drop support for the old approach.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
SI-7614 Minimize the times of evaluation f in TraversableOnce.maxBy/minBy
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In the previous implementation, maxBy/minBy will evaluate most of its elements
with f twice to get the ordering. That results (2n - 2) evaluations of f.
I save both the element and result of evaluation to a tuple so that it doesn't
need to re-evaluate f on next comparison. Thus only n evaluations of f, that is
the optimal.
Note that the original implementation always returns the first matched if more
than one element evaluated to same largest/smallest value of f. I document
this behavior explicitly in this commit as well.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
fix typo
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Lint-like fixes found by Semmle
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Merge 2.10.x into master
|
| |\ \ \ \ \ \
| | |_|_|/ / /
| |/| | | / /
| | | |_|/ /
| | |/| | |
| | | | | |
| | | | | | |
Conflicts:
src/compiler/scala/tools/nsc/typechecker/Duplicators.scala
src/library/scala/concurrent/Future.scala
test/files/jvm/scala-concurrent-tck.scala
|
| | |\ \ \ \
| | | |_|_|/
| | |/| | |
| | | | | |
| | | | | | |
viktorklang/wip-cleaner-Future-method-implementations-2.10-√
General SIP-14 Future method implementation cleanup
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Optimizations:
1) Avoiding isDefinedAt + apply and using applyOrElse to allow for optimizations later
2) Reducing method sizes to be more JIT + inliner friendly
3) Reusing core combinators to reuse inliner/JIT optimizations and be more code-cache friendly
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Previously, the `split` method of the `ParTrieMap` iterator threw
an exception when splitting a splitter that iterated over nodes
whose hash codes collide.
This was due to reusing the iterator of the list of colliding keys
rather than creating a new splitter.
This commit changes the `subdivide` method to create a new
iterator using the factory method of the current trie map
iterator rather than returning a `LinearSeqLike` iterator.
|
| |_|_|_|/
|/| | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-7590 TreeSet should fail fast if Ordering is null
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
While migrating scala.tools.nsc.util.TreeSet to
scala.collection.mutable.TreeSet, I messed up initialization order
and realized that TreeSet accepts null as an Ordering and only fails
much later.
This change makes mutable.TreeSet and immutable.TreeSet fail
immediately.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-7511 Remove indirection of numeric methods
|
| | |_|_|_|/
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Methods on `Rich<AnyVal>`s like `abs`, `doubleValue`, `floatValue`,
`longValue`, `intValue`, `byteValue`, `shortValue`, `min`, `max`,
`signum` are slow because they go through multiple indirections
including typeclasses and boxing.
For instance, take `1L.abs`:
Instead of just computing and returning the result (like it is done in
`RichInt`), this is what happens:
- `RichLong` inherits `abs` by extending `ScalaNumberProxy[T]`
- `ScalaNumberProxy[T]` has an abstract
`protected implicit def num: Numeric[T]`
- This method is implemented in `RichLong` and points to
`scala.math.Numeric.LongIsIntegral`
- The actual method `abs` now calls `num.abs(self)`
|