After we move some non-internal things out of scala.reflect.internal
we should go back and improve some deprecation messages (i.e. point
somewhere useful.) No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25099 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
to call scala.sys.error instead. Created convenience functions
in Definitions for getting package objects akin to those for
getting classes and objects. No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25089 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
others in the neighborhood. Avoids calling the expensive
getCanonicalPath in favor of getAbsolutePath: I note that because
it has the potential to change compiler behavior at the borders.
No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25088 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
Eliminated some indirection in flag usage. Made -Xshow-phases print
out more info about flags if -Ydebug is also given. No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25086 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
must really live on the edge given the multiple ways we've busted
it lately. Also some Array/signature and repl tests. No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25084 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
headOption and lastOption) were traversing the collection twice up
to the nonEmpty element, because "if (isEmpty) None else Some(head)"
means calling isEmpty separately from head. I overrode those methods in
TraversableViewLike to avoid the second traversal.
This leaves at least init and tail still in that boat, but they were
getting too involved.
How do I say "review by pool of reviewers", who can help set that up? In
the meantime no review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25083 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
to make possible and then encourage their inlining. Knocked almost
300 more classfiles and 200K off the compiler jar. No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25082 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
For many days I have been haunted by the knowledge that the 20 seconds
I took off quick.comp between r24893 and r24920 all came roaring back
around r24960 for no reason which I could discern. To verify r24960 was
not at fault I had compared it against r24959 more than once, and the
difference was negligible.
It was negligible, that is, until I compared under -optimise, and then
the wheels came off. In fact the differences there are so spectacular
(quick.lib under -optimise goes from 8:50 to 4:26 with this patch,
quick.comp from 8:34 to 6:30) that there must be some major disconnect
between what the benchmark charts are measuring and what I am measuring.
In any case, the charts and I do agree on the direction of the arrow.
For reasons which remain to be determined, this commit was bad on the
nanos. Review by odersky.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25080 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
Mainly, renamed scala.reflect.internal's AbstractFile to AbstractFileType.
I can't see a way around renaming it and it's becoming quite a problem not to
have sbt. I inspected scala-ide and I don't think this is going to break it,
but in general I don't know how plausible it is that we can avoid periodic
breakage given that we have at least three source bases (scala, sbt, scala-ide)
each with multiple branches with interdependencies which are not being
continuously integrated. Review by odersky.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25068 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
clients. Also includes some more why-do-tests-hang bosons for the
particle accelerator in case that doesn't wrap it up. I think it
will though, because now constrained-types is the only one which
failed and it's also the only one which overrides Settings. No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25065 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
This introduces a repl command line option -Yrepl-sync to inhibit
the asynchronous path which makes repl startup seem so snappy.
And then it uses it in the repl tests.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25063 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
types. It appears the production of types like "Foo with Bar" in the
pattern matcher (where the scrutinee is known to be Foo) has been a
major contributor of suboptimal pattern matches. I will also fix it in
the matcher, but it makes sense to catch it in erasure as both a check
on the matcher and because they may come from elsewhere too. Review by
odersky.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25061 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
too hard to see what's going on in there. Until we get hubert's type
debugger with its whiz-bang whizbanginess, we'll have to struggle
along with somewhat prettier ascii. This introduces:
-Yinfer-debug
which tries to print in readable fashion what is happening in the worlds
of inference and implicit search. It should be made a bit more complementary
and less overlappy with -Ytyper-debug. No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25059 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
not inlined. With this commit there are 326 fewer classfiles
generated under -optimise. Use getOrElse with even wilder abandon
than you were previously. No review.
git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25057 5e8d7ff9-d8ef-0310-90f0-a4852d11357a