summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #944 from dgruntz/issue/EpsilonAdriaan Moors2012-07-192-6/+0
|\ | | | | Removes Float.Epsilon and Double.Epsilon
| * Removes Float.Epsilon and Double.EpsilonDominik Gruntz2012-07-192-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Float.Epsilon and Double.Epsilon contain the wrong value. Epsilon should be an upper bound on the relative error due to rounding errors in floating point arithmetic, i.e. it is 1/2 ULP (unit in the last position) which is 2^(-24) for Float and 2^(-53) for Double. This was discussed in detail in https://issues.scala-lang.org/browse/SI-3791 and it was decided to deprecate Epsilon for 2.9 and to remove it for 2.10 and to reintroduce it with the correct value for 2.11. See also the discussion (and comment from Martin) on https://groups.google.com/forum/?fromgroups#!topic/scala-internals/m763WjBdfyo
* | Merge pull request #943 from adriaanm/rebase-ticket-5939Adriaan Moors2012-07-193-17/+12
|\ \ | | | | | | SI-5939 resident compilation of sources in empty package
| * | SI-5939 resident compilation of sources in empty packageMartin Odersky2012-07-193-17/+12
| |/ | | | | | | Empty packages can now be cleanly invalidated.
* | Merge pull request #906 from adriaanm/optimize-findmemberAdriaan Moors2012-07-1911-73/+226
|\ \ | |/ |/| Optimize findmember
| * Variation #10 to optimze findMemberMartin Odersky2012-07-143-49/+55
| | | | | | | | Undoing the memberType caching. This seems to make it slower rather than faster. Also, comparing new vs old statistics shows that only very few asSeenFrom operations are saved by the caching.
| * Attempt #9 to opimize findMember.Martin Odersky2012-07-141-24/+43
| | | | | | | | Also avoid recomputation of memberType in findMembers
| * Attempt #8 to opimize findMember.Martin Odersky2012-07-141-1/+3
| | | | | | | | Only consider DEFERRED members in 2nd pass.
| * Attempty #7 to optimize findMemberMartin Odersky2012-07-141-18/+45
| | | | | | | | memberType operations are not cached, so that at most one memberType is taken per found symbol.
| * Fixing problem that caused fingerprints to fail in reflection.Martin Odersky2012-07-144-4/+5
| | | | | | | | Also fixed test case that failed when moving to findMembers. Avoids similar problems in the future by renaming nme.ANYNAME
| * Attemmpt #6 to optimize findMemberMartin Odersky2012-07-141-16/+19
| | | | | | | | Replace scope by ::-list, where new elements are added at the end.
| * Attempt #5 to optimize findMember.Martin Odersky2012-07-141-53/+52
| | | | | | | | Specific optimizations to findMember that have become possible because findMembers is its own function now.
| * Attempt #4 to optimize findMemberMartin Odersky2012-07-141-1/+70
| | | | | | | | broke out findMembers as a separate operation to streamline the code. findMember itself still needs to be optimized.
| * Attempt #3 to optimize findMemberMartin Odersky2012-07-144-8/+23
| | | | | | | | Fixed fingerPrinting scheme to work with rehashes, also added finger prints to typedIdent searches.
| * Attempt #2 to optimize findMemberMartin Odersky2012-07-143-12/+12
| |
| * Attempt #1 to optimize findMemberMartin Odersky2012-07-142-4/+16
| | | | | | | | Keeps fingerprints in scopes which are bitsets telling you what the last 6 bits of each hashcode of the names stored in the scope are. findMember will avoid looking in a scope if inferprints do not match.
* | Merge pull request #922 from dragos/issue/fix-SI-6092Adriaan Moors2012-07-192-6/+16
|\ \ | | | | | | SI-6092 don't leak in LazyAnnotationInfo, don't lift try{}finally{}
| * | Fixed SI-6092. Fixed leaky annotations, and relaxed the conditions under ↵Iulian Dragos2012-07-182-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | which a try-catch is lifted out to an inner method. Less known fact: lazy values null-out their dependent values is their accessed only from their initializer. The analysis is not context-dependent (meaning the owner where a reference happens needs to be exactly that lazy value). * Removed no-op code around positions in `LazyAnnotationInfo` * Don't lift expressions that have no `catch` clause The two changes combined fix a memory leak that's been plaguing the IDE: an annotation (even when forced) would hang on to a namer, through the outer field of its call-by-name parameter. The test for the memory leak is in the IDE project (couldn't find a simple way to reproduce it outside the IDE), but there's a test checking that the field is null after initialization.
* | | Merge pull request #939 from adriaanm/ticket-6089Adriaan Moors2012-07-191-5/+11
|\ \ \ | | | | | | | | SI-6089 better tail position analysis for matches
| * | | SI-6089 better tail position analysis for matchesAdriaan Moors2012-07-181-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | we mistakenly went into apply nodes to look for matchEnd-labeldefs in tail positions -- only apply nodes that jump to labels in tailpos should be traversed (this arises for nested matches)
* | | | Merge pull request #940 from axel22/issue/5937Adriaan Moors2012-07-181-10/+16
|\ \ \ \ | | | | | | | | | | SI-5937: Vector updated, +:, and :+ ignore provided builder, breaking type safety
| * | | | Make field strict and private.Aleksandar Prokopec2012-07-181-1/+1
| | | | |
| * | | | Fix SI-5937.Aleksandar Prokopec2012-07-181-10/+16
| | | | |
* | | | | Merge pull request #935 from scalamacros/ticket/5695Adriaan Moors2012-07-182-5/+0
|\ \ \ \ \ | | | | | | | | | | | | SI-5695 removes Context.enclosingApplication
| * | | | | SI-5695 removes Context.enclosingApplicationEugene Burmako2012-07-182-5/+0
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently it's impossible to find out the enclosing Apply node if you're an argument being typechecked (because the arguments are typechecked separately from the enclosing Apply). This functionality is by far not a core feature of macros, so I'm removing it.
* | | | | Merge pull request #909 from lrytz/t5892Adriaan Moors2012-07-182-2/+8
|\ \ \ \ \ | | | | | | | | | | | | SI-5892 allow implicit views in annotation args
| * | | | | SI-5892 allow implicit views in annotation argsLukas Rytz2012-07-182-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the problem was that lazy annotations got completed in phase pickler. the `inferView` method in Typers bails out if `isPastTyper`. now the lazy annotations completes `atPhase(typerPhase)`. test case in `pos`. the second test case in `neg` is for another bug that is discussed in a comment of SI-5892. when type checking arguments of type parameter annotations, the class members should not be in scope. this was alreay fixed in 9129cfe9.
* | | | | | Merge pull request #934 from paulp/partest-timeoutAdriaan Moors2012-07-181-1/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | Increase partest timeout and emit warning when it hits.
| * | | | | | Increase partest timeout and emit warning when it hits.Paul Phillips2012-07-171-1/+2
| | |/ / / / | |/| | | |
* | | | | | Merge pull request #938 from phaller/topic/scala-concurrent-deprecate-cleanupAdriaan Moors2012-07-1813-107/+23
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-6095, SI-6098 - clean up public API, add deprecations
| * | | | | | SI-6095, SI-6098 - clean up public API, add deprecationsphaller2012-07-1813-107/+23
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove Scheduler, Cancellable, and Task trait. Hide impl.Promise object. Deprecate managedBlock methods in TaskRunners. Remove duplicate toBoxed method and pointless renaming import. Remove duplicate import of CanBuildFrom and Builder in Future. Organize imports in impl.Promise. Review by @axel22 and @heathermiller
* | | | | | Merge pull request #926 from scalamacros/topic/macro-classpathsAdriaan Moors2012-07-181-2/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | fixes a typo in macro classloaders
| * | | | | | fixes a typo in macro classloadersEugene Burmako2012-07-171-2/+2
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Primary should be here, because a test a few lines up checks whether primary != "". Hence usage of fallback here is just a typo. Primary and fallback classpaths were designed for situations when library classpath are not enough (e.g. for bootstrapping libraries that don't get onto tool classpaths). Originally I planned to use them to bootstrap scala-library, however, there's always a starr/locker on a tool classpath, so we don't need special treatment of this case. After I realized that, I decided to keep advanced classpath switches, because others might not be as lucky as we are.
* | | | | | Merge pull request #883 from dgruntz/issue/6061Adriaan Moors2012-07-181-3/+3
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-6061 adds weakly conformance for number types to resolveOverloaded
| * | | | | | uses weak_<:< from Types to solve this issueDominik Gruntz2012-07-171-13/+3
| | | | | | |
| * | | | | | SI-6061 adds weakly conformance for number types to resolveOverloadedDominik Gruntz2012-07-111-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fix changes resolveOverloaded in scala.reflect.internal so that numeric widening on the actual argument types is also considered for primitive number types. Needs changes in functions applicable and mostSpecific.
* | | | | | | Merge pull request #933 from scalamacros/ticket/5731Adriaan Moors2012-07-183-5/+12
|\ \ \ \ \ \ \ | |_|_|_|_|/ / |/| | | | | | SI-5731 a few fixes for value classes
| * | | | | | SI-5731 a few fixes for value classesEugene Burmako2012-07-173-5/+12
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've faced two gotchas. First of all posterasure, which is supposed to erase ErasedValueType types, didn't look into ConstantType.value that is known to be smuggling types (hi Paul that's a plus one). Secondly ClassManifest.classType[T] assumed that its T is bound by AnyRef, which is not the case for value types. Here I had two choices: a) introduce a special method for manifests of value types, b) remove the upper bound of the type parameter and call it a day. Since manifests are already deprecated and there's no difference which method was used to create which manifest, I went for option b).
* | | | | | Merge pull request #928 from hubertp/2.10.x-issue/6076Adriaan Moors2012-07-182-6/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | Fixed SI-6076. Range positions for macro-based string interpolation.
| * | | | | | Fixed SI-6076. Range positions for macro-based string interpolation.Hubert Plociniczak2012-07-172-6/+5
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Should bring back the jenkins job as well. Review by @odersky.
* | | | | | Merge pull request #932 from hubertp/2.10.x-issue/5588Adriaan Moors2012-07-181-2/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | Fixes SI-5588. Correct compare for Enumeration.
| * | | | | | Fixes SI-5588. Correct compare for Enumeration.Hubert Plociniczak2012-07-171-2/+5
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Slower than the original one but does comparison in the same spirit as IntOrdering. Review by @axel22.
* | | | | | Merge pull request #916 from gkossakowski/eclipse-projectAdriaan Moors2012-07-186-2/+96
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | Eclipse project updates
| * | | | | Add `partest` and `scalap` Eclipse project definitions.Grzegorz Kossakowski2012-07-164-0/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Created by copying scala-compiler project definition and manually editing project files so they point at partest and scalap. I imported it successfully to Eclipse. Review by @dragos.
| * | | | | Fix Scala library dependency in Eclipse project files.Grzegorz Kossakowski2012-07-162-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove dependency on Scala library shipped with Scala IDE. In compiler projects we depend on library project itself so there's we shouldn't duplicate library dependency. Review by @dragos.
* | | | | | Merge pull request #904 from adriaanm/ticket-6077Adriaan Moors2012-07-171-149/+179
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | SI-6077 more conservative TreeMakersToConds for CSE
| * | | | | SI-6077 more conservative TreeMakersToConds for CSEAdriaan Moors2012-07-141-103/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | we were dropping irrefutable extractor calls (implemented for SI-4691) in common subcondition elimination, which caused bad code to be generated clean up TreeMakersToConds significantly in the process
| * | | | | enabled patmatDebugAdriaan Moors2012-07-131-49/+56
| | | | | |
* | | | | | Merge pull request #915 from gkossakowski/SI-6035-specialized-flagAdriaan Moors2012-07-172-6/+13
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-6035: Specialization and separate compilation.
| * | | | | | SI-6035: Specialization and separate compilation.Grzegorz Kossakowski2012-07-162-6/+13
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix an issue when specialization wouldn't work properly in a setting where separate compilation was involved. E.g. if you inherit from a class that is specialized and has been compiled separately you might not get proper forwarders generated. A test-case that this commit adds covers that scenario. The root cause of this issue was the fact that SPECIALIZED flag was not pickled. Thanks to recent Flags reorganization (see a9b85db) all that needs to be done is to set the flag before pickling. We choose to that in superaccessors phase because it's a phase that runs before pickling and after type checking (so we can check if given symbol has an annotation). Removed old logic from uncurry that was responsible for setting flags that is not needed anymore because we set them in superaccessors. Review by @axel22 and @paulp.