| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
SI-7362, crash in presentation compiler
|
| |
| |
| |
| |
| |
| | |
I resisted the urge to fix "aksTypeCompletion" for as long
as I possibly could. While I was there I threw in what seem
to be like significant output improvements, but you tell me.
|
| |
| |
| |
| | |
Code by retronym, test by huitseeker, I just move stuff around.
|
|\ \
| | |
| | | |
Partest PR up to the passing commit.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A compiler crash does not count as Does Not Compile for
purposes of a negative test. Changing the test kind from
"neg" to "dnc" is out of scope for this PR.
Even if the user asks to update the check file with the
crash result, we must prevent him from doing so. Any
further attempts to update the check file with a crash
will dispatch the Scala SWAT squad which will race to
his location and physically restrain the user. Only
Martin holds the code which will allow the squad to
stand down. So make sure his cell is on next time you
want to --update-check.
A neg test will stop trying to compile after the first
failed round, which is all that matters.
By popular request, a new test outcome is emitted when
the check file is updated. It is called "Updated". It
even has its own short status, the double-plus that is
reminiscent of diff output.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Partest --timeout "30 seconds" to time out the test run.
It will not hang on timeout ("I hang with Par-Test" t-shirts
not-withstanding).
It's beyond the scope of this commit to investigate argument
parsing:
`partest --timeout "\"30 seconds"\" --pos`
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Partest uses test-interface API to invoke ScalaCheck. This obviates
ad hoc output checking for result status.
The context class loader is set to a loader that the scaladoc scalacheck
tests can use.
|
| | |
| | |
| | |
| | | |
Puts test-interface on the class path.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Allow the hyphens to line up on a column within the output
for a test category or "kind".
```
$ partest files/neg/t4134.scala --run
Selected 1348 tests drawn from 1 named test categories, specified tests
& starting 1 test in neg
ok 1 - neg/t4134.scala
& starting 1347 tests in run
ok 1 - run/absoverride.scala
ok 2 - run/amp.scala
ok 3 - run/adding-growing-set.scala
```
|
| |/
| |
| |
| |
| |
| | |
A failing test generates a test failure.
The failure log is added to the transcript.
The log stream is closed when done.
|
|\ \
| |/
|/| |
SI-7422 GenASM populates and clears its maps within a Run
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
SI-7291: Don't throw exceptions while encountering diverging expansion.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
What seemed like a good idea initially (since potentially there were
many different kinds of errors that could be treated specially),
started to complicate the error logic.
So let's just match on the specific instance of an error to
manipulate the buffer.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since we don't throw exceptions for normal errors it was a bit odd
that we don't do that for DivergingImplicit.
As SI-7291 shows, the logic behind catching/throwing exception
was broken for divergence. Instead of patching it, I rewrote
the mechanism so that we now another SearchFailure type related
to diverging expansion, similar to ambiguous implicit scenario.
The logic to prevent diverging expansion from stopping the search
had to be slightly adapted but works as usual.
The upside is that we don't have to catch diverging implicit
for example in the presentation compiler which was again showing
that something was utterly broken with the exception approach.
|
|\ \ \
| | | |
| | | | |
similar in purpose to -Ygen-javap but with some advantages: -Ygen-asmp
|
| | | |
| | | |
| | | |
| | | | |
This commit allows a BytecodeWriter to focus on File, Paths, and streams. GenASM now does the conversion from Symbol to File.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit adds the -Ygen-asmp compiler flag, similar in purpose to what -Ygen-javap used to be.
The ASM-based counterpart to javap is useful even in those cases where javap is available,
as it produces for example readable (textual) output for pickles.
Additionally, javap displays quite differently two constant pools that have identical contents
(javap shows their physical layout, not just the information the entries hold).
Finally, stack maps (classfile version 50 and up) are displayed in encoded form by javap, their expansion by ASM is more readable.
|
|\ \ \ \
| | | | |
| | | | | |
Route -explaintypes through reporter.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Sick of seeing Console printlns during partest runs.
You should not print anything to Console.{out,err} if
it's ever going to happen outside developerland.
|
|\ \ \ \
| | | | |
| | | | | |
SI-7429 Fix checkinit build failure in Contexts
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The recent refactoring in Contexts resulted in an uninitialized
field access. This wasn't deadly, as it was already compensating
for this by expecting a null value for `outer` during in the body
of the constructor of Contexts when extended by NoContext.
This commit reworks that code a little to avoid dereferencing the
overriden `outer` field.
A similar mistake in `ImportContext` is also corrected.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-6784 Localize features imports in scala.swing
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
While I was in the neighbourhood.
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These were inadvertantly added to the public API in f15dc74 for anyone
importing scala.swing._, which unintentionally enabled reflectiveCalls
and implicitConversions for clients of the API.
This change breaks the source compatibiliy poilicy, rather than
deprecating these, based on the extremely low chance that someone is
using these in something like:
import scala.swing._; println(implicitConversions)
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Updated jline and rebuilt.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Two years of atrophy. Now using sbt 0.12.3 and latest
versions of jansi, etc.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
-Yshow-member-pos, print the positions of members.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Here for instance is a command line which leverages the
output of this option to print the method bodies of all
methods called 'transformInfo' found under src. Given
1500 source files it accomplishes this in four seconds,
thanks to -Ystop-after:parser.
% scalac -Yshow-member-pos sed -Ystop-after:parser \
$(find src/compiler -name '*.scala') | \
grep transformInfo | sed 's/ # .*//;' | \
while read line; do echo "// $line" && gsed -n $line && echo; done
Or more simply, the start/end lines of each member of Random:
% scalac -Yshow-member-pos "" ./src/library/scala/util/Random.scala
./src/library/scala/util/Random.scala
20,134 class Random
33 def nextBoolean
38 def nextBytes
43 def nextDouble
48 def nextFloat
54 def nextGaussian
59 def nextInt
65 def nextInt
70 def nextLong
81,89 def nextString
82,86 def safeChar
83 val surrogateStart
84 val res
94,98 def nextPrintableChar
[snip]
It makes me sad I'm always in the position of having to hack
the compiler to do this sort of thing. All we need is something
like -Yinsert-phase:Foo where Foo is a class implementing a
(Phase, Tree) => Tree method, and the compiler runs all the
unit.bodies through it after each phase, and then one could
easily accomplish this in the privacy of one's own compiler.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Documented lateMETHOD flag.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
A baby step toward its eventual elimination.
WANTED, DEAD OR ALIVE
For Heinous Crimes Against Efficiency and Scrutability
lateDEFERRED lateFINAL lateINTERFACE lateMODULE
notPROTECTED notPRIVATE notOVERRIDE lateMETHOD
ON THE RUN
lateMETHOD
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
improvements, constructors phase (2nd attempt)
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
As before, the translation for DelayedInit creates a closure-class.
With this commit, its apply() method now just delegates to a synthetic method (in the original class) that contains the statements whose execution is to be delayed.
Previously the closure body would have the statements in question transplanted into it, so to say, which in turn required creating accessors in the original class, as well as reformulating accesses-on-this into accesses-via-outer.
Details about the mechanics of the rewriting can be found in the source comment for delayedEndpointDef()
|
| | | | | | | |
|
| | |_|_|_|/
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
As per the JVM spec, the athrow instruction throws a NullPointerException upon finding null on stack top.
This commit takes advantage of that feature, to emit more compact code.
The constructor of an inner class that receives an outer value first checks that value for nullness, depending on which NPE may be thrown.
The code now emitted to achieve the above looks like:
0: aload_1
1: ifnonnull 6
4: aconst_null
5: athrow
6: ...
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Created utility function for dropping by-name-ness.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
And applied it in three locations.
|
|\ \ \ \ \ \ \
| |_|_|/ / / /
|/| | | | | | |
cleanup of old stuff from the GenJVM era
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-7421 remove unneeded extra-attachement in maven deploy
|
| | | | | | | | |
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
SI-7403 Stream extends Serializable
|