| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Removes Float.Epsilon and Double.Epsilon
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | | |
SI-5939 resident compilation of sources in empty package
|
| |/
| |
| |
| | |
Empty packages can now be cleanly invalidated.
|
|\ \
| |/
|/| |
Optimize findmember
|
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
Also avoid recomputation of memberType in findMembers
|
| |
| |
| |
| | |
Only consider DEFERRED members in 2nd pass.
|
| |
| |
| |
| | |
memberType operations are not cached, so that at most one memberType is taken per found symbol.
|
| |
| |
| |
| | |
Also fixed test case that failed when moving to findMembers. Avoids similar problems in the future by renaming nme.ANYNAME
|
| |
| |
| |
| | |
Replace scope by ::-list, where new elements are added at the end.
|
| |
| |
| |
| | |
Specific optimizations to findMember that have become possible because findMembers is its own function now.
|
| |
| |
| |
| | |
broke out findMembers as a separate operation to streamline the code. findMember itself still needs to be optimized.
|
| |
| |
| |
| | |
Fixed fingerPrinting scheme to work with rehashes, also added finger prints to typedIdent searches.
|
| | |
|
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | | |
SI-6092 don't leak in LazyAnnotationInfo, don't lift try{}finally{}
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| | | |
| | | | |
SI-6089 better tail position analysis for matches
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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)
|
|\ \ \ \
| | | | |
| | | | | |
SI-5937: Vector updated, +:, and :+ ignore provided builder, breaking type safety
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-5695 removes Context.enclosingApplication
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-5892 allow implicit views in annotation args
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Increase partest timeout and emit warning when it hits.
|
| | |/ / / /
| |/| | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-6095, SI-6098 - clean up public API, add deprecations
|
| | |_|/ / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
fixes a typo in macro classloaders
|
| | |/ / / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-6061 adds weakly conformance for number types to resolveOverloaded
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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.
|
|\ \ \ \ \ \ \
| |_|_|_|_|/ /
|/| | | | | | |
SI-5731 a few fixes for value classes
|
| | |/ / / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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).
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Fixed SI-6076. Range positions for macro-based string interpolation.
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Should bring back the jenkins job as well.
Review by @odersky.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Fixes SI-5588. Correct compare for Enumeration.
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Slower than the original one but does comparison in the same spirit as IntOrdering.
Review by @axel22.
|
|\ \ \ \ \ \
| |_|_|/ / /
|/| | | | | |
Eclipse project updates
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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.
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
SI-6077 more conservative TreeMakersToConds for CSE
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-6035: Specialization and separate compilation.
|
| | |/ / / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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.
|