summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/master' into merge/2.10.x-to-masterJason Zaugg2013-09-1177-757/+1345
|\ | | | | | | | | Conflicts: src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
| * Merge pull request #2927 from Ichoran/issue/7708Grzegorz Kossakowski2013-09-111-10/+17
| |\ | | | | | | SI-7708 - Improve Bitset foreach performance
| | * SI-7708 - Improve Bitset foreach performanceRex Kerr2013-09-091-10/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Switched inner for loop for a while loop to enable early exit when bitset is sparse. 2. Switched outer for loop for while loop for performance. 3. Changed WordLength and friends to final for performance. New version runs in 60% of time of old on dense bitsets, faster if highly sparse. No tests committed (requires performance testing framework).
| * | Merge pull request #2924 from huitseeker/scala-partest-updateGrzegorz Kossakowski2013-09-111-1/+1
| |\ \ | | | | | | | | Update scaladoc's .classpath to new name of partest project
| | * | Update scaladoc's .classpath to new name of partest projectFrançois Garillot2013-09-091-1/+1
| | |/ | | | | | | | | | | | | (see github.com/scala/scala-partest ) review by @dragos
| * | Merge pull request #2929 from Ichoran/issue/7356Grzegorz Kossakowski2013-09-111-14/+32
| |\ \ | | | | | | | | SI-7356 - Source.mkString performs painfully slow (...)
| | * | SI-7356 - Source.mkString performs painfully slow (...)Rex Kerr2013-09-101-14/+32
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Wrote a custom mkString for BufferedSource. 2. Moved the logic for rescuing the iterator-buffered char out of BufferedLineIterator and into a private method in BufferedSource. Speed test based on the one in the issue tracker (but written correctly) indicates that performance is equal or better to getLines. This resolves SI-7356 in a minimal fashion.
| * | Merge pull request #2932 from retronym/topic/cps-skip-locker-friendlyJason Zaugg2013-09-111-3/+7
| |\ \ | | | | | | | | Revert a tiny recent refactoring in SelectiveCPSTransform
| | * | Revert a tiny recent refactoring in SelectiveCPSTransformJason Zaugg2013-09-111-3/+7
| |/ / | | | | | | | | | | | | | | | | | | | | | The refactoring in 7e6c723df means that we can't build the CPS plugin if we skip locker in development mode. This commit backs out the refactoring and leaves a TODO comment to perform it at a later date.
| * | Merge pull request #2930 from retronym/topic/patmat-inference-prepJason Zaugg2013-09-1147-165/+19
| |\ \ | | | | | | | | Topic/patmat inference prep
| | * | Restore --show-diff to partest-ack.Paul Phillips2013-08-291-3/+4
| | | | | | | | | | | | | | | | | | | | Looks like that issue was operator error. However partest option --show-log really has gone missing.
| | * | Limit bad advice given for erroneous pattern.Paul Phillips2013-08-294-2/+15
| | | | | | | | | | | | | | | | | | | | Don't suggest "_: <none>" as an alternative when the pattern type doesn't conform to the expected type.
| | * | Removing orphan check/flag files.Paul Phillips2013-08-2942-160/+0
| | | |
| * | | Merge pull request #2910 from densh/topic/quasiquote-improvement-finalJason Zaugg2013-09-1127-570/+1275
| |\ \ \ | | | | | | | | | | Various bugfixes and improvements for the quasiquotes
| | * | | streamline implementation of annotation splicingDen Shabalin2013-09-055-37/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Syntax spec mislead me to believe that annotation can't have type parameters or multiple argument lists... I guess the lesson here is don't trust the spec.
| | * | | unify handling of references to scala members for functions and tuplesDen Shabalin2013-09-052-20/+36
| | | | |
| | * | | make the postfixOps warning go awayDen Shabalin2013-09-051-1/+1
| | | | |
| | * | | better support for ValDefs, VarDefs and DefDefsDen Shabalin2013-09-055-0/+64
| | | | |
| | * | | rename TupleN and TupleTypeN into SyntacticTuple and SyntacticTupleTypeDen Shabalin2013-09-054-11/+11
| | | | |
| | * | | SI-7723 better support for deconstruction of new expressionsDen Shabalin2013-09-055-1/+43
| | | | |
| | * | | SI-7803 support for matching of anonymous function literalsDen Shabalin2013-09-058-8/+60
| | | | |
| | * | | first-class early def splicing and extraction supportDen Shabalin2013-09-0510-66/+334
| | | | |
| | * | | extract out isHole(name)Den Shabalin2013-09-051-3/+5
| | | | |
| | * | | add support for function type splicing and extractionDen Shabalin2013-09-0510-3/+62
| | | | |
| | * | | reify ScalaPackage symbol with the help of ScalaDotDen Shabalin2013-09-055-1/+24
| | | | |
| | * | | refine block and applied/typeapplied splicing/matching semanticsDen Shabalin2013-09-0512-60/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. blocks now match single term-level expressions to account for automatic block elimination. E.g. val q"{ ..$stats }" = q"foo" will match into stats = List(q"foo"). This is useful to uniformly deal with blocks on term level. 2. blocks in quasiquotes collapse into single expressions 3. Applied and TypeApplied now have constructors too which helps to unify matching and extraction in quasiquote reifier 4. TypeApplied now matches AppliedTypeTree too 5. Add Syntactic prefix to Applied and TypeApplied
| | * | | SI-7196 add support for refineStat splicing and extractionDen Shabalin2013-09-059-25/+67
| | | | |
| | * | | reduce amount of clutter on -Yquasiquote-debugDen Shabalin2013-09-051-3/+3
| | | | |
| | * | | minor changes to TreeGen.mkTemplateDen Shabalin2013-09-051-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | 1. Make superPos parameter optional with default value NoPosition 2. use Option instead of List for local optional constructor variable
| | * | | move mkNew from tools.nsc.ast.TreeGen to reflect.internal.TreeGenDen Shabalin2013-09-052-36/+35
| | | | | | | | | | | | | | | | | | | | This is needed for quasiquotes to implement SyntacticNew combinator.
| | * | | use NoMods and NoFlags for reification of empty valuesDen Shabalin2013-09-053-41/+49
| | | | |
| | * | | merge flagsFromBits and FlagsAsBits into FlagsReprDen Shabalin2013-09-058-22/+30
| | | | |
| | * | | rename mkAnnotationCtor into mkAnnotationDen Shabalin2013-09-054-5/+5
| | | | |
| | * | | add missing copyTypeDef utility functionDen Shabalin2013-09-051-0/+16
| | | | |
| | * | | refactor definition tests into separate subsuiteDen Shabalin2013-09-055-249/+326
| | | | |
| | * | | add toolbox-based utility methods to quasiquotes' testsDen Shabalin2013-09-051-6/+15
| | | | |
* | | | | Build partest-extras under `pack.done`Jason Zaugg2013-09-101-9/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... rather than just in `test.suite.init`. Now: % ant pack.done | egrep -i 'compiling|jar' desired.jars.uptodate: [quick.partest-extras] Compiling 1 file to /Users/jason/code/scala/build/quick/classes/partest-extras [jar] Building jar: /Users/jason/code/scala/build/pack/lib/scala-partest-extras.jar Note: Because of the recent changes to the way that the classpath or partest is build up (it is done via `ant test.suite.init`), partest no longer works with quick/classes, the classpath is always taken as `pack`. So `ant quick.bin && ./test/partest` is insufficient; you need to run `ant pack.done`, or just `ant` if you prefer brevity.
* | | | | Merge remote-tracking branch 'origin/2.10.x' into merge/2.10.x-to-masterJason Zaugg2013-09-1015-169/+286
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compiler/scala/tools/nsc/transform/ExtensionMethods.scala
| * \ \ \ \ Merge pull request #2916 from retronym/ticket/7818Jason Zaugg2013-09-102-1/+16
| |\ \ \ \ \ | | | | | | | | | | | | | | SI-7818 Cast our way out of extended existential angst
| | * | | | | SI-7818 Cast our way out of extended existential angstJason Zaugg2013-09-062-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `substituteSymbols` is not sophisticated enough to operate on `TypeSkolem`-s which are based on one of the "from" symbols. The pertinant usage of `substituteSymbols` for this bug in in `Extender`. Recapping on that transform: // orig class C[T](...) extends AnyVal { def foo[U] = <rhs> } // transform class C[T] extends AnyVal { ... } object C { def foo$extension[T', U'] = <rhs'> } Where `<rhs'>` has been subtituted with, among other things, `[T, U] ~> [T', U']`. In this case our expected type contains a new type parameter (of the extension method), whereas the type of the RHS contains an existential skolem still pinned to the corresponding class type parameter. tree.tpe = Observable1#7037[_$1#12344] <_$1#12344>.info = <: T#7040 pt = Observable1#7037[T#15644] The limitation of substution is lamented in the comments of `adaptMismatchedSkolems`, which faces the harder version of the issue where the skolems are in the expected type. But, we're in the "easy" case with the skolems in the tree's type; we can cast our way out of the problem. See also f335e447 / ed915c54.
| * | | | | | Merge pull request #2922 from huitseeker/issue/7767Jason Zaugg2013-09-103-0/+21
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-7767 avoid rejecting Scaladoc comments in early initializers
| | * \ \ \ \ \ Merge pull request #1 from retronym/ticket/7767-testFrançois Garillot2013-09-092-0/+19
| | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Test case for SI-7767
| | | * | | | | | SI-7767 Test case for Scaladoc on early initializersJason Zaugg2013-09-092-0/+21
| | |/ / / / / /
| | * | | | | | SI-7767 avoid rejecting Scaladoc comments in early initializersFrançois Garillot2013-09-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | review by @retronym
| * | | | | | | Merge pull request #2866 from retronym/ticket/7269Jason Zaugg2013-09-093-3/+37
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-7269 Rework MapLike#retains to account for desugaring change
| | * | | | | | | SI-7269 Rework MapLike#retains to account for desugaring changeJason Zaugg2013-08-293-3/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `MapLike#retains` contains a for-comprehension that relied on the strict `filter` by its generator. You can't, in general, iterate a mutable map and remove items in the same pass. Here's the history of the desugaring of: def retain[A, B](thiz: mutable.Map[A, B])(p: (A, B) => Boolean): thiz.type = { thiz.foreach { case (k, v) => if (p(k, v)) thiz -= k } Before regression (c82ecabad6~1): thiz.filter(((check$ifrefutable$1) => check$ifrefutable$1: @scala.unchecked match { case scala.Tuple2((k @ _), (v @ _)) => true case _ => false })).withFilter(((x$1) => x$1: @scala.unchecked match { case scala.Tuple2((k @ _), (v @ _)) => p(k, v).unary_$bang })).foreach(((x$2) => x$2: @scala.unchecked match { case scala.Tuple2((k @ _), (v @ _)) => thiz.$minus$eq(k) })); After regression (c82ecabad6, which incorrectly assumed in the parser that no filter is required for isInstanceOf[Tuple2]) thiz.withFilter(((x$1) => x$1: @scala.unchecked match { case scala.Tuple2((k @ _), (v @ _)) => p(k, v).unary_$bang })).foreach(((x$2) => x$2: @scala.unchecked match { case scala.Tuple2((k @ _), (v @ _)) => thiz.$minus$eq(k) })); After the reversion of c82ecabad6, v2.10.2 This is also after 365bb2b4e, which uses `withFilter` rather than `filter`. thiz.withFilter(((check$q$1) => check$ifrefutable$1: @scala.unchecked match { case scala.Tuple2((k @ _), (v @ _)) => true case _ => false })).withFilter(((x$1) => x$1: @scala.unchecked match { case scala.Tuple2((k @ _), (v @ _)) => p(k, v).unary_$bang })).foreach(((x$2) => x$2: @scala.unchecked match { case scala.Tuple2((k @ _), (v @ _)) => thiz.$minus$eq(k) })); This commit does the same as `SetLike#retains`, and converts the map to an immutable list before the rest of the operation.
| * | | | | | | | Merge pull request #2911 from retronym/ticket/7814Jason Zaugg2013-09-097-167/+214
| |\ \ \ \ \ \ \ \ | | |_|/ / / / / / | |/| | | | | | | SI-7814 Avoid init cycle between Predef, `package`, ScalaRuntime
| | * | | | | | | SI-7814 Updates the instrumented version of ScalaRuntime.Jason Zaugg2013-09-055-156/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some tests for specialization use a modified version of the standard library that count boxing, array lookups etc. These sources are updated manually with the script: % test/instrumented/mkinstrumented.sh build Looks that that wasn't done for a while, though. This commit brings it up to date, and adjusts a few braces in ScalaRuntime.scala so the patch srt.scala (used by that script) is shorter. We should really avoid checking in the products of that script and run it as part of the build, or, better, use the bytecode instrumentation framework instead of a modified standard library. But I have to leave that for another day.
| | * | | | | | | SI-7814 Avoid init cycle between Predef, `package`, ScalaRuntimeJason Zaugg2013-09-053-11/+144
| | | |/ / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not every application will force these in a single thread; we have to do our best to avoid cycles between them. The enclosed test was failing every time before the change. This commit breaks the cycle by avoiding computing `tupleNames` in the constructor of `ScalaRuntime`. The new version has the added benefit of including specialized tuple subclasses, which is verified with a unit test for `isTuple`. Are there more of these lurking? It seems likely. I'm more than a little concerned about the way the `ControlThrowable` fires up `scala.SystemProperties` to check whether or not to suppress stack traces; there is already an ugly hack in place: object NoStackTrace { final def noSuppression = _noSuppression // two-stage init to make checkinit happy, // since sys.SystemProperties.noTraceSupression.value // calls back into NoStackTrace.noSuppression final private var _noSuppression = false _noSuppression = sys.SystemProperties.noTraceSupression.value }
* | | | | | | | Merge commit '7fa0e60' into merge/2.10.x-to-masterJason Zaugg2013-09-100-0/+0
|\| | | | | | | | |_|_|/ / / / |/| | | | | | | | | | | | | git merge -s ours 7fa0e60