summaryrefslogtreecommitdiff
path: root/test/files/jvm
Commit message (Collapse)AuthorAgeFilesLines
* Add Bytecode test (ASM-based) to partest.Grzegorz Kossakowski2013-01-293-0/+42
| | | | | | | | | | | | | | | | | | | This commit introduces a new kind of test `Bytecode` that allows one to inspect bytecode generated for given piece of Scala code. The bytecode inspection is achieved by inspection of ASM trees. See the included example for details. NOTE: This commit does not introduce a new category of pratest tests. Bytecode tests should be run in `jvm` category of partest tests. Specific list of changes: * Add BytecodeTest that contains common utilities to partest * Add asm to classpath when compiling partest. That's not a new dependency as it's being already done for javac task we were running while compiling partest. * Add an example test that shows how to count null checks in given method.
* Fix SI-6932 by enabling linearization of callback execution for the ↵Viktor Klang2013-01-211-0/+7
| | | | internal execution context of Future
* Backport of SI-6846.Jason Zaugg2013-01-082-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit 55806cc0e6177820c12a35a18b4f2a12dc07bb39 Author: Paul Phillips <paulp@improving.org> Date: Wed Dec 19 07:32:19 2012 -0800 SI-6846, regression in type constructor inference. In 658ba1b4e6 some inference was gained and some was lost. In this commit we regain what was lost and gain even more. Dealiasing and widening should be fully handled now, as illustrated by the test case. (cherry picked from commit dbebcd509e4013ce02655a2687b27d0967b3650e) commit e6ef58447d0f4ef6de956fcc03ee283bb9028c02 Author: Paul Phillips <paulp@improving.org> Date: Fri Dec 21 15:11:29 2012 -0800 Cleaning up type alias usage. I determined that many if not most of the calls to .normalize have no intent beyond dealiasing the type. In light of this I went call site to call site knocking on doors and asking why exactly they were calling any of .normalize .widen.normalize .normalize.widen and if I didn't like their answers they found themselves introduced to 'dropAliasesAndSingleTypes', the recursive widener and dealiaser which I concluded is necessary after all. Discovered that the object called 'deAlias' actually depends upon calling 'normalize', not 'dealias'. Decided this was sufficient cause to rename it to 'normalizeAliases'. Created dealiasWiden and dealiasWidenChain. Dropped dropAliasesAndSingleTypes in favor of methods on Type alongside dealias and widen (Type#dealiasWiden). These should reduce the number of "hey, the type alias doesn't work" bugs. (cherry picked from commit 3bf51189f979eb0dd41744ca844fd12dfdaa0dee) Conflicts: src/compiler/scala/tools/nsc/interpreter/CompletionOutput.scala commit c1d8803cea1523f458730103386d8e14324a9446 Author: Paul Phillips <paulp@improving.org> Date: Sat Dec 22 08:13:48 2012 -0800 Shored up a hidden dealiasing dependency. Like the comment says: // This way typedNew always returns a dealiased type. This // used to happen by accident for instantiations without type // arguments due to ad hoc code in typedTypeConstructor, and // annotations depended on it (to the extent that they worked, // which they did not when given a parameterized type alias // which dealiased to an annotation.) typedTypeConstructor // dealiases nothing now, but it makes sense for a "new" to // always be given a dealiased type. PS: Simply running the test suite is becoming more difficult all the time. Running "ant test" includes time consuming activities of niche interest such as all the osgi tests, but test.suite manages to miss the continuations tests. (cherry picked from commit 422f461578ae0547181afe6d2c0c52ea1071d37b) commit da4748502792b260161baa10939554564c488051 Author: Paul Phillips <paulp@improving.org> Date: Fri Dec 21 12:39:02 2012 -0800 Fix and simplify typedTypeConstructor. Investigating the useful output of devWarning (-Xdev people, it's good for you) led back to this comment: "normalize to get rid of type aliases" You may know that this is not all the normalizing does. Normalizing also turns TypeRefs with unapplied arguments (type constructors) into PolyTypes. That means that when typedParentType would call typedTypeConstructor it would find its parent had morphed into a PolyType. Not that it noticed; it would blithely continue and unwittingly discard the type arguments by way of appliedType (which smoothly logged the incident, thank you appliedType.) The simplification of typedTypeConstructor: There was a whole complicated special treatment of AnyRef here which appears to have become unnecessary. Removed special treatment and lit a candle for regularity. Updated lots of tests regarding newly not-so-special AnyRef. (cherry picked from commit 394cc426c1ff1da53146679b4e2995ece52a133e) commit 1f3c77bacb2fbb3ba9e4ad0a8a733e0f9263b234 Author: Paul Phillips <paulp@improving.org> Date: Fri Dec 21 15:06:10 2012 -0800 Removed dead implementation. Another "attractive nuisance" burning off time until I realized it was commented out. (cherry picked from commit ed40f5cbdf35d09b02898e9c0950b9bd34c1f858)
* SI-4664 [Make scala.util.Random Serializable] Add test caseJean-Remi Desjardins2012-12-041-0/+15
|
* Removing actors-migration from main repository so it can live on elsewhere.Josh Suereth2012-11-012-35/+0
| | | | | | | * Removes actors-migration hooks from partest * Removes actors-migration code * removes actors-migration tests * removes actors-migration distribution packaging.
* Merge branch '2.10.0-wip' of github.com:scala/scala into 2.10.0-wipJosh Suereth2012-11-012-0/+35
|\
| * SI-6581 fixed by inlining `Actor.self`.Vojin Jovanovic2012-10-302-0/+35
| | | | | | | | | | | | This avoids the necessary type cast that was preventing leakage of internal migration classes. Review by @phaller
* | Removing actors-migration from main repository so it can live on elsewhere.Josh Suereth2012-10-3026-1579/+0
|/ | | | | | | * Removes actors-migration hooks from partest * Removes actors-migration code * removes actors-migration tests * removes actors-migration distribution packaging.
* avoid single-art assert where harmful in duration-tckRoland2012-10-181-4/+7
|
* SI-6442 - Add ActorDSL object for actor migration kitphaller2012-09-2911-78/+68
| | | | Removes MigrationSystem, since ActorDSL replaces it.
* Additional Actor Migration Tests.Vojin Jovanovic2012-09-2510-0/+656
| | | | Review by @phaller.
* Support for scala.concurrent for the ActorRef.Vojin Jovanovic2012-09-258-39/+74
| | | | Review by @phaller
* SI-6305 fix.Vojin Jovanovic2012-09-255-7/+12
|
* Merge remote-tracking branch 'paulp/topic/gitattributes' into 2.10.xPaul Phillips2012-09-202-128/+128
|\
| * Normalized line endings.Paul Phillips2012-09-202-128/+128
| | | | | | | | | | | | This brings all the files into line with the .gitattributes settings, which should henceforth be automatically maintained by git.
* | Merge pull request #1339 from rkuhn/wip-6389-finite-duration-multJosh Suereth2012-09-2012-26/+34
|\ \ | |/ |/| enable integer multiplication/divison on FiniteDuration, see SI-6389
| * some small remaining fixesRoland2012-09-201-1/+4
| | | | | | | | | | | | | | | | - added test for “span” and “fromNow” qualifiers - make those actually work even when there is an expected type - add ScalaDoc to them - verify (and fix) conversion Deadline -> FiniteDuration - also make Int * Duration => FiniteDuration work (and test it)
| * Adjustments to scala.concurrent.duration.Paul Phillips2012-09-191-10/+9
| | | | | | | | | | | | | | | | More use of implicit classes and value classes; aliased units to make importing TimeUnit and TimeUnit._ unnecessary; placed some classes in their own files because "the unit of compilation is the file" and we shouldn't bundle more than necessary; fixed some examples.
| * move Duration (incl. DSL) into scala.concurrent.duration packageRoland2012-09-1912-15/+14
| | | | | | | | | | | | | | | | | | so that the full package can be imported naturally: import scala.concurrent.duration._ will give you all the types (Duration, FiniteDuration, Deadline) and the DSL for constructing these.
| * enable integer multiplication/divison on FiniteDuration, see SI-6389Roland2012-09-181-1/+8
| | | | | | | | | | | | | | | | | | - without this "2.seconds * 2" will not return FiniteDuration but Duration - added test case verifying this behavior - matches normal arithmetics: integers throw on div-by-zero while doubles yield infinity; extended here to include overflow protection on integer multiplication
* | Merge pull request #1298 from pavelpavlov/SI-5767Josh Suereth2012-09-184-4/+92
|\ \ | |/ |/| SI-5767 fix + protecting public FlatHashMap API
| * pull request feedbackPavel Pavlov2012-09-184-4/+92
| |
* | Merge remote-tracking branch 'origin/2.10.x' into fix-duration-issues-RKRoland2012-09-121-1/+28
|\ \
| * | improve docs and Promise implRoland2012-09-111-8/+1
| | | | | | | | | | | | | | | | | | | | | - scaladoc the exceptions thrown by Await.* and Awaitable.* - move intercept[Exception] into partest’s TestUtil object - improve Promise.tryAwait implementation following Viktor’s comments and make use of Deadline to avoid calling System.nanoTime too often
| * | fix usage of Duration in Promise implRoland2012-09-101-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | - correctly treat MinusInf and Undefined - don't toMillis in the timeout message (could be MinusInf) - also notice that Inf did not actually wait unbounded - and further notice that tryAwait swallows InterruptedException instead of bailing out early => changed to do so and added throws annotation - also removed some unused imports of Duration
* | | two more minor cleanups to DurationRoland2012-09-111-6/+1
| | | | | | | | | | | | | | | - copy partest TestUtil.intercept change from PR 1279 branch - add comment on non-obvious match cases
* | | fix some one more issue in DurationRoland2012-09-071-6/+12
| | | | | | | | | | | | | | | | | | | | | - Inf / Zero == Inf - add some more missing test cases - clarify magic constant - move exception descriptions into proper @throws docs
* | | second round of Duration cleanupRoland2012-09-071-79/+157
| | | | | | | | | | | | | | | | | | | | | | | | - make Duration behave consistent with Double's non-finite semantics - add ScalaDoc - add complete test suite - change overflow protection impl after review comments - clean up code
* | | several fixes to scala.concurrent.util.DurationRoland2012-09-053-24/+141
|/ / | | | | | | | | | | | | | | | | | | | | - add test cases (migrated from Akka sources) - add overflow checking (will throw IllegalArgumentException instead of giving wrong results) - make string parsing more precise when giving >100days in nanoseconds - make method signatures more precise in retaining FiniteDuration throughout calculations - fix mul/div of infinities by negative number - add Ordering for Deadline (was accidentally left out earlier)
* | Removing duplication from Duration.Paul Phillips2012-09-042-0/+400
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I don't know what good it is to have code review if we are checking in code like this. We must raise the bar, people. When the justification for code being in the standard library is borderline at best - as it is here - then the code must be of exceptional quality. This code is not of exceptional quality. Mostly these are not behavioral changes, but: - I removed finite_? as it is a gratuitous deviation from every isXXX method in the world. This isn't ruby. - I removed all the regexps, which only made things complicated - I removed all the unnecessary casts, which is to say, all of them - I made more things final, sealed, and private - The unapply structure was all wrong; returning Option[Duration] on the string unapply meant you'd have to say case Duration(Duration(x, y)) => ... So I fixed apply and unapply to be symmetric. - And I removed the "parse" method, since it was doing what apply is supposed to do. There's a test case to exercise accessing it from java, which also reveals what I hope are bugs. Thanks to viktor klang for DurationConversions.
* | Merge pull request #1197 from scalamacros/topic/kindEugene Burmako2012-08-291-1/+1
|\ \ | | | | | | removes Symbol.kind and Type.kind
| * | removes Symbol.kind and Type.kindEugene Burmako2012-08-261-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | use Universe.showRaw instead: scala> import scala.reflect.runtime.{universe => ru} import scala.reflect.runtime.{universe=>ru} scala> ru.showRaw(typeOf[Int]) res0: String = TypeRef(ThisType(scala), scala.Int, List()) scala> ru.showRaw(typeOf[Int].typeSymbol, printKinds = true) res1: String = scala.Int#CLS
* / Add missing tests for SI-6190Paolo Giarrusso2012-08-251-1/+13
|/ | | | | This was silently fixed in commit 3cb0e784a05db7d0b542cec9bf4c5fbf3772a6cf but no test was added.
* Merge pull request #1056 from heathermiller/try-based-futuresAdriaan Moors2012-08-086-227/+224
|\ | | | | Bases futures on Try instead of Either
| * Fix test for ExecutionContext.preparephaller2012-08-081-1/+1
| |
| * Doc fix on exec ctx prepare method, fix to testsHeather Miller2012-08-082-2/+3
| |
| * Added tests, removal of unnecessary methods, fixes prepareHeather Miller2012-08-072-6/+20
| |
| * Merge branch 'try-based-futures' of https://github.com/heathermiller/scala ↵Heather Miller2012-08-051-0/+61
| |\ | | | | | | | | | into try-based-futures
| | * SI-6185 - add "prepare" hook to ExecutionContextphaller2012-08-051-0/+61
| | | | | | | | | | | | | | | Enables important abstractions to be built on top of futures, such as Twitter's "Local" for handling data local to a callback chain.
| * | Temporarily skips failing test due to optimizer bug SI-6188Heather Miller2012-08-051-5/+5
| |/ | | | | | | Also swaps the arguments to method transform on Try, so as to mirror transform on scala.concurrent.Future.
| * Basing Futures on Try instead of EitherHeather Miller2012-08-046-227/+148
| |
* | Restored :warnings to working order.Paul Phillips2012-08-061-371/+370
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | As seen here. scala> class A { @deprecated("foo") def a = 1 } warning: there were 1 deprecation warnings; re-run with -deprecation for details defined class A scala> :warnings <console>:7: warning: @deprecated now takes two arguments; see the scaladoc. class A { @deprecated("foo") def a = 1 } ^ scala> val x = 5 toString warning: there were 1 feature warnings; re-run with -feature for details x: String = 5 scala> :warnings <console>:7: warning: postfix operator toString should be enabled by making the implicit value language.postfixOps visible. This can be achieved by adding the import clause 'import language.postfixOps' or by setting the compiler option -language:postfixOps. See the Scala docs for value scala.language.postfixOps for a discussion why the feature should be explicitly enabled. val x = 5 toString ^
* Fixes SI-6172.Hubert Plociniczak2012-08-021-0/+3005
| | | | | All the credit for fixing magical constants in the encoding algorithm goes to @magarciaEPFL. This time provided a test case that exercises GenASM.
* SIP-14 - Fix critical Java compatibility issue in scala.concurrent.Awaitphaller2012-07-201-1/+10
| | | | Patch contributed by @viktorklang
* Critical bugfixes/leak fixes/API corrections + ScalaDoc for SIP-14Viktor Klang2012-07-193-16/+19
|
* Merge pull request #856 from havocp/sip14-execution-changesAdriaan Moors2012-07-104-112/+233
|\ | | | | Collection of updates to SIP-14 (scala.concurrent)
| * Collection of updates to SIP-14 (scala.concurrent)Havoc Pennington2012-07-094-112/+233
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Developed by Viktor Klang and Havoc Pennington - add Promise.isCompleted - add Future.successful and Future.failed - add ExecutionContextExecutor and ExecutionContextExecutorService for Java interop - remove defaultExecutionContext as default parameter value from promise and future - add ExecutionContext.Implicits.global which must be explicitly imported, rather than the previous always-available value for the implicit EC - remove currentExecutionContext, since it could create bugs by being out of sync with the implicit ExecutionContext - remove Future task batching (_taskStack) and Future.releaseStack This optimization should instead be implemented either in a specific thread pool or in a specific ExecutionContext. Some pools or ExecutionContexts may not want or need it. In this patch, the defaultExecutionContext does not keep the batching optimization. Whether it should have it should perhaps be determined through benchmarking. - move internalBlockingCall to BlockContext and remove currentExecutionContext In this patch, BlockContext must be implemented by Thread.currentThread, so the thread pool is the only place you can add custom hooks to be run when blocking. We implement BlockContext for the default ForkJoinWorkerThread in terms of ForkJoinPool.ManagedBlocker. - add public BlockContext.current and BlockContext.withBlockContext These allow an ExecutionContext or other code to override the BlockContext for the current thread. With this API, the BlockContext is customizable without creating a new pool of threads. BlockContext.current is needed to obtain the previous BlockContext before you push, so you can "chain up" to it if desired. BlockContext.withBlockContext is used to override the context for a given piece of code. - move isFutureThrowable into impl.Future - add implicitNotFound to ExecutionContext - remove default global EC from future {} and promise {} - add ExecutionContext.global for explicit use of the global default EC, replaces defaultExecutionContext - add a timeout to scala-concurrent-tck tests that block on SyncVar (so tests time out rather than hang) - insert blocking{} calls into concurrent tck to fix deadlocking - add NonFatal.apply and tests for NonFatal - add OnCompleteRunnable marker trait This would allow an ExecutionContext to distinguish a Runnable originating from Future.onComplete (all callbacks on Future end up going through onComplete). - rename ListenerRunnable to CallbackRunnable and use for KeptPromise too Just adds some clarity and consistency.
* | Removing the actor migration undeterministic test.Vojin Jovanovic2012-07-091-188/+0
|/
* SI-5981, SI-5979, SI-5973 Closed. Maintenance to Try.Heather Miller2012-07-052-78/+328
|
* reify no longer dealiases symbols and typesEugene Burmako2012-07-021-58/+58
| | | | | this uncovers a bug in toolboxes: https://issues.scala-lang.org/browse/SI-6007 however that bug is not critical, so it will be dealt with later