summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Two annoying REPL things made less annoying:Paul Phillips2010-11-174-5/+126
| | | | | | | | | * ctrl-C will no longer kill the repl unless you hit it again * ctrl-Z will no longer make the repl useless because of jline In the service of the first I wrote signal handling code, which we can put to use in other ways as well. No review.
* Some profiling infrastructure.Paul Phillips2010-11-166-13/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | I avoided creating any dependency on yourkit. In addition, there was no way to give arguments to the JVM without losing the ones defined in ANT_OPTS, which has been a massive pain for a while. So there is now "jvm.opts" which is simply appended to ANT_OPTS, e.g. % ant -Djvm.opts=-verbose [echo] Forking with JVM opts: -Xms1536M -Xmx2g -Xss1M -XX:MaxPermSize=192M -XX:+UseParallelGC -verbose There is a minimal stub defining a profiler interface: scala.tools.util.Profiling Then the yourkit wrapper implements that interface. Once your locker has been rebuilt once, you can do this: ant yourkit.run And it will build quick.lib/comp with profiling enabled, assuming it can find the necessary files. See the yourkit.init target for values to change: or ant -Dyourkit.home=/path/to/it might be enough. Review by dragos.
* Correct wrong comment. No review.Eugene Vigdorchik2010-11-161-1/+1
|
* Added and corrected existing comments.Iulian Dragos2010-11-162-1/+4
|
* Switched from ignoring nonexistent directory to...Paul Phillips2010-11-161-1/+4
| | | | | | Switched from ignoring nonexistent directory to creating an empty one to accomodate old underpowered versions of ant. No review.
* ant, build.xml and classpath issues.Paul Phillips2010-11-163-41/+47
| | | | | | | | | | | | | | been ignoring their painstakingly set classpaths and using whatever they can find in the vicinity of the scala script, which works OK for pack but not so well for quick. I also added a build.xml feature so you can drop jars into a dir and have them automatically used everywhere. The directory is lib/extra. Pro tip: add lib/extra to .gitignore and put jars like yjp-controller-api-redist.jar in there. Closes #3706, no review.
* Cosmetic changes to previous fix for #3918.Iulian Dragos2010-11-151-2/+2
|
* Clear the undoLog for types in resetTyper.Iulian Dragos2010-11-152-2/+3
| | | | | | a memory leak when running scalac in resident mode (including the presentation compiler and build manager). no review.
* Changed javasigs test to use new javaccmd syste...Philipp Haller2010-11-151-1/+1
| | | | | Changed javasigs test to use new javaccmd system property.
* partest sets javaccmd system property when runn...Philipp Haller2010-11-151-7/+7
| | | | | | partest sets javaccmd system property when running tests. Review by dragos.
* Revert unused code.Eugene Vigdorchik2010-11-151-1/+1
|
* adapt not to confuse types and stable terms.Eugene Vigdorchik2010-11-151-1/+1
|
* Cleaned up some hangover from equality struggle...Paul Phillips2010-11-153-8/+15
| | | | | | Cleaned up some hangover from equality struggles of yore. Deprecated now pointless vals. Close #3998, no review.
* Moved failing test to pending until I figure ou...Iulian Dragos2010-11-142-0/+0
| | | | | | Moved failing test to pending until I figure out how hudson is running on chara
* Fixed -Xexperimental and other settings so that...Paul Phillips2010-11-141-3/+3
| | | | | | Fixed -Xexperimental and other settings so that setting them false will falsify the associated options rather than truify them. No review.
* Merge branch 'master' of /scala/trunkPaul Phillips2010-11-141-2/+6
|
* Made the additions to Predef described in #3762.Paul Phillips2010-11-142-22/+33
| | | | | reminding me or someone to deprecate in 2.9. No review.
* Use partest's java and javac command in the jav...Iulian Dragos2010-11-131-9/+2
| | | | | Use partest's java and javac command in the javasigs test. no review.
* Fix InnerClasses attribute: anonymous classes d...Iulian Dragos2010-11-138-21/+466
| | | | | | | | Fix InnerClasses attribute: anonymous classes don't have an outer name. EnclosingMethod is correctly generated. Fixed isAnonymousClass definition. Updated test that depends on anonymous inner class names. Closes (again) #3249, references #2749. review by odersky,extempore.
* Fixed erasure.intersectionDominator.Iulian Dragos2010-11-131-1/+2
| | | | | | is loaded before testing for 'isTrait'. closes #3918, review by odersky,extempore.
* Another exciting development in the world of -Y...Paul Phillips2010-11-1318-55/+571
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Another exciting development in the world of -Y options which I and three other people will use. Today's is -Yrich-exceptions. Use it like so: SOURCEPATH=/path/to/src scalac -Yrich-exceptions a.scala In the repl, -Yrich-exceptions will cause lastException to be bound to an Exceptional instead of old rusty Throwable. That spins up new powers: scala> Nil.head [Nil.head] (List.scala:389) (access lastException for the full trace) scala> lastException.show /* The repl internal portion of the stack trace is elided. */ [Nil.head] 386: override def isEmpty = true 387: override def head: Nothing = 388: throw new NoSuchElementException("head of empty list") *389: override def tail: List[Nothing] = 390: throw new UnsupportedOperationException("tail of empty list") 391: // Removal of equals method here might lead to an infinite recursion similar to IntMap.equals. 392: override def equals(that: Any) = that match { [line0.<init>] (<console>:6) [line0.<clinit>] (<console>:-1) Also try "lastException.showTable" but this is getting a little long for more excerpt. No review.
* Generate EnclosingMethod classfile attributes. Iulian Dragos2010-11-127-5/+64
| | | | | | | | This should fix java signatures when they refer to method type parameters. I unrolled Adriaans previous fix for #3249, as this one is more general. Closes #3249, review by moors.
* A revival of r21442, which I had reverted based...Paul Phillips2010-11-122-63/+80
| | | | | | A revival of r21442, which I had reverted based on the mistaken belief it was causing mysterious trunk issues of the day. No review.
* Half of an implementation of sealedness for jav...Paul Phillips2010-11-125-5/+39
| | | | | | | | | Half of an implementation of sealedness for java enums. Since it's only half it's behind -Xexperimental, but it works like a charm for the half where it works (that being compiling against bytecode.) Need input on how to approach the source half. References ticket #2442. Review by moors.
* A slight performance improvement for parallel s...Aleksandar Pokopec2010-11-111-25/+25
| | | | | A slight performance improvement for parallel sets. No review.
* Solved a performance problem in parallel hash t...Aleksandar Pokopec2010-11-112-12/+26
| | | | | | | Solved a performance problem in parallel hash table sets. No review.
* A test case having some issues. No review.Paul Phillips2010-11-112-3/+4
|
* Some more work on options related to showing co...Paul Phillips2010-11-119-120/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some more work on options related to showing compiler structures during compilation. The pickler knew more than was healthy about things like compiler settings, so I let the pickler worry about pickling and moved that logic somewhere closer to the surface. Some convenience oriented tweaks to command line phase parsing. The end result is as follows (some output trimmed for brevity.) // dippy.scala class Dippy { def f[T <: Dippy](x: T) = (x, x) object DingusDippy extends util.Random { } } // className@phaseString should be reliably unambiguous % scalac -Xshow-class Dippy@typer,erasure,jvm dippy.scala <<-- class Dippy after phase 'typer' -->> Members (excluding Any/AnyRef unless overridden): final object DingusDippy extends object Dippy.this.DingusDippy def f[T <: Dippy](x: T): (T, T) <<-- class Dippy after phase 'erasure' -->> Members (excluding Any/AnyRef unless overridden): private lazy var DingusDippy$module: object Dippy#DingusDippy lazy val DingusDippy(): object Dippy#DingusDippy def f(x: Dippy): Tuple2 <<-- class Dippy after phase 'jvm' -->> Members (excluding Any/AnyRef unless overridden): protected var bitmap$0: Int private lazy var DingusDippy$module: object Dippy$DingusDippy lazy val DingusDippy(): object Dippy$DingusDippy def f(x: Dippy): Tuple2 No review.
* Some minor fixes found by findbugs. No review.Paul Phillips2010-11-113-2/+4
|
* Unsuppressed generic signatures for members wit...Paul Phillips2010-11-115-5/+60
| | | | | | Unsuppressed generic signatures for members with expanded names. Closes #3897, review by dragos.
* Introduces "Origins" for all your superhero bac...Paul Phillips2010-11-116-49/+169
| | | | | | | | Introduces "Origins" for all your superhero backstory needs. It logs where all the calls are coming from: that's all for the moment. It's explained in the comments and test case, so I'm sure you don't need it all repeated here. No review.
* Benchmarking parallel sets.Aleksandar Pokopec2010-11-105-16/+45
| | | | | No review.
* Added a benchmark for mutable hash sets.Aleksandar Pokopec2010-11-103-6/+146
| | | | | No review.
* Fixes #3878. No review.Aleksandar Pokopec2010-11-103-1/+11
|
* To fix the failing nightly.Aleksandar Pokopec2010-11-101-0/+4
| | | | | No review.
* protected[this] members should be accessible to...Paul Phillips2010-11-104-7/+50
| | | | | | protected[this] members should be accessible to super.x calls. Closes #464, review by odersky.
* Closes #3980. Review by dragos.Hubert Plociniczak2010-11-093-6/+35
|
* While investigating the cause of #3984, discove...Paul Phillips2010-11-092-5/+13
| | | | | | | | | | | | | | | While investigating the cause of #3984, discovered that set hashcodes were being calculated like: elems map (_.hashCode) sum This looks totally correct, except that because of set+map semantics it drops all the duplicate hashcodes and therefore calculates the wrong sum anytime there are unequal elements with equal hashcodes. If we're married to the set+map semantics (and I don't know what could be done about it) I had better get a proper -Xlint going because this is one of those traps which shoots bees out of its mouth. No review.
* Iteration bug in TrieIterator.Paul Phillips2010-11-092-2/+23
|
* Restored the stack traces I'd accidentally smot...Paul Phillips2010-11-084-34/+47
| | | | | | Restored the stack traces I'd accidentally smothered in r23426, and cleaned up ObjectRunner/ScriptRunner a bit. Closes #3978, no review.
* Deprecation patrol.Paul Phillips2010-11-0817-47/+119
| | | | | | | | | the same issues as JavaConversions with respect to overloading implicit methods making them inaccessible to view bounds. Fixed JavaConverters. Added a warning for when people overload parameterized implicits: in almost all cases the name is irrelevant so there's little point in unwittingly suffering degraded functionality. No review.
* Fixed crasher with @elidable on parameterized m...Paul Phillips2010-11-082-8/+19
| | | | | | Fixed crasher with @elidable on parameterized methods. Closes #3981, no review.
* This is work on -Ycheck:icode.Paul Phillips2010-11-0820-406/+492
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | distribution can now be built with that option, with or without optimization, and almost all tests cases can. (Those which can't are due to different -Ycheck: issues.) Major changes of interest are as follows: * LOAD_EXCEPTION and THROW are parameterized on the throwable symbol. * Does not squash all traits down to AnyRef, but instead deals with issues as they arise. By observation the cases where one needs a "Foo with Product" to manifest as both a "Foo" and a "Product" at different places are quite rare, so we need not throw out the whole baby. * Exception handlers now have positions. * The remaining checker failures removed, such as CALL_METHOD wanting to pop a value off the stack after calling a constructor. * Many multiply defined values such as REFERENCE(ObjectClass) put in one place (ICodes.scala) and reused. * -Ycheck:icode output (if also given -Ydebug) worthy of Michelangelo. Here is a class and the -Ycheck:icode -Ydebug output for f's block. class A { def f(x: Int, y: String) = try println(x + y.length) catch { case x: NullPointerException => () } } ** Checking Block 4 [S: 3, 2] [P: 1] <closed> 1-> REF(singleton class Predef) 3 + LOAD_MODULE object Predef 2-> INT 3 + LOAD_LOCAL(value x) 3-> REF(class String) 3 + LOAD_LOCAL(value y) 2<- REF(class String) 3 - CALL_METHOD java.lang.String.length (dynamic) 3-> INT 3 + CALL_METHOD java.lang.String.length (dynamic) 2<- INT 3 - CALL_PRIMITIVE(Arithmetic(ADD,INT)) 1<- INT 3 - """ 2-> INT 3 + CALL_PRIMITIVE(Arithmetic(ADD,INT)) 1<- INT 3 - BOX INT 2-> REF(class Integer) 3 + BOX INT 1<- REF(class Integer) 3 - CALL_METHOD scala.Predef.println (dynamic) 0<- REF(singleton class Predef) 3 - CALL_METHOD scala.Predef.println (dynamic) Review by dragos (I marked the specific spots I thought of interest with "PP to ID" which makes it sound like I'm talking to my primal self. Next week on programmer theater: "PP to SUPEREGO.")
* Modified the lub calculation in TypeKinds to av...Paul Phillips2010-11-082-15/+42
| | | | | | | | | | | Modified the lub calculation in TypeKinds to avoid the icode checker failures described in ticket #3872. This does not alter the compiler's lub calculation as I'd hoped because I could not figure out how to accomplish this without having unintended consequences. I think that either Symbol.isLess could be adjusted, or perhaps the implementation of spanningTypes, or other places... but it eluded me and I defer to the type wizards. No review.
* A bit of -Xshow-class / -Xshow-object which did...Paul Phillips2010-11-083-15/+128
| | | | | | | | | | | | A bit of -Xshow-class / -Xshow-object which didn't quite make the Global patch. Now type selections should do the right thing, e.g. scalac -Xshow-class Global#Run src/compiler/scala/tools/nsc/Global.scala will show you interesting things about Run. Or see the test case for even more thrills. No review.
* Proper fix for adaptToNewRun for toplevel class...Eugene Vigdorchik2010-11-081-3/+5
| | | | | | Proper fix for adaptToNewRun for toplevel classes; if the compiler is running after flatten, then nothing to adapt
* [scaladoc] Fixes build. No review.Gilles Dubochet2010-11-082-58/+71
|
* Disabled a test failing on server.Aleksandar Pokopec2010-11-081-1/+1
| | | | | No review
* A test output changed. No review.Aleksandar Pokopec2010-11-081-2/+2
|
* Added size maps to flat hash tables.Aleksandar Pokopec2010-11-0826-168/+1364
| | | | | | | | | | | Added parallel mutable hash sets. Implemented parallel mutable hash set iterators. Implemented parallel mutable hash set combiners. Factored out unrolled linked lists into a separate class UnrolledBuffer, added tests. Added parallel mutable hash set tests, and debugged hashsets. No review.