summaryrefslogtreecommitdiff
path: root/project
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #5684 from SethTisue/partest-sbt-only-plzSeth Tisue2017-02-161-1/+1
|\ | | | | run partest from sbt always, command line never
| * fix annoying extra space in tab completion of sbt `partest` commandJason Zaugg2017-02-141-1/+1
| |
* | Make partest --grep glob paths, not just filenamesDale Wijnand2017-02-011-2/+2
|/ | | | | | | | | Allows for "partest --grep run/t365*" to work, while previous it returned: > partest --grep run\/t365* [error] no tests match pattern / glob [error] partest --grep run\/t365* [error] ^
* run ScalaCheck tests directly, not through partestSeth Tisue2017-01-271-1/+1
| | | | | | | | | | | ScalaCheck ever being under partest in the first place is ancient history, from back in the Ant build days (shudder) ScalaCheck support was removed from partest 1.1.0, which we already upgraded to in a recent commit also upgrades ScalaCheck from 1.11.6 to 1.13.4, since we might as well. no source changes were necessary.
* Fix how "sbt" is writtenDale Wijnand2016-12-214-4/+4
| | | | | | | | "sbt" is not an acronym (it used to be, but it isn't any longer). It's a proper name, like "iPhone" or "eBay". So, just like you wouldn't write "Get Started With EBay" or "How To Reset Your IPhone", we don't write "Using the Sbt Build".
* Merge remote-tracking branch 'origin/2.11.x' into ↵Jason Zaugg2016-12-201-1/+1
|\ | | | | | | | | | | | | | | | | | | merge/2.11.x-to-2.12.x-20161220 Conflicts: bincompat-backward.whitelist.conf build.xml src/compiler/scala/tools/nsc/typechecker/Typers.scala src/library/scala/collection/immutable/NumericRange.scala
| * Upgrade MiMa to 0.1.13Martynas Mickevičius2016-12-081-1/+1
| |
* | Merge pull request #5558 from larsrh/topic/deprecated-y-flagsAdriaan Moors2016-12-131-1/+1
|\ \ | | | | | | Remove deprecated -Y flags
| * | remove deprecated compiler flag "-Yinfer-by-name"Lars Hupel2016-12-011-1/+1
| | | | | | | | | | | | This was slated for removal in 2.12.
| * | remove deprecated compiler flag "-Yeta-expand-keeps-star"Lars Hupel2016-12-011-1/+1
| | | | | | | | | | | | This was slated for removal in 2.12.
* | | Merge remote-tracking branch 'origin/2.11.x' into merge-2.11.x-to-2.12.x-dec-1Seth Tisue2016-12-011-1/+1
|\ \ \ | |/ / |/| / | |/
| * upgrade MiMa to 0.1.12Seth Tisue2016-12-011-1/+1
| | | | | | | | | | dogfooding the latest. upgrading all the way from 0.1.8 -- there have been a bunch of improvements since then.
| * Merge pull request #5464 from retronym/backport/5386Seth Tisue2016-10-191-1/+1
| |\ | | | | | | [backport] Bump sbt.version to 0.13.12, without breaking
| | * [backport] Bump sbt.version to 0.13.12, without breakingDale Wijnand2016-10-191-1/+1
| | |
| * | SI-2712 Add support for higher order unificationMiles Sabin2016-08-151-1/+1
| |/
* | Workaround a bug that rendered MiMa inoperativeJason Zaugg2016-11-161-2/+6
| | | | | | | | | | | | | | | | | | | | MiMa has been off-duty because of a bug in handling the default value of the new paramter `--direction`. This commit explicitly provides this parameter to get things working again post haste. Fixes scala/scala-dev#264
* | Merge pull request #5497 from szeiger/wip/sd-254Jason Zaugg2016-11-111-4/+9
|\ \ | | | | | | Don’t include scala-asm.jar in scala-compiler.jar
| * | Don’t include scala-asm.jar in scala-compiler.jarStefan Zeiger2016-11-101-4/+9
| | | | | | | | | | | | Fixes https://github.com/scala/scala-dev/issues/254
* | | Merge pull request #5432 from dwijnand/partest-scalac_optsAdriaan Moors2016-11-101-1/+4
|\ \ \ | |/ / |/| | Add support for -Dpartest.scalac_opts to the partest command
| * | Add support for -Dpartest.scalac_opts to the partest commandDale Wijnand2016-09-291-1/+4
| | |
* | | Avoid 2 more deprecated sbt 0.12 operatorsDale Wijnand2016-11-041-1/+1
| | |
* | | avoid deprecated sbt 0.12 operatorsSeth Tisue2016-11-041-2/+2
| | |
* | | upgrade to sbt 0.13.13Seth Tisue2016-10-281-1/+1
| | |
* | | Merge pull request #5379 from szeiger/wip/persist-buildcharacterStefan Zeiger2016-10-271-3/+6
|\ \ \ | | | | | | | | Store buildcharacter.properties in scala-compiler.jar
| * | | Store buildcharacter.properties in scala-compiler.jarStefan Zeiger2016-09-061-3/+6
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In addition to all the individual projects’ version properties files that we already keep in `scala-compiler.jar` we now write a new `scala-buildcharacter.properties` which is identical to the `buildcharacter.properties` written to the root directory by `generateBuildCharacterPropertiesFile`. The new task `extractBuildCharacterPropertiesFile` extracts it from the bootstrap Scala compiler and writes the usual `buildcharacter.properties`. This can be used to reproduce the exact version information for all modules in builds that start from an arbitrary published Scala version instead of being triggered directly by a bootstrap job.
* | | assorted typo fixes, cleanup, updating of commentsSeth Tisue2016-10-241-1/+1
| | | | | | | | | | | | | | | | | | just in time for Halloween. "boostrap" is definitely the most adorable typo evah -- and one of the most common, too. but we don't want to scare anybody.
* | | dogfood the new MiMaSeth Tisue2016-10-191-1/+1
| | | | | | | | | | | | | | | it just has one little bugfix (a "synchronized" added to fix a concurrency thing was intermittently failing some CI builds)
* | | Merge pull request #5386 from dwijnand/sbt-0.13.12Seth Tisue2016-10-181-1/+1
|\ \ \ | | | | | | | | Bump sbt.version to 0.13.12, without breaking
| * | | Bump sbt.version to 0.13.12, without breakingDale Wijnand2016-09-221-1/+1
| |/ /
* | | Merge pull request #5416 from SethTisue/merge-2.12.0-to-2.12.x-sep-24Seth Tisue2016-10-052-2/+2
|\ \ \ | | | | | | | | merge 2.12.0 onto 2.12.x [ci: last-only]
| * | | Enable MiMa for 2.12.0Stefan Zeiger2016-09-291-1/+1
| | | |
| * | | Including Lightbend in `-version` message.Adriaan Moors2016-09-271-1/+1
| |/ / | | | | | | | | | Also consistently use "LAMP/EPFL" and not "EPFL LAMP".
* / / use proper lightbend.com and scala-sbt.org URLsSeth Tisue2016-09-281-1/+1
|/ / | | | | | | | | not dl.bintray.com, it's an implementation detail that they're our current provider
* | remove various references to Ant buildSeth Tisue2016-09-024-9/+6
| |
* | Fields does bitmaps & synch for lazy vals & modulesAdriaan Moors2016-08-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Essentially, we fuse mixin and lazyvals into the fields phase. With fields mixing in trait members into subclasses, we have all info needed to compute bitmaps, and thus we can synthesize the synchronisation logic as well. By doing this before erasure we get better signatures, and before specialized means specialized lazy vals work now. Mixins is now almost reduced to its essence: implementing super accessors and forwarders. It still synthesizes accessors for param accessors and early init trait vals. Concretely, trait lazy vals are mixed into subclasses with the needed synchronization logic in place, as do lazy vals in classes and methods. Similarly, modules are initialized using double checked locking. Since the code to initialize a module is short, we do not emit compute methods for modules (anymore). For simplicity, local lazy vals do not get a compute method either. The strange corner case of constant-typed final lazy vals is resolved in favor of laziness, by no longer assigning a constant type to a lazy val (see widenIfNecessary in namers). If you explicitly ask for something lazy, you get laziness; with the constant-typedness implicit, it yields to the conflicting `lazy` modifier because it is explicit. Co-Authored-By: Lukas Rytz <lukas@lightbend.com> Fixes scala/scala-dev#133 Inspired by dotc, desugar a local `lazy val x = rhs` into ``` val x$lzy = new scala.runtime.LazyInt() def x(): Int = { x$lzy.synchronized { if (!x$lzy.initialized) { x$lzy.initialized = true x$lzy.value = rhs } x$lzy.value } } ``` Note that the 2.11 decoding (into a local variable and a bitmap) also creates boxes for local lazy vals, in fact two for each lazy val: ``` def f = { lazy val x = 0 x } ``` desugars to ``` public int f() { IntRef x$lzy = IntRef.zero(); VolatileByteRef bitmap$0 = VolatileByteRef.create((byte)0); return this.x$1(x$lzy, bitmap$0); } private final int x$lzycompute$1(IntRef x$lzy$1, VolatileByteRef bitmap$0$1) { C c = this; synchronized (c) { if ((byte)(bitmap$0$1.elem & 1) == 0) { x$lzy$1.elem = 0; bitmap$0$1.elem = (byte)(bitmap$0$1.elem | 1); } return x$lzy$1.elem; } } private final int x$1(IntRef x$lzy$1, VolatileByteRef bitmap$0$1) { return (byte)(bitmap$0$1.elem & 1) == 0 ? this.x$lzycompute$1(x$lzy$1, bitmap$0$1) : x$lzy$1.elem; } ``` An additional problem with the above encoding is that the `lzycompute` method synchronizes on `this`. In connection with the new lambda encoding that no longer generates anonymous classes, captured lazy vals no longer synchronize on the lambda object. The new encoding solves this problem (scala/scala-dev#133) by synchronizing on the lazy holder. Currently, we don't exploit the fact that the initialized field is `@volatile`, because it's not clear the performance is needed for local lazy vals (as they are not contended, and as soon as the VM warms up, biased locking should deal with that) Note, be very very careful when moving to double-checked locking, as this needs a different variation than the one we use for class-member lazy vals. A read of a volatile field of a class does not necessarily impart any knowledge about a "subsequent" read of another non-volatile field of the same object. A pair of volatile reads and write can be used to implement a lock, but it's not clear if the complexity is worth an unproven performance gain. (Once the performance gain is proven, let's change the encoding.) - don't explicitly init bitmap in bytecode - must apply method to () explicitly after uncurry
* | Switch remaining uses of ant over to sbtStefan Zeiger2016-08-231-19/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Modify `tools/scaladoc-diff` to use sbt instead of ant. - Move `stability-test.sh` from `tools` to `scripts`. With the new build process without separate `locker` and `strap` stages, it doesn’t make sense to call this script without first setting up the proper test environment in a CI build. - Replace the use of `build.number` in `bootstrap` with a new `SHA-NIGHTLY` mode for `baseVersionSuffix`. - Make `partest` call sbt instead of ant for initializing the classpath and use the new classpath location (`quick` instead of `pack`).
* | Merge pull request #5292 from szeiger/wip/sbt-windowsAdriaan Moors2016-07-282-32/+28
|\ \ | | | | | | Switch Windows CI build to sbt (w/ some sbt build improvements) [ci: last-only]
| * | Switch Windows CI build to sbt (w/ some sbt build improvements)Stefan Zeiger2016-07-212-32/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Use sbt in `integrate/windows`: This essentially combines the Unix CI jobs `validate/publish-core` and `validate/test`, first publishing a local release built with STARR and then building a new version with that and running all tests on it. - Unify repository handling across build scripts: A new function `generateRepositoriesConfig` in `common`, based on the existing code in `integrate/bootstrap`, writes the `repositories` file for sbt, either with or without an extra bootstrap repository for resolving a previously built version. It is used in all CI scripts to ensure that artifacts are only resolved through the sanctioned proxies and upstream repositories. - The repository URL arguments in `setupPublishCore` and `setupValidateTest` are now optional as well. These commands are used without a URL from `integrate/windows`, which publishes to `local` instead of a temporary remote repository. - `testAll` is now a task instead of a command. It runs the same sequence of sub-tasks as before but does not propagate failures immediately. It always runs all subtasks and reports errors at the end. - The `generateBuildCharacterPropertiesFile` task now includes all properties from `versions.properties` (whose values have potentially been overwritten with `-D` options) in `buildcharacter.properties`.
* | | Improve sbt-based IntelliJ integration in case of WindowsMichał Pociecha2016-07-221-2/+2
|/ / | | | | | | | | | | | | | | | | | | Use File.pathSeparator when processing classpath instead of just : to don't end up with classpath like "C:\sth\a.jar:C:\sth\b.jar" what was causing problems after split(":"). Display questions first and then wait for user input. I tested on 3 computes and without flush the printed questions were always displayed just after user replied - never before.
* | Switch the bootstrap build over to sbtStefan Zeiger2016-07-153-21/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All of the individual ant builds that occured during `bootstrap` are replaced by equivalent sbt builds. - Allow extra dashes in version suffix when using SPLIT - Clean up ScriptCommands - Building an extra `locker` for stability testing with ant was not necessary but sbt also drops `strap`, so we need to build again with `quick` to get the equivalent of `strap`. The script for checking stability is invoked directly from the bootstrap script, not from sbt. - `STARR` and `locker` build output is still logged to `logs/builds`, the main build runs log directly to the main console with colored output. - Allow `—show-log` option on partest command line in sbt - Normalize inferred LUB in `run/t7747-repl.scala` - Add `normalize` feature from `ReplTest` to `InteractiveTest` - Normalize inferred LUBs in `presentation/callcc-interpreter`
* | Use 2.12.0-M4-9901daf as STARR (see #5152)Adriaan Moors2016-06-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit switches to using 2.12.0-M3-dc9effe as STARR, so that we can switch to the new trait encoding where each concrete trait member gets a a static member, which has the actual implementation (as well as serving as a target for for super calls using invokestatic), and a default member (forwards to the static member). Also bump partest to 1.0.17 -- the release that goes with the in-sourcing of scalacheck. Replace a few more -Yopt with -opt (for our new STARR)
* | Fix test failures of the sbt build in 2.12.xLukas Rytz2016-06-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - More memory for compiling partest tests - Enable more detailed logging for partest failures: Partest’s `AntRunner` has extra code for logging details of all failed tests at the end of a run which is not present in `SbtRunner` but we can set the `--show-log` and `--show-diff` options to get similar output interspersed with the main test log. - Update OSGi test dependencies for sbt build to same versions as in ant (see 8247b8f077c96ba9a017b53de4d8062fe428c4a7 for the motivation for this change). - Disable MiMa checks (to be reactivated after M5).
* | Merge commit 'aaf7bc0' into merge-2.11-to-2.12-june-19Lukas Rytz2016-06-218-17/+167
|\|
| * Remove bnd warnings from log outputStefan Zeiger2016-06-141-1/+1
| |
| * Use sbt for PR validationStefan Zeiger2016-06-148-17/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Support directories in `-doc-external-doc`: It is documented as accepting a “classpath_entry_path” for the keys but this only worked for JARs and not for individual class files. When checking for external-doc mappings for a Symbol, we now find the root directory relative to a class file instead of using the full class file path. The corresponding tests for SI-191 and SI8557 are also fixed to support individual class files instead of JARs in partest. This is required for the sbt build which runs partest on “quick” instead of “pack”. - Fix version and repository handling for bootstrapping. The bootstrap `scalaInstance` can now be resolved from any repository added to the project (not just the bootstrap repositories) by using a different workaround for https://github.com/sbt/sbt/issues/1872. - Workaround for https://github.com/sbt/sbt/issues/2640 (putting the wrong `scalaInstance` on partest’s classpath). The required `ScalaInstance` constructor is deprecated, so we have to disable deprecation warnings and fatal warnings until there is a better fix. - Add MiMa to the sbt build (port of the old `test.bc` ant task). The sbt-mima plugin doesn’t have all the features we need, so we do it manually in a similar way to what the plugin does. Checks are done in both directions for the `library` and `compiler` projects. The base version has to be set in `build.sbt`. When set to `None`, MiMa checks are skipped. MiMa checks are run sequentially to avoid spurious errors (see https://github.com/typesafehub/migration-manager/issues/115). - Port the OSGi tests to the sbt build. The set of JARs that gets copied into build/osgi as bundles is a bit different from the ant build. We omit the source JARs but add additional modules that are part of the Scala distribution, which seems more correct. - Get rid up `pull-binary-libs.sh` for the sbt build. Add artifacts are resolved from the special bootstrap repository through Ivy. The special `code.jar` and `instrumented.jar` artifacts are copied to the location where partest expects them (because these paths are hardcoded in partest). Other extra JARs for partest in `test/files/lib` are referenced directly from the Ivy cache. - Move common settings that should be available with unqualified names in local `.sbt` files and on the command line into an auto-plugin. - Add an `antStyle` setting to sbt to allow users to easily enable ant-style incremental compilation instead of sbt’s standard name hashing with `set antStyle := true`. - Disable verbose `info`-level logging during sbt startup for both, `validate/test` and `validate/publish-core` jobs. Update logging is no longer disabled when running locally (where it is useful and doesn’t generate excessive output). - Pass optimization flags for scalac down to partest, using the new partest version 1.0.15\6. - Call the new sbt-based PR validation from `scripts/jobs/validate/test`. - Disable the tests `run/t7843-jsr223-service` and `run/t7933` from https://github.com/scala/scala/pull/4959 for now. We need to set up a new test project (either partest or junit) that can run them on a packaged version of Scala, or possibly move them into a separate project that would naturally run from a packaged Scala as part of the community build.
* | Merge commit '139f6bf' into merge-2.11-to-2.12-june-1Lukas Rytz2016-06-011-2/+11
|\|
| * Jarlist scala-library in build.sbtRaphael Jolly2016-05-211-2/+11
| |
* | Merge pull request #5102 from milessabin/2.12.xJason Zaugg2016-05-271-1/+1
|\ \ | | | | | | SI-2712 Add support for partial unification of type constructors
| * | SI-2712 Add support for higher order unificationMiles Sabin2016-05-241-1/+1
| | |
* | | Rename -Yopt to -opt, -Yopt-warnings to -opt-warningsLukas Rytz2016-05-251-1/+1
|/ / | | | | | | Keep -Yopt-inline-heuristics and -Yopt-trace unchanged