| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
The ensuring methods should be by-name on the message argument like
assert, assume, and require. Closes #4129, no review.
|
|
|
|
|
|
|
|
|
| |
Override checks and self-types still needed some work (ticket #2808.)
I believe this is the right change. The modifications in parallel and
actors were a result of the files failing to compile after the change to
allOverriddenSymbols. (I am taking the position that that aspect is a
feature.) Review by malayeri, odersky.
|
| |
|
|
|
|
|
|
|
|
| |
Implemented a (slower) workaround for parallel vectors. Implemented
group by.
No review.
|
|
|
|
|
| |
No review.
|
|
|
|
|
|
|
| |
Renamed the files whose names have fallen out of sync with their
contents thereby consigning us to ant's version of groundhog day. No
review.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoids the creation of an amazing 106,700,793 empty arrays (I counted
on my fingers) during the compilation of quick.lib and quick.comp by
reusing an empty Array[Object]. (And another ten million or so after
quick.comp, but who is counting.) It sounds like it would make a bigger
difference than it does. Also eliminated some strange indirection from
WrappedArray to LowPriorityImplicits back to WrappedArray on each
creation.
Review by dragos.
|
|
|
|
|
|
|
| |
De-finalized equals/hashCode on Trees so people ill-advisedly creating
custom Trees with non-reference equality can continue doing their
ill-advised thing. No review.
|
| |
|
|
|
|
|
| |
Towards a replay framework for the presentation compiler
|
| |
|
|
|
|
|
|
|
|
| |
Modified generic companion apply to call empty if there are no
arguments, so something like Set() does not generate unnecessary
garbage. Also found some immutable classes which don't reuse an empty
object for emptiness, and gave them one. No review.
|
| |
|
|
|
|
|
|
| |
Misc uninteresting tidbits to take some weight off overly large patches
in progress. No review.
|
|
|
|
|
|
|
|
|
|
| |
questions start to arise as the ability to distinguish between type and
term names becomes more fully realized: particularly that the ability
to distinguish between TermSymbols and TypeSymbols has not come along
with the names. In any case, this is more tedious than I might have
anticipated but mostly because it's blazing a trail of typiness to ease
the path for others. No review.
|
|
|
|
|
| |
More comprehensive escaping for compiler Strings/Chars. No review.
|
| |
|
|
|
|
|
|
| |
Changed the cache in the jvm backend to use a WeakHashMap for names.
Added some details to mutable.WeakHashMap scaladoc.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Even after the mostly blissful marriage of Traversable and Iterator
there was some fussin' and fightin' over who should have to care for
Option. Now there is peace among the collections once again.
// before
scala> Iterator(Some(1), None).flatten
<console>:6: error: value flatten is not a member of Iterator[Option[Int]]
// after
scala> Iterator(Some(1), None).flatten
res0: Iterator[Int] = non-empty iterator
Review by moors.
|
|
|
|
|
|
|
|
|
| |
There's still some temporary scaffolding propping up the Names
situation. This removes one strut: no more is there an implicit
conversion from String to TypeName. Implicits which remain to be deal
with: String => TermName, Name => TermName, Name => TypeName. Once
they're gone we're ready for KindNames! Just kidding, no review.
|
|
|
|
|
|
| |
The above issue was made explicit using the dx tool for the Android SDK
to convert Java bytecode to Dalvik bytecode.
|
|
|
|
|
|
| |
forward toString, but forwarding equals and hashCode breaks equality
with sequences. Closes #4122, no review.
|
|
|
|
|
|
| |
Some accumulated cleanup done while profiling and reducing uses of
length. No review.
|
|
|
|
|
|
|
|
|
|
| |
down the long and freezy road once again. With this patch you can send a
SIGHUP to partest and it will spew a bunch of internal state. It is also
possible I fixed the underlying issue by cleaning up the super fragile
dependence on counters never getting the least bit off track. If fixed,
it'll still be fun to send signals. If not, this will be coming in handy
reeeeeal soon. No review.
|
| |
|
|
|
|
|
|
|
|
|
| |
Bencharking a larger program with parallel collections.
Fixed a couple of bugs in parallel collections.
No review.
|
|
|
|
|
|
|
|
|
| |
Finer conversions for immutable parallel collections.
Added some missing traits.
No review.
|
|
|
|
|
| |
small, very focused taste of Ordering contravariance. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit is about not calling .length or .size on Lists. Sometimes it
is unavoidable; not often. I created some methods for the compiler which
should probably be in the collections, which do things like test if two
sequences have the same length in a more efficient manner than calling
length on each.
Also, wouldn't it be wonderful to have some mechanism for finding these
issues in a more automated way. Like say an annotation:
LinearSeqLike {
@badjuju("Calling length on linear seqs is O(n)")
def length: Int = whee
}
Or since I imagine everyone thinks they're calling length with lists of
2 or 3, an optional runtime check which yelled if it sees you calling
length on a 600 element list, or worse:
var i = 0
while (i < myList.length) { // you don't want to see what this does
f(myList(i)) ; i += 1;
}
Uniformity of interface without uniformity of behavior leaves us with
traps. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
are constant distractions which I've meant forever to fix anyway, such
as the importing of collection.mutable._ (or any other package with lots
of reused names.) Why is this relevant to performance? Well,
var x = new HashSet[Int]
What's that? What does 'x += 1' mean? These are questions we can all
live without.
There's almost nothing left which references HashSet or HashMap or Stack
or other ambiguous classes without a qualifier: I can finish trunk but
I can't keep it clean on my own. (Where should I be writing this stuff
down, I wonder.) No review.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Discovered bug in mapConserve introduced in r23038 when a tail recursive
version was submitted. I am optimistic this is a player in recent
performance degradation based on the timing of the commit and the fact
that I was examining mapConserve because of info from my homemade
profiler. (But it's late and I only just found it, so I'll be the last
to know.) Review by odersky.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Stops barking up the wrong tree with -Ywarn-dead-code. The origin of its
issues was twofold:
1) synchronized acts by-name without being by-name (ticket #4086) 2)
warnings are swallowed if context.reportGeneralErrors is false
Those two plus a dash of bitrot. In any case it's at its all time
happiest now. It found all the dead code related fixes in this commit.
Way to go, -Ywarn-dead-code! Review by odersky.
|
|
|
|
|
|
|
| |
Modified TreeMap to return a fresh empty node upon removing the last
element rather than the existing one, so old objects don't remain
uncollectable forever. No review.
|
|
|
|
|
| |
Closes #4077, review by dragos.
|
|
|
|
|
|
|
| |
one deprecation, one unchecked, and one "other", each of which
volunteers no mechanism for suppression. (It would be nice to change
this.) No review.
|
|
|
|
|
|
| |
Eliminated the 10 unchecked warnings emanating from RedBlack.scala. No
review.
|
|
|
|
|
| |
No review.
|
|
|
|
|
| |
No review.
|
|
|
|
|
|
|
|
|
| |
Array combiners implementation changed from array buffers to doubling
unrolled buffers to avoid excessive copying. Still evaluating the
benefits of this.
No review.
|
|
|
|
|
|
|
|
|
|
| |
Fixed parallel ranges to use the same range logic under the hood, and
not introduce code duplication.
Slight fix in Tasks.
No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Special cased with thread pool executor scheduling. Fixed an ugly
concurrency bug where futures returned by a thread pool executor didn't
remove the task from the queue when cancel was called. Note to self and
others: don't cancel futures returned by thread pool executors, it might
lead to unexpected behaviour. Modified the executor to add new threads
if all the active threads are syncing, in order to avoid deadlocks.
Fixed a hidden bug in AdaptiveWorkStealingTasks, where correct behaviour
depended on the execution order of the tasks. This didn't fail before
with ForkJoinTasks, since there the execution order is well-defined.
Scalachecked 1.5 & 1.6 support.
No review.
|
|
|
|
|
|
|
| |
An unfortunate missing character in r22946 turned listbuffer into an
append-only machine. I was the reviewer on that commit and I am sad that
I missed it. Closes #4066, no review.
|
|
|
|
|
|
|
| |
Extricated Addable and AddingBuilder from the few classes still
utilizing them and deprecated both. Closes #4059. Already endorsed by
odersky, so no review.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Moved ClassfileAnnotation/StaticAnnotation/Annotation/TypeConstraint
into scala.annotation and enabled the deprecated type aliases in scala.*
to point there. Also enclosed is a new starr to bootstrap. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mopping up after the deprecation of exit and error. It is decidedly
non-trivial (at least for the IDE-impaired) to be completely sure of
which error function was being called when there were about twenty with
the same signature in trunk and they are being variously inherited,
imported, shadowed, etc. So although I was careful, the possibility
exists that something is now calling a different "error" function than
before. Caveat programmer.
(And let's all make it our policy not to name anything "error" or "exit"
from here on out....) No review.
|
|
|
|
|
|
| |
Deprecated the rest of the elements with comments saying "deprecate me."
No review.
|