summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Warn about locally identifiable init order issues.Paul Phillips2013-03-124-0/+68
| | | | | | | | | | This warns about a subset of initialization order issues which can easily be identified by inspection, such as val x = y val y = 5 The likelihood of this formulation being intentional is miniscule.
* Merge pull request #2231 from retronym/topic/ide-configAdriaan Moors2013-03-119-0/+190
|\ | | | | Topic/ide config
| * Add eclipse projects for interactive, scaladoc.Jason Zaugg2013-03-104-0/+89
| |
| * IntellIiJ module definitions for scaladoc, interactive and continuations-*.Jason Zaugg2013-03-105-0/+101
| |
* | Merge pull request #2237 from som-snytt/topic/slurpeeAdriaan Moors2013-03-111-1/+4
|\ \ | | | | | | Close after slurping (fixes SI-7244)
| * | Close after slurping (fixes SI-7244)Som Snytt2013-03-111-1/+4
| |/ | | | | | | | | | | | | | | Since slurp by definition is the noise made by the straw when the cup is empty and all milk shake is consumed, we can safely close after slurping. Use case was deleting a test artifact on Windows.
* | Merge pull request #2229 from srinivasreddy/masterAdriaan Moors2013-03-111-1/+1
|\ \ | | | | | | A small typo corrected
| * | a typo correctedsrinivasreddy2013-03-101-1/+1
| | |
* | | Merge pull request #2232 from paulp/pr/modularize-replAdriaan Moors2013-03-1160-811/+823
|\ \ \ | |_|/ |/| | Modularized the repl.
| * | Modularized the repl.Paul Phillips2013-03-1160-811/+823
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following in the footsteps of scaladoc and interactive. The interpreter sources move into src/repl, and are given a separate build target. As with the others, at present they are still packaged into scala-compiler.jar. A summary of changes: - repl requires use of ReplGlobal (this was already implied) - macro code's repl-specific classloader hack pulled into overridable method and overridden in ReplGlobal - removed -Ygen-javap option to eliminate backend's dependency on javap - removed -Yrepl-debug option (can still be enabled with -Dscala.repl.debug) - pushed javap code into src/repl so javax.tools dependency can bee weakened to the repl only - removed some "show pickled" related code which hasn't worked right in a while and isn't the right way to do it anymore anyway. Will return to fix showPickled and provide it with some tests.
* | Merge pull request #2201 from retronym/topic/types-break-down-squashAdriaan Moors2013-03-107-2649/+2732
|\ \ | | | | | | Carve up Types.scala
| * | Carve up Types.scalaJason Zaugg2013-03-057-2649/+2732
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Step one of a plan to bring some order and thread safety to this neck of the woods. More info: https://gist.github.com/retronym/5081754 https://groups.google.com/forum/?fromgroups=#!topic/scala-internals/MOvmcnbyb_g Note that the sub package is named 'tpe' and not 'Types' to avoid potential problems on case insensitive file systems, given the existing trait 'Types.'
* | | Merge pull request #2226 from adriaanm/pr-2208-reworkAdriaan Moors2013-03-10174-688/+842
|\ \ \ | |_|/ |/| | [rework] Modularized scaladoc and presentation compiler.
| * | Deprecated custom ant task 'Same'.Paul Phillips2013-03-092-3/+1
| | |
| * | Eliminated all forInteractive/forScaladoc uses.Paul Phillips2013-03-0917-100/+75
| | | | | | | | | | | | | | | | | | | | | | | | This is the commit which brings it all together. The booleans forInteractive and forScaladoc are now deprecated and are not inspected for any purpose. All behavioral changes formerly accomplished via tests of those flags are embodied in the globals built specifically for those tasks.
| * | Moved interactive code into src/interactive.Paul Phillips2013-03-092-3/+116
| | | | | | | | | | | | | | | As with scaladoc, pushes presentation compiler specific code into its separate source area.
| * | Moved scaladoc code into src/scaladoc.Paul Phillips2013-03-0914-223/+340
| | | | | | | | | | | | | | | | | | This leverages the preceding several commits to push scaladoc specific code into src/scaladoc. It also renders some scanner code more comprehensible.
| * | Give interactive tests their own target.Paul Phillips2013-03-091-14/+19
| | | | | | | | | | | | % ant test.interactive
| * | Give partest its own classpath in build.xml.Paul Phillips2013-03-091-21/+12
| | | | | | | | | | | | | | | | | | Separate from (and larger than) pack.classpath. Then take the opportunity to lower the comic/tragic level of duplication in build.xml.
| * | Teach partest the magic of abstraction.Paul Phillips2013-03-093-34/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some new partest abilities which were necessary to deal with additional standard jars. These new abilities aren't yet put to the test because scaladoc and interactive are still going into the compiler jar. No longer need each jar or classes directory be named directly for partest to find them.
| * | Moved interactive sources into separate directory.Paul Phillips2013-03-0925-1/+33
| | | | | | | | | | | | | | | As with the preceding commit, this has build-internal effects only.
| * | Moved scaladoc sources into separate directory.Paul Phillips2013-03-09123-5/+55
| | | | | | | | | | | | | | | | | | | | | | | | This change is not externally visible. It moves the scaladoc sources into src/scaladoc and adds an ant target for building them. The compilation products are still packaged into scala-compiler.jar as before, but with a small change to build.xml a separate jar can be created instead.
| * | Enabling commit for interactive/scaladoc modules.Paul Phillips2013-03-0914-97/+111
| | | | | | | | | | | | | | | | | | This is a non-behaviorally-changing setup commit which re-routes bits of code through avenues which can more easily be influenced by subclasses of Global.
| * | Bring some sanity to the stability test.Paul Phillips2013-03-092-195/+62
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no reason to be stability testing every piece of bytecode we've ever encountered. If the compilation products are unstable, then testing 20,000 classfiles will reveal it. Or it won't; either way, we can stop there. So I cut a gordian knot and focused the stability test solely on the contents of: library reflect compiler Next I cut the "custom ant task" cord. There's a tool for diffing files, it's decades old, it's called diff. It does the entire job we need. If it doesn't work on windows, it doesn't matter. The stability test is not something which needs to run in every environment. Either the classfiles are stable or they aren't. Generated the ant xml for building quick.{lib,reflect,comp} and strap.{lib,reflect,comp} so they are identical modulo the compiler used to build them, probably for the first time ever. I'm sure they won't stay that way, but it's a step.
* | Merge pull request #2217 from JamesIry/master_7006bJames Iry2013-03-081-3/+3
|\ \ | | | | | | SI-7006 Fix the unreachable test
| * | SI-7006 Fix the unreachable testJames Iry2013-03-081-3/+3
|/ / | | | | | | | | The unreachable test was missing the cases when Random.nextInt returned a negative number. This commit fixes that.
* | Merge pull request #2216 from JamesIry/master_7231James Iry2013-03-083-1/+14
|\ \ | | | | | | SI-7231 Fix assertion when adapting Null type to Array type
| * | SI-7231 Fix assertion when adapting Null type to Array typeJames Iry2013-03-083-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | GenICode was doing a sanity check when adapting an expression of type Null to something else. It was just doing the wrong one. Instead of checking whether the result expression type was a reference type it was checking to see if it was an class reference type. This commit fixes that and adds a test to make sure both forms of adaptation work as expected.
* | | Merge pull request #2185 from JamesIry/master_unreachableGrzegorz Kossakowski2013-03-0810-115/+460
|\ \ \ | |/ / |/| | SI-7006 Prevent unreachable blocks in GenICode
| * | SI-7006 Cleanup from code reviewJames Iry2013-03-071-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | Minor cleanup from review of https://github.com/scala/scala/pull/2185 * Changed several instances of |= to ||= for better clarity (and bonus savings!) * Documented the return of two methods that compute the reachability of follow-on blocks.
| * | SI-7006 Prevent unreachable blocks in GenICodeJames Iry2013-03-0610-115/+451
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit makes GenICode prevent the generation of most unreachable blocks. The new unreachable block prevention code can be disabled with a compiler flag. Because full unreachable analysis is no longer necessary for normal code it makes the unreachable block analysis run only under -optimise. A test is included to make sure unreachable code doesn't cause issues in code gen. A concrete example will help. def foo(): X = { try return something() catch { case e: Throwable => println(e) throw e } unreachableCode() ] Here unreachableCode() is unreachable but GenICode would create ICode for it and then ASM would turn it into a pile of NOPS. A previous commit added a reachability analysis step to eliminate that unreachable code but that added a bit of time to the compilation process even when optimization was turned off. This commit avoids generating most unreachable ICode in the first place so that full reachability analysis is only needed after doing other optimization work. The new code works by extending a mechanism that was already in place. When GenICode encountered a THROW or RETURN it would put the current block into "ignore" mode so that no further instructions would be written into the block. However, that ignore mode flag was itself ignored when it came to figuring out if follow on blocks should be written. So this commit goes through places like try/catch and if/else and uses the ignore mode of the current block to decide whether to create follow on blocks, or if it already has, to kill by putting them into ignore mode and closing them where they'll be removed from the method's list of active blocks. It's not quite as good as full reachability analysis. In particular because a label def can be emitted before anything that jumps to it, this simple logic is forced to leave label defs alone and that means some of them may be unreachable without being removed. However, in practice it gets close the the benefit of reachability analysis at very nearly no cost.
* | | Merge pull request #2204 from adriaanm/merge-2.10.xPaul Phillips2013-03-0636-511/+764
|\ \ \ | |/ / |/| | Merge 2.10.x into master
| * | Merge 2.10.x into master.Adriaan Moors2013-03-0515-191/+237
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resurrect some undead code from 373ded2ad3 (tuple2Pickler). Conflicts: src/compiler/scala/tools/nsc/interactive/CompilerControl.scala src/compiler/scala/tools/nsc/typechecker/Typers.scala
| | * \ Merge pull request #2199 from retronym/ticket/7214Adriaan Moors2013-03-052-1/+60
| | |\ \ | | | | | | | | | | SI-7214 outer check based on dealiased pattern type.
| | * \ \ Merge pull request #2156 from vigdorchik/hierarchyAdriaan Moors2013-03-0511-145/+171
| | |\ \ \ | | | | | | | | | | | | SI-7109 SI-7153 Generalize the API to get docComments: allow to force do...
| | | * | | SI-7109 SI-7153 Generalize the API to get docComments: allow to force docTreesEugene Vigdorchik2013-02-2411-145/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for given fragments. Don't type-check when forcing doc comments, but rather do it directly. Test the new functionality as well as better tests for the old one.
| * | | | | Merge 2.10.x into master.Adriaan Moors2013-03-056-283/+305
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compiler/scala/tools/nsc/transform/patmat/Logic.scala
| | * | | | Merge pull request #2193 from adriaanm/patmat-refactorAdriaan Moors2013-03-0518-374/+386
| | |\ \ \ \ | | | | | | | | | | | | | | merge 2.10.1 into 2.10.x
| | | * \ \ \ Merge 2.10.1 into 2.10.xAdriaan Moors2013-03-038-74/+40
| | | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fix for SI-7183 in 440bf0a8c2 was forward ported in f73d50f46c. Conflicts: src/compiler/scala/tools/nsc/typechecker/PatternMatching.scala
| | | | * \ \ \ Merge pull request #2190 from adriaanm/test-runs-mima-2.10.1v2.10.1-RC3v2.10.1James Iry2013-03-022-4/+8
| | | | |\ \ \ \ | | | | | | | | | | | | | | | | | | test.done again checks bin compat (using mima 0.1.5)
| | | | * \ \ \ \ Merge pull request #2189 from adriaanm/ticket-7195James Iry2013-03-024-64/+3
| | | | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | [nomaster] SI-7195 minor version mustn't introduce warnings
| | | * | | | | | | [port] SI-7183 Disable unreachability for withFilter matches.Adriaan Moors2013-03-035-16/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a forward port of #2168 (originally for 2.10.1, but the pattern matcher has since been refactored in 2.10.x.)
| | | * | | | | | | better names for components of MatchTranslatorAdriaan Moors2013-03-033-34/+33
| | | | | | | | | |
| | | * | | | | | | move sat solving to separate fileAdriaan Moors2013-03-033-233/+243
| | | | | | | | | |
| * | | | | | | | | Merge 2.10.x into master.Adriaan Moors2013-03-052-10/+19
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/library/scala/collection/mutable/ArrayOps.scala
| | * | | | | | | | Merge pull request #2198 from retronym/ticket/7215Paul Phillips2013-03-052-10/+19
| | |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | SI-7215 Fix transpose of an empty Array[Array[T]].
| | | * | | | | | | | SI-7215 Fix transpose of an empty Array[Array[T]].Jason Zaugg2013-03-052-10/+19
| | | | | | | | | | |
| | * | | | | | | | | Merge pull request #2175 from retronym/ticket/7185Paul Phillips2013-03-055-1/+58
| | |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | SI-7185 Avoid NPE in TreeInfo.isExprSafeToInline
| * | | | | | | | | | | Merge 2.10.x into master.Adriaan Moors2013-03-052-0/+27
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compiler/scala/tools/nsc/transform/Erasure.scala
| | * | | | | | | | | | Merge pull request #2178 from scalamacros/ticket/7190Paul Phillips2013-03-052-0/+27
| | |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | SI-7190 macros no longer give rise to bridges