| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Improved runtime speed for Vector, restoring previous performance.
|
| |
| |
| |
| |
| | |
to avoid the same kind of slowdowns that Vector was experiencing due
to the less aggressive inlining by scalac.
|
| |
| |
| |
| |
| |
| | |
All calls to Platform.arraycopy were rewritten as java.lang.System.arraycopy to reduce the work that the JIT compiler has to do to produce optimized bytecode that avoids zeroing just-allocated arrays that are about to be copied over.
(Tested with -XX:-ReduceBulkZeroing as suggested by retronym.)
|
|\ \
| | |
| | | |
Don’t include scala-asm.jar in scala-compiler.jar
|
| | |
| | |
| | |
| | | |
Fixes https://github.com/scala/scala-dev/issues/254
|
|\ \ \
| | | |
| | | | |
Spec: Fix 2 pairs of quotes in text.
|
| | | | |
|
| | |/
| |/| |
|
|\ \ \
| |_|/
|/| | |
Add support for -Dpartest.scalac_opts to the partest command
|
| | | |
|
|\ \ \
| | | |
| | | | |
SI-6978 No linting of Java parens
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Don't lint overriding of nullary by non-nullary
when non-nullary is Java-defined. They can't help it.
|
|\ \ \ \
| | | | |
| | | | | |
SI-6734 Synthesize companion near case class
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Tweak the "should I synthesize now" test for
case modules, so that the tree is inserted in
the same tree as the case class.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-10032 Fix code gen with returns in nested try-finally blocks
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When a return in a finalizer was reached through a return within the try
block, the backend ignored the return in the finalizer:
try {
try { return 1 }
finally { return 2 }
} finally { println() }
This expression should evaluate to 2 (it does in 2.11.8), but in 2.12.0
it the result is 1.
The Scala spec is currently incomplete, it does not say that a finalizer
should be exectuted if a return occurs within a try block, and it does
not specify what happens if also the finally block has a return.
So we follow the Java spec, which basically says: if the finally blocks
completes abruptly for reason S, then the entire try statement completes
abruptly with reason S. An abrupt termination of the try block for a
different reason R is discarded.
Abrupt completion is basically returning or throwing.
|
| | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Return statements within `try` or `catch` blocks need special treatement
if there's also a `finally`
try { return 1 } finally { println() }
For the return, the code generator emits a store to a local and a jump
to a "cleanup" version of the finally block. There will be 3 versions
of the finally block:
- One reached through a handler, if the code in the try block
throws; re-throws at the end
- A "cleanup" version reached from returns within the try; reads the
local and returns the value at the end
- One reached for ordinary control flow, if there's no return and no
exception within the try
If there are multiple enclosing finally blocks, a "cleanup" version is
emitted for each of them. The nested ones jump to the enclosing ones,
the outermost one reads the local and returns.
A global variable `shouldEmitCleanup` stores whether cleanup versions
are required for the curren finally blocks. By mistake, this variable
was not reset to `false` when emitting a `try-finally` nested within a
`finally`:
try {
try { return 1 }
finally { println() } // need cleanup version
} finally { // need cleanup version
try { println() }
finally { println() } // no cleanup version needed!
}
In this commit we ensure that the variable is reset when emitting
nested `try-finally` blocks.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
avoid deprecated sbt 0.12 operators
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
this is allowed in recent sbt versions
|
| | | | | | |
|
| | | | | | |
|
| |/ / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-10034: Regression: Make Future.failed(e).failed turn into a success instead of failure
|
| |/ / / / |
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Merge 2.11.x to 2.12.x [ci:last-only]
|
| |\ \ \ \ |
|
| | |\ \ \ \
| | | | | | |
| | | | | | | |
Silence SBT logging about macros and incremental compilation.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Since upgrading to SBT 0.13.12, clean builds have incurred warnings like:
Because JavaMirrors.scala contains a macro definition, the following
dependencies are invalidated unconditionally: ....
This commit disables this behaviour of the SBT incremental compiler in
the library and reflect projects, as these aren't regular macros (the
macro implementations are hard coded in the compiler in `FastTrack`)
so the new behaviour isn't actually improving correctness of inc.
compilation.
|
| |\| | | | | |
|
| | |\ \ \ \ \
| | | | | | | |
| | | | | | | | |
[backport] Replace println with log calls in BrowsingLoaders
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
This alternative symbol loader is used in the presentation compiler and
may generate output even when the compiler should be silent.
See SI-8717 for more context, even though this does not really
fix the ticket.
|
|/| | | | | | |
| |/ / / / / / |
|
| |\ \ \ \ \ \
| | |/ / / / /
| |/| | | | | |
SI-9913 Lead span iterator finishes at state -1
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Extra privacy, and the tricky state transition is made
more tabular.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Even if no elements fail the predicate (so that the trailing
iterator is empty).
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
No StackOverflowError in Java doc comment scanning
Fixes SI-10020 SI-10027
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Align the Scala and Java doc comment scanning methods a bit.
The Scala one especially had gotten a bit messy,
with regular block comments being kind of accumulated,
but never actually registered as DocComments.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Avoid StackOverflow on big comments.
Simplify `ScaladocJavaUnitScanner` while in there.
TODO: Do same for `ScaladocUnitScanner`?
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
fix starr version in README.md
|
|/ / / / / / / / |
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
Merge 2.12.0, starr=2.12.0, re-outsource scalacheck
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
This reverts commit 22dac3118e97b2a4707d42ef1f47ac292a8ed385.
|
| | | | | | | | | |
|
| |\ \ \ \ \ \ \ \ |
|
| | |\ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | | |
Bump to 2.12.0-RC2 starr and modules
|
| | |/ / / / / / / / |
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
It's propagated downstream by the '-main' build flows already
|