| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some names I missed in 55b609458fd .
How one might know when one is done:
mkdir scratch && cd scratch
mkdir annotation beans collection compat concurrent io \
math parallel ref reflect runtime scala sys testing \
text tools util xml
scalac $(find ../src/library -name '*.scala')
Until recently that would fail with about a billion errors. When it
compiles, that's when you're done. And that's where this commit
takes us, for src/library at least.
|
|
|
|
|
|
|
| |
Reduced method size of map/flatMap to under 35 bytes to make them
inlinable. Also specialized filterNot code so that it does not create
a second closure. Finally, avoided default argument for sizeHint to
reduce size of methods calling it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A conceivably pretty bad performance bug in builders.
SI-4821 pointed out that ArrayBuffer's ++ checks for a cheap size method
by matching on IndexedSeq, but mutable.IndexedSeq, so all immutable
collections are thrown in the same group as linear seqs. I went looking
for other examples of this and found them, in key classes like Builder.
The "type shadowing trap" is a serious issue in the collections. Closes
SI-4821, 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.
|
|
|
|
|
| |
Removed more than 3400 svn '$Id' keywords and related junk.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Fixed a number of faulty Scaladoc comments in library and compiler
sources. No review.
|
|
|
|
|
| |
lost of documentation and some small adjustments to collection classes.
|
| |
|
| |
|
|
|