summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| | | * Reimplemented Modifer.Paul Phillips2012-02-058-44/+94
| | | | | | | | | | | | | | | | | | | | Couldn't live with a scala.Enumeration being a permanent fixture in the reflection library. Rolled it by hand.
| | | *-----. Merge remote-tracking branches 'VladUreche/feature/compiler-rootdoc', ↵Paul Phillips2012-02-0518-48/+317
| | | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 'scalamacros/pullrequest/5334', 'scalamacros/pullrequest/5272' and 'VladUreche/issue/5287-cleanup' into develop
| | | | | | | * Scaladoc @usecase annotation overriding / SI-5287Vlad Ureche2012-02-054-36/+277
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From now on, the usecases inherit the comments from their parents, such as the explanation and the annotations: @param, @tparam, @return, etc. An example of usecase comment inheritance is: /** * The test function tests the parameter param for ... * * @param theParam the implicit parameter to be tested for ... * @return the result of the test * * * * @usecase def test(): Bool * * The test function tests the parameter taken implicitly from scope. * Example: `test()` * * @return the result of the test for the current scope * * * * @usecase def test(theParam: SomeType): Bool * * This takes the explicit value passed. * Example: `test(3)` * * @param theParam the explicit parameter to be tested for ... */ def test(implicit theParam: SomeType): Bool Notice both usecases override the explanation with their own examples. The first usecase also overrides the "@return" annotation while the 2nd usecase overrides the "@param theParam" annotation. If they didn't override the explanations and annotations, they would inherit the values from the actual implementation, def test(implicit ...) This will be followed by @inheritdoc, which enables more fine-grained control over comment inheritance. The full explanation of using comment inheritance and @inheritdoc and their interaction with variables is given at https://wiki.scala-lang.org/display/SW/Tags+and+Annotations in the "Comment inheritance" and "Inheritance Example" sections.
| | | | | | * | Fixes https://issues.scala-lang.org/browse/SI-5272Eugene Burmako2012-02-056-3/+20
| | | | | | | |
| | | | | * | | Fixes https://issues.scala-lang.org/browse/SI-5334Eugene Burmako2012-02-054-4/+10
| | | | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New version of reification isn't susceptible to this bug. The problem was with Code.lift generating not only a tree, but also a manifest with the type of that tree. That led to an issue in the case of the type of the manifest depending on a class declared inside the quasiquote. Now manifests in reification are gone, so is the problem.
| | | | * | / Added a rootdoc page for the compiler API scaladocVlad Ureche2012-02-054-5/+10
| | | | | |/ | | | | |/|
| | | * | | Merge remote-tracking branch 'szabolcsberecz/small-cleanup' into developPaul Phillips2012-02-052-3/+2
| | | |\ \ \
| | | | * | | one less TODO and null checkSzabolcs Berecz2012-02-052-3/+2
| | | | | | |
| | | * | | | Merge remote-tracking branches 'scalamacros/pullrequest/cygwinscripts' and ↵Paul Phillips2012-02-0544-433/+278
| | | |\ \ \ \ | | | | | |_|/ | | | | |/| | | | | | | | | 'scalamacros/pullrequest/removeliftcode' into develop
| | | | * | | Replaced LiftCode with a function in MacroContextEugene Burmako2012-02-0544-433/+278
| | | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Major cleanup of reification: * LiftCode phase has been removed * Code has been deprecated and will be removed as we roll a new starr * Logic related to type-directed lifting has been purged scala.reflect.macro.Context#reify now provides the same services as LiftCode provided (except that it returns Tree, not Code). For testing purposes, I've retained the oh-so-convenient automagic lift. test/files/codelib/code.jar now hosts Code.lift reimplemented in a macro, so that the tests can continue working as if nothing has happened.
| | | * | | Fixes OSTYPE check for CygwinEugene Burmako2012-02-051-1/+1
| | | | | |
| | | * | | Fixes curlUpload for CygwinEugene Burmako2012-02-051-0/+1
| | | |/ /
| | * | | Add tests for parallel Ctrie.Aleksandar Prokopec2012-02-037-17/+126
| | | | | | | | | | | | | | | | | | | | Changed parameters in some tests to speed them up.
| | * | | Fix some issues in parallel Ctrie.Aleksandar Prokopec2012-02-036-46/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change resolves some issues with ParCtrie splitters and their `remaining` method, which currently evaluates the size of the Ctrie. Since this is still not done lazily, nor in parallel, it has a certain cost, which is unacceptable. Change #1: The `shouldSplitFurther` method is by default implemented by calling the `remaining` method. This method now forwards the call to the same method in the splitter which is by default implemented in the same way as before, but can be overridden by custom collections such as the ParCtrie. Change #2: ParCtrie splitter now has a `level` member which just counts how many times the method has been split. This information is used to override the default `shouldSplitFurther` implementation. Change #3: The tasks and splitters rely heavily on the `remaining` method in the splitter for most operations. There is an additional method called `isRemainingCheap` which returns true by default, but can be overridden by custom collections such as the `Ctrie`.
| | * | | Add parallel Ctrie parallel collection.Aleksandar Prokopec2012-02-025-10/+151
| | | | |
| | * | | Incorporate Ctrie into standard library.Aleksandar Prokopec2012-02-024-13/+106
| | | | | | | | | | | | | | | | | | | | Implemented Ctrie serialization. Improved hashcode computation.
| | * | | Add the Ctrie concurrent map implementation.Aleksandar Prokopec2012-02-0113-0/+2055
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ctrie is a scalable concurrent map implementation that supports constant time lock-free lazy snapshots. Due to the well-known private volatile field problem, atomic reference updaters cannot be used efficiently in Scala yet. For this reason, 4 java files had to be included as well. None of these pollute the namespace, as most of the classes are private. Unit tests and a scalacheck check is also included.
| | * | | Remove ParIterator and SignalContextPassingIterator.Aleksandar Prokopec2012-02-0114-182/+113
| | | | | | | | | | | | | | | | | | | | | | | | | This unclutters the namespace and makes defining custom parallel collections a lot easier.
| | * | | Add support for combiner sharing to parallel collections.Aleksandar Prokopec2012-02-014-119/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Concurrent (thread-safe) collections can implement builders directly for parallel collections by having themselves as builders, similar to buffers being builders for themselves in sequential collections. Combining 2 shared combiners can be expensive (more than logn), but is never done, since `combine` is always called with `this` (receiver) combiner, so `combine` just returns `this`. This commit adds support for implementing a parallel collection by having itself as combiner (parallel builder). To do this, clients must now merely implement their combiners by overriding the method `canBeShared` and having it return `true`. The support is implemented by refining the abstraction which creates combiners in tasks - this abstraction is provided by the protected `combinerFactory` method, previously `cbfactory`. The essential difference is that if the combiner can be shared, this method returns a combiner factory which always returns the same combiner. Otherwise, it always creates a new combiner. Span and takeWhile had to be modified for shared combiners to make this work, but for all other collections they work as before. Several other tasks had to be modified slightly, as well.
| * | | | added reference equality checks to improve structural sharingRuediger Klaehn2012-02-051-7/+12
| | |/ / | |/| | | | | | | | | | | | | | added reference equality checks to updated0 and removed0 to prevent creation of a new map when updating an entry with the same value or removing an entry that was not present to begin with.
* | | | Merge remote-tracking branch 'odersky/topic/inline' into inline-remergePaul Phillips2012-02-0644-62/+81
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compiler/scala/reflect/internal/Definitions.scala src/compiler/scala/tools/nsc/typechecker/Namers.scala src/library/scala/AnyVal.scala test/files/run/primitive-sigs-2.check test/files/run/t4172.check test/files/scalap/abstractClass/result.test test/files/scalap/abstractMethod/result.test test/files/scalap/caseClass/result.test test/files/scalap/cbnParam/result.test test/files/scalap/classPrivate/result.test test/files/scalap/classWithExistential/result.test test/files/scalap/classWithSelfAnnotation/result.test test/files/scalap/covariantParam/result.test test/files/scalap/implicitParam/result.test test/files/scalap/paramClauses/result.test test/files/scalap/paramNames/result.test test/files/scalap/sequenceParam/result.test test/files/scalap/simpleClass/result.test test/files/scalap/traitObject/result.test test/files/scalap/typeAnnotations/result.test test/files/scalap/valAndVar/result.test test/files/scalap/wildcardType/result.test
| * | | | Added hook in erasure.Martin Odersky2012-02-061-0/+3
| | | | |
| * | | | Fixed a bunch of scalap check files to account for absence of ScalaObjectMartin Odersky2012-02-0619-24/+24
| | | | |
| * | | | A first bunch of Any-extending traits.Martin Odersky2012-02-0616-18/+22
| | | | |
| * | | | Removing AnyVal as a source class. Removing automatic addition of ↵Martin Odersky2012-02-0619-95/+49
| | | | | | | | | | | | | | | | | | | | ScalaObject. Undoing wrong fix in ExtensionMethods.
| * | | | Definitions are now initialized in reflection (was missing before).Martin Odersky2012-02-062-0/+7
| | | | |
| * | | | Different treatment of Null <:< T, to allow for Any-extending traits. ↵Martin Odersky2012-02-061-83/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without the change, val x: List[String] with Ordered[String] = null would be illegal. The change is reflected in my local copy of the spec. Where it now says in the section of conformance: \item For every non-bottom class type $T$, $\mbox{\code{scala.Null}} \conforms T$, unless $T \conforms \mbox{\code{scala.AnyVal}}$ or $T \conforms \mbox{\code{scala.NotNull}}$.
| * | | | Fix in Definitions that now enables bootstrap without AnyVal.scala present. ↵Martin Odersky2012-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | This should be a new starr.
* | | | | All tests passed... not counting scaladoc.Paul Phillips2012-02-041-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disabled failing scaladoc test rather than fixing it because they're too hard to fix, even though it is almost certainly a trivial output change. (The fact that I don't know for sure that it is a trivial output change is also suboptimal.)
* | | | | A couple more checkfiles and comments.Paul Phillips2012-02-042-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I guess I have to suck up the "C with Object" here in order to get the "Array[T with Object]" I need in a different test. Now all tests pass for reals.
* | | | | Made a typer hack less hacky.Paul Phillips2012-02-041-4/+6
| | | | |
* | | | | Hardening in Constructors.Paul Phillips2012-02-041-2/+2
| | | | |
* | | | | A little msil I missed un-reverting.Paul Phillips2012-02-041-5/+4
| | | | |
* | | | | Removed now superfluous bootstrapper script.Paul Phillips2012-02-041-40/+0
| | | | |
* | | | | Hardened/documented AnyVal constructor switcheroo.Paul Phillips2012-02-042-0/+3
| | | | |
* | | | | Checkfile output update for AnyVal class.Paul Phillips2012-02-041-1/+4
| | | | | | | | | | | | | | | | | | | | And with that one, I believe all tests pass.
* | | | | Tweaking parent printing a little further.Paul Phillips2012-02-041-5/+14
| | | | | | | | | | | | | | | | | | | | Not too many Object/AnyRef parents, not too few.
* | | | | Fixing AnyVal verify error and reflection.Paul Phillips2012-02-041-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Have to give AnyVal a constructor and simultaneously pacify both the typer (which knows Any has no constructor) and the jvm (which mandates a constructor must call its superconstructor.) It's the usual angle of adding a not-quite-right tree during parsing and then finishing it later (in this case, in AddInterfaces.)
* | | | | Merge branch 'master' into topic/inlinePaul Phillips2012-02-044-16/+32
|\ \ \ \ \ | | |/ / / | |/| | |
| * | | | Merge branch 'fix-script'Paul Phillips2012-02-041-13/+18
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: tools/get-scala-revision
| | * | | | Establish more baseline tags.Paul Phillips2012-02-041-13/+18
| | | | | | | | | | | | | | | | | | | | | | | | So we can turn out a build string regardless of local conditions.
| | * | | | Time-traveled get-scala-revision to 3-way merge base.Paul Phillips2012-02-041-16/+28
| | | | | |
| * | | | | An IntelliJ module for the root directory.Jason Zaugg2012-02-042-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | This allows any file to be be edited, rather than just the ones under library, compiler, actors, ...
| * | | | | Merge branch 'publish-fix'Paul Phillips2012-02-031-2/+2
| |\| | | | | | |_|_|/ | |/| | | | | | | | | | | | | Conflicts: tools/epfl-publish
| | * | | Fix 2.9.2 scaladoc replacing nightlies in jenkinsVlad Ureche2012-02-031-2/+2
| | | | |
| | * | | Injecting epfl-publish into merge-base.Paul Phillips2012-02-031-0/+32
| | | | |
* | | | | Fixed all but one of the scalap tests.Paul Phillips2012-02-0420-28/+26
| | | | |
* | | | | Restored msil.Paul Phillips2012-02-0412-371/+366
| | | | |
* | | | | Utilizing convenience methods martin hasn't discovered yet.Paul Phillips2012-02-041-7/+2
| | | | |
* | | | | Fixed specialized tests.Paul Phillips2012-02-041-1/+1
| | | | |