-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.
Updated jline and rebuilt.

Two years of atrophy. Now using sbt 0.12.3 and latest
versions of jansi, etc.
for null outer pointer, NPE via throw null

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: ...
avoids multiple evals of isSubClass DelayedInitClass
translation for DelayedInit keeps more code in original class

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()
Created utility function for dropping by-name-ness.

And applied it in three locations.
improved naming of variables in constructors phase
static methods may have local variables too, some day
removing remnants from the GenJVM era
another GenJVM remnant that goes away
role played by magic constant in ScalaSigBytes
Merge pull request #2452 from magarciaEPFL/backendish5

cleanup of old stuff from the GenJVM era
Merge pull request #2447 from paulp/pr/byname

Created utility function for dropping by-name-ness.
deprecation cycle for definitions.NPEConstructor
Call method rather than duplicating method.
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
Merge pull request #2445 from magarciaEPFL/backendish3

improvements, constructors phase (2nd attempt)
Merge pull request #2457 from paulp/pr/late-method-redux

Documented lateMETHOD flag.
Merge pull request #2421 from paulp/pr/print-method-positions

-Yshow-member-pos, print the positions of members.
Merge pull request #2443 from paulp/pr/jline

Updated jline and rebuilt.