… the command ends with a space The :load command now tries to be smart by detecting the presence of trailing spaces that might be insignificant. On certain file systems, files with trailing whitespaces are permitted which is why we don't naievely trim the argument.
…ntextImpl Adds test to scala-concurrent-tck
... instead of `osName contains "OS X"` See http://mail.openjdk.java.net/pipermail/macosx-port-dev/2012-November/005148.html for the reason why we don't follow developer.apple.com/library/mac/#technotes/tn2002/tn2110.
It returned wrong values because it used the java.vendor property instead of os.name, as specified in developer.apple.com/library/mac/#technotes/tn2002/tn2110.
... on Java 6 and above, but keep honoring the actors.enableForkJoin system property. Like SI-7236 and SI-7237, the logic in scala.actors.scheduler.ThreadPoolConfig.useForkJoin (which resulted in a different thread pool implementation being chosen) was causing random hangs in the test concurrent-stream.scala when running on Avian.
... on Java 6 and above. ForkJoinTaskSupport works on Hotspot, Avian and J9, while ThreadPoolTaskSupport causes the test test/files/scalacheck/parallel-collections to reliably hang on all three. We keep ThreadPoolTaskSupport around to keep the hope alive that we still have a glimpse of 1.5 support.
More interesting to test than it was to fix. The soft reference is now dereferenced once, the locally stored underlying value ascertained to be non-null, and the remainder of the references to the value use the local var. The enclosed test reliably NPEs without this patch.
…internal execution context of Future
We're missing a continuations dependency when we try to build reflect in eclipse which causes things to die horribly. This commit adds an eclipse project for the library portion of continuations, makes projects that depend on the scala-library also depend on continuations-library, and adds another bullet to the eclipse readme to turn on the continuations plugin.
…erence Make the continuations plugin flag specific to the continuations library. Remove the documentation about adding the continuation plugin from the eclipse README.md. One consequence of this change is that if a programmer has prefs for the continuations eclipse project then there will be a merge conflict. That's unavoidable without having a more sophisticated way to build the eclipse projects.
Moves the logic for the condition on requiring an accessor into a local method with a match to make thing cleaner. Also determines the mix type using a pattern match that logs but does not fail if the symbol isn't of the expected type. Finally fixes a typo in an assertion in GenICode. review @paulp
The main change here is to add another case for generating super accessors - the case in X.super[Y].blah when X isn't the current class and Y is a class. The change is deliberately kept as minimal as possible to reduce the chance of breaking something in the 2.9.x line. Additionally GenICode now detects the case when we're trying to emit byte code that would be nonsense and warns about it. That can safely be made an assert for 2.11. Finally a related assert in RefChecks is beefed up to output a bit more useful information.
Other than adding the new APIs, a few changes are required: 1. Build. The Java sources in "scala/concurrent/impl" need forkjoin.jar on the classpath. Thus, I replaced the "classpath" attribute in the respective `javac` ant tasks (locker.lib, quick.lib, and strap.lib) with a "classpathref" attribute pointing to a classpath which includes also the forkjoin.jar. In the locker.lib target, exclude the duration package and everything that depends on it. In the docs.lib target, enable dependent method types, since they're used in the `scala.concurrent.duration` package. Also, the library is built with -Ydependent-method-types (for both quick & strap -- use consistent options for stability) 2. Dependent method types and SI-5958. The `duration` package relies on dependent method types, and requires a backport of SI-5958.
A backport of 61cc8ff The original fix (above) includes a test case that relies on scala.util.Success which as of this writing isn't there in 2.9.x. The test case requires a previously compiled classfile (where bytecode for an @inline method with exception handlers can be found). Ticket SI-6188 contains a self-contained example (not dependent on scala.util.Success) with _1 and _2 .scala files . Alternatively that test case could be used instead. The backported fix (this commit) is safe in the sense that it prevents methods read by ICodeReader containing exception handlers from being inlined, even if marked @inline. Alternatively, the same effect can be achieved by annotating a method as @noinline.
before, PickledFlags & EXISTENTIAL == 0, so that an existential symbol would lose the EXISTENTIAL bit when pickled, causing spurious incremental recompiles, as pickled information and type-checking-from-source-based information differed pickling this additional bit should be a compatible change, as older versions (pre-2.9.3) will simply mask out the extra flag bits pickled as of now (2.9.3) so that their behavior is not affected -- newer versions will see more flags, which might cause regressions, but it's also the only way to fix SI-6692 this obviates the need to set the existential flag when unpickling an existential type's params this is the smallest backport of a9b85db and 3e2c31f that I could think of as 2.9 is in maintenance mode, I don't want to invest in testing infrastructure to test the pickler, however, the fix is tested by the incremental compiler test 'inc-pickled-existential' in sbt