| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Closes #3984 by the most arduous and indirect route imaginable:
abstracts the common code out of the TrieIterators in HashMap and
HashSet. When I raised this flag to find out if anyone would open
fire, all was quiet on the western front. Although I wouldn't want
to write code like this as an everyday thing, I think it serves as a
nice showcase for some of the abstraction challenges we're up against:
performance looks the same and I will never again have to fix the same
bug in two places. Review by rompf.
|
|
|
|
|
|
|
|
|
| |
Brought back and deprecated onlyPresentation to unbreak sbt. (Another
fine reason for us to push all the way to using sbt is that we wouldn't
unwittingly break it, as that change and my recent jline changes both
did.) Maybe there is a better way to do what's in this one: review by
dragos.
|
|
|
|
|
|
| |
Warded off an NPE (which only arose on erroneous code) in the
continuations plugin. Closes #4132, no review.
|
|
|
|
|
|
| |
The ensuring methods should be by-name on the message argument like
assert, assume, and require. Closes #4129, no review.
|
|
|
|
|
|
| |
Reverting fix for #4047 until I figure out why it is failing on chara
and not on my machine. No review.
|
|
|
|
|
|
| |
Untangling parsers from compilation units so that we can browse toplevel
symbols without full compilations.
|
|
|
|
|
|
| |
Applying some short-term balm to scaladoc since it got all loopy after
that last patch. 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
def isRootOrEmptyPackageClass(s: Symbol) = s.isRoot || s.isEmptyPackageClass
def isRootOrEmpty = (this == EmptyPackageClass) || (this == RootClass)
def isEffectiveRoot = isRoot || isEmptyPackageClass
// last one actually not quite identical
def isUnqualified(n: Name) = n match { case nme.ROOT | nme.EMPTY_PACKAGE_NAME => true ; case _ => false }
I was responsible for at least half of these. Now it's only
isEffectiveRoot.
Also, I have always found it warty that we have to specify Nothing
and Any as upper bounds. I gave the TypeBounds companion object a few
obvious methods:
def empty: TypeBounds = apply(NothingClass.tpe, AnyClass.tpe)
def upper(hi: Type): TypeBounds = apply(NothingClass.tpe, hi)
def lower(lo: Type): TypeBounds = apply(lo, AnyClass.tpe)
It's a lovable patch. No review.
|
|
|
|
|
| |
Made NamesDefault more robust to support idempotent compilation.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
re-added @SerialVersionUID(0) to anonymous function classes.
|
|
|
|
|
| |
moved debug println under if(settings.debug.value) condition.
|
| |
|
| |
|
|
|
|
|
| |
No review
|
|
|
|
|
|
|
|
| |
Implemented a (slower) workaround for parallel vectors. Implemented
group by.
No review.
|
|
|
|
|
| |
No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Apparently my flailing attempts to make things faster earned me the
pity of Tiark, who sent this monster patch which he probably dashed
off before the appetizers had been cleared away. All the steak is his
but I threw in a little sizzle so I could feel like a part of things.
It knocks about a bazillion miniseconds off the time spent in implicit
search.
This is the same patch martin already endorsed, give or take several
hundred lines of diff, so I will say no review, even though I know it
will be hard to look away. I trimmed most of the "speculative code"
(that is, the commented out bits) because it's getting awfully busy
along those sidelines. I will preserve the ideas in some more structured
form.
|
|
|
|
|
|
|
|
|
|
|
| |
The shutdown hook installed by jline has made life difficult for sbt
for a while. This changes jline not to install it, and alters the scala
startup script to trap exit and re-enable echo on recognizably unix
platforms. In addition it no longer installs a shutdown hook to flush
the repl history to disk, instead flushing after every line.
Any bash reviewers out there? Unless someone raises a hand, no review.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
// Cannot be created directly; one should always use `singleType'
// for creation. Cannot be created directly; one should always use
// `refinedType' for creation. Cannot be created directly; one should
// always use `typeRef' for creation. (@M: Otherwise hashing breaks)
This involved altering about 15 locations. If there was a rhyme or a
reason as to why those particular places were entitled to ignore the
"always" dictate, I trust it will emerge from some corner now. Until
then, it's nice to see some code following its official marching orders.
Review by odersky.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Fixed a bad interaction between overloading, default parameters and
specialization. Closes #3896, no review.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Disentangled scaladoc and the presentation compiler. Now there are
different flags, forInteractive and forScaladoc, instead of the
overloaded onlyPresentation. While it is unfortunate to have these
flags, I know of no easy way to customize the typer (the behavior they
control is pretty deep into the analyzer). This shaves off around 100MB
of unnecessary docComments from the presentation compiler. review by
odersky, dubochet.
|
|
|
|
|
| |
Towards a replay framework for the presentation compiler
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Fixed infinite loop on call to super from a specialized method. This
happened only on illegal specialized inheritance. Closes #3651, no
review.
|
|
|
|
|
|
| |
since r19547, which was for #1836 but loosened the noose too much.
Closes #4128, review by odersky.
|
|
|
|
|
|
| |
Added some more debugging tools for printing types. Squirrelled it away
in a type debugging trait. No review.
|
|
|
|
|
|
|
|
|
|
|
| |
after each phase, so all the allocations are partitionable by phase
in the profiler. I also changed the name of -Yprofile-resident to
-Yprofile-memory and had it snapshot after the run instead of between
them, so it is usable for regular scalac usage as well.
Added tools/profile_scalac which can be used as a drop-in replacement
which handles some tedious setup. Review by dragos.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
There was a massive 30+ line cut and paste between isPlausiblyCompatible
and normSubType. Since I already painstakingly optimized the former, it
was incredibly depressing to discover an exact copy of the "before" code
pasted into a method later in the same file. I can't begin to convey how
much unnecessary difficulty this sort of thing brings for us. Friends,
romans, countrymen, put down your ctrl-Vs. Review by anyone who might be
tempted to perform similar cutting and pasting in the future.
|
|
|
|
|
|
|
|
|
|
| |
Working my way through popular methods with a microscope looking to
shave off some time. Along the way fighting off various poor software
engineering practices no doubt perpetrated in haste by people who
suffered grave regrets afterward, such as the passing around of
listbuffers to be modified by the callee, and a more egregious one to
follow. No review.
|
|
|
|
|
|
|
| |
Since r22374 isCompatible and isCompatibleArg have been bit-for-bit
identical methods. Deleted isCompatibleArg. Also gave some structure to
the act of disabling implicit search. No review.
|
|
|
|
|
|
|
| |
Clear caseClassOfModuleClass lazily, otherwise we lose information
calculated during the namer phase upon next run triggered by the
presentation compiler. Review by odersky.
|
|
|
|
|
|
| |
Misc uninteresting tidbits to take some weight off overly large patches
in progress. No review.
|