increased realiability
Merge remote-tracking branches 'scalamacros/topic/partest' and 'magarciaEPFL/fasterInliner' into develop
* Fixed SI-4835 (https://issues.scala-lang.org/browse/SI-4835).
Add test case for SI-4835 (https://issues.scala-lang.org/browse/SI-4835)

This test case only confirm that StreamIterator's lazyiness is not broken.
Test case about memory consumption could be created.  However, such a
test cause a greatly increased time of test.
Temporarily disabling debug traces in macro tests
Fixed the way callbacks are handled. Removed executor from base future trait.
Linked up $class visibility to symbol redefinition.

In what feels like divine intervention as I spent my entire day
yesterday unsuccessfully attempting to understand why running atop my
new classpath code, trunk would compile and then fail like this:

  build.xml:1683: Could not create type partest due to java.lang.NoSuchMethodError:
  scala.tools.ant.sabbus.CompilationPathProperty$class.$init$(Lscala/tools/ant/sabbus/CompilationPathProperty;)V

I discovered the link by trying to debug a seemingly completely
unrelated problem reported by pvlugter.

On the one hand you have PathResolver/ClassPath, which by default does
not place trait implementation classes on the compilation classpath, but
does do so under -optimise (as I understand it, this is so inlining can
be performed, so let us ignore the fact that methods in traits are never
inlined, as outlined in SI-4767.)

  object DefaultJavaContext extends JavaContext {
    override def isValidName(name: String) = !isTraitImplementation(name)
  }

Then on the other hand you have this logic in AddInterfaces:

  if (impl != NoSymbol && settings.optimise.value) {
    log("unlinking impl class " + impl)
    ...
  }

The test in AddInterfaces is hardcoded to only consider the value of
-optimise. Which means that in the completely default -optimise setup,
it corresponds to the answers given by "isValidName" in JavaContext,
but nothing keeps those elements in sync. The connection to my lost day
was that, thinking I was "simplifying" my development, I had commented
out the override in DefaultJavaContext so that all classes were on the
compilation path. This caused the state of settings.optimise (still
false) and whether impl classes were on the classpath (now true) to fall
into fatal disagreement.
Fix for SI-5374.

Lists are now serialized so that the entire list structure is serialized, including list nodes.
This is different from the previous behaviour where only the elements were serialized.
List buffers are now optimized so that only the elements of the list are serialized, and
not the nodes of the internally maintained list.
Figured out the "$class$1" problem.

In lambda lift traits are renamed independently of their
implementation classes, leading in the case of a method-defined
trait to an interface called A$1 and an impl class called A$class$1
rather than A$1$class.  This is now remedied.
Test files for SI-5262, which was fixed by SI-5374.
Custom implementations of drop/take/slice.

This mainly helps performance when comparing keys is expensive.
Simplified emitSwitch in PatMatVirtualiser.

Simplified emitSwitch method that does not emit
forward jumps for switch tables. Instead, it
emits Match trees that are of a shape that
can be directly translated to switch.

The backend takes care of the actual translation
from Match trees into switch tables.

As a bonus, we emit more compact trees compared
to the old implementation of emitSwitch.

Review by @adriaanm.
Merge remote-tracking branches 'axel22/issue/5374', 'axel22/issue/5262', 'scalamacros/topic/macros' and 'kmizu/pullrequest-fix-SI-4835' into develop
Merge remote-tracking branch 'gkossakowski/virtpatmat-emitswitch' into develop
Made partest fully support locker-based distribs

This patch brings support for specialized and scalacheck tests,
and finally makes it possible to run partest for locker.

To do that, you need to write your own partest script: http://bit.ly/wl9HaH,
and keep another clone of your repository that would provide the classes
for running partest. That clone should then be build normally (ant build),
and be used to transplant the stuff that isn't built by locker, namely:
partest, actors, scalacheck, forkjoin, fjbg, msil and jline.
For more information take a look at my scavenger: http://bit.ly/AjMiud.
Removed the nondeterministic implicit. Added rescue.
Merge remote-tracking branches 'scalamacros/topic/partest' and 'gkossakowski/virtpatmat-emitswitch' into develop
Update for fix for SI-5377.

Converting the buffer to another arraybuffer instead of to a list.
Removed TODOs.
Moved some code.

From ConsoleReporter to Position so others can use it.