| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Who knew system was such a popular sentence ending choice. Fixes some
doc comments caught up in the s/// net, no review.
|
|
|
|
|
|
| |
A few bits of java code which use "" + x and can't be helped out by
scala compiler optimizations. No review.
|
|
|
|
|
| |
Reverted to curried invokeDynamic to fix a problem in typers.
|
| |
|
| |
|
|
|
|
|
|
| |
Allow box(unbox) elimination for the Null type, plus testing that
specialization tests do not box too much. review by extempore.
|
| |
|
|
|
|
|
|
| |
Removing code which I believe to be some debugging statements. Causes
infinite loop anyway. Review by odersky
|
| |
|
|
|
|
|
|
|
|
| |
Added specialized test to ant build, and ported old specialized 'run'
tests to check the number of boxings.
No review.
|
|
|
|
|
|
|
|
|
|
| |
Added a new test group - specialized.
Modified partest to add a jar with instrumented classes to classpath when compiling and running tests.
Added a primary version of the instrumented BoxesRuntime, and a script to produce a jar for it.
Added the 'speclib' folder to partest files, which contains the jar with the instrumented classes.
Review by dragos.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Do not redefine the symbol in a class file to prevent spurious errors
in IDE. IDE creates a second copy in owner scope and unlinks it when
finished. Review by odersky
|
|
|
|
|
|
|
| |
This outlaws explicit isInstanceOf tests on value types, which are
nonsense in any case, as long threatened in ticket #1872. Closes #1872,
review by rytz.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with a primitive CONCAT and several opcodes, I'm assuming nobody will
oppose this on principle. Given an expression of the exact form "" + x
(that is, the NPE-immune and much less ugly way to call .toString) we
used to get 4x the bytecode and create an unneeded StringBuilder. Now
this:
0: aload_1
1: invokestatic #20; //Method java/lang/String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
4: areturn
Closes #4160, review by dragos.
|
|
|
|
|
|
|
|
| |
There were some shenanigans in normalize trying to avoid cycles.
Adriaan had recorded an idea about how to avoid them and I tried out
my interpretation of it and it worked. He says it's good to go, so no
review.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
significantly faster. Closes #4006.
And, then I started trying to deal with some fundamental Manifest issues
and give it a little documentation. I left a trail of bloody comments,
for which I solicit review by moors.
|
|
|
|
|
|
| |
Disabled browsing in the empty package, hopefully this will unbock
Eclipse
|
| |
|
|
|
|
|
|
|
|
| |
Some modifications to @elidable: for reasons lost to me now it had a
default value such that annotated methods might be elided even if the
option wasn't given. It now does nothing in that situation. Closes
#4051, #4151, no review.
|
| |
|
|
|
|
|
|
|
|
| |
prejudice and puts the new process code to work instead. There are still
a couple bugs on my short term partest list. If this commit causes some
weird issue which only arises on virtualized windows you can expect to
hear from me next by postcard from st. lucia. No review.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported sbt.Process into trunk, in the guise of package
scala.sys.process. It is largely indistinguishable from the version in
sbt, at least from the outside.
Also, I renamed package system to sys. I wanted to do that from the
beginning and the desire has only grown since then. Sometimes a short
identifier is just critical to usability: with a function like error("")
called from hundreds of places, the difference between system.error and
sys.error is too big. sys.error and sys.exit have good vibes (at least
as good as the vibes can be for functions which error and exit.)
Note: this is just the first cut. I need to check this in to finish
fixing partest. I will be going over it with a comb and writing
documentation which will leave you enchanted, as well as removing other
bits which are now redundant or inferior. No review.
|
|
|
|
|
|
|
|
| |
In r22807 an optimization was added to remove Box(Unbox(x))
combinations. It turns out that without this in place, an expression
like "x".asInstanceOf[Int] will no longer throw an exception. Refined
the optimization. Closes #4148, review by dragos.
|
|
|
|
|
|
| |
Make scala.collection.immutable.Set1, .Set2, Set3, Set4 constructors
private to the collection package. Closes #2845. No review.
|
|
|
|
|
|
| |
Allow reload to be issued inside ask non-interruptibly. Review by
odersky
|
| |
|
|
|
|
|
|
|
|
| |
Pulled some bit level operations into their own file. It's pretty much
impossible to abstract across Int and Long with no penalty, but we
can at least have duplicated code in the same place to minimize the
challenge. No review.
|
|
|
|
|
|
|
|
|
| |
I had closed #2441 as a duplicate of that, but unfortunately #4114 did
not bring #2441 along with it. Then I realized I'm a programmer, not a
helpless trac watcher. As is often the case with thes things, fixing
that revealed a bug in the library. Closes #2441 for real, review by
odersky.
|
| |
|
|
|
|
|
|
|
| |
Renamed a file (I thought I already renamed this: oh that was
util.Replayer, not io.Replayer) so ant doesn't keep recompiling it. No
review.
|
|
|
|
|
|
|
|
|
| |
Moved the presentation compiler thread in its own top-level class. This
allows to collect the presentation compiler instance when the thread is
not GCed, but the compiler should be discarded (for example, after a
shutdown request). Having the thread as an inner class keeps a reference
to the outer class. review by odersky.
|
|
|
|
|
|
|
|
|
|
|
| |
Second try for "Changing the intersectionWitness map to use weak
references for the value. A value may prevent parts of this map from
collecting, since the value may hold a (strong) reference to one of the
keys in the map. review by odersky." This time without higher order
functions.
This updates commit 71bce88e543277bd9afeb23e3e6af2b517b56075.
|
|
|
|
|
|
| |
Made presentation type checker idempotent and removed code in Global
that was needed to work around non-idempotency.
|
|
|
|
|
| |
Re-disabled constant folding for interactive compiler runs. no review.
|
|
|
|
|
|
|
|
| |
Changing the intersectionWitness map to use weak references for the
value. A value may prevent parts of this map from collecting, since
the value may hold a (strong) reference to one of the keys in the map.
review by odersky.
|
|
|
|
|
| |
No review.
|
|
|
|
|
| |
No review.
|
|
|
|
|
| |
No review.
|
|
|
|
|
| |
No review.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A pretty severe bug in the recognition of tail call elimination.
It turns out that Tailcalls will perform "partial elimination" in
situations such as:
@annotation.tailrec final def f(x: Int): Int = f(f(x))
The outer call to f1 becomes a jump, but the inner call remains as
it was. I implemented @tailrec under the impression that if the
optimization had taken place, it had gone all the way. So this is now
fixed with a direct examination of the rewritten tree.
While I was in there I threw in some improved error reporting: the error
positioning is now on the call which is not in tail position rather than
the method declaration.
Closes #4135, no review.
|
|
|
|
|
|
|
|
|
|
|
| |
scala> implicitly[CanBuildFrom[String, Int, List[List[Int]]]]
<console>:10: error: Cannot construct a collection of type
List[List[Int]] with elements of type Int based on a collection of type
List[List[Int]]. implicitly[CanBuildFrom[String, Int, List[List[Int]]]]
^
No review.
|
|
|
|
|
|
|
| |
Fixed a mis-deprecation step where remove was replaced with filterNot on
a mutable collection. Thanks to richard emberson for finding it. I used
what git fu I have searching for others, but no dice. No review.
|