summaryrefslogtreecommitdiff
path: root/project
Commit message (Collapse)AuthorAgeFilesLines
* new version numbers for snapshot and integration builds, new repositoryLukas Rytz2017-03-081-13/+20
| | | | | | | | | | Integration builds now have version number like `2.12.2-bin-sha7` or `2.13.0-pre-sha7` and are published to scala-integration (no longer scala-release-temp). scala-release-temp is still used in the bootstrap script for publishing intermediate artifacts (starr, locker). Various cleanups in the scripts.
* Get commit SHA and date with JGitStefan Zeiger2017-02-282-10/+33
| | | | | | | | | | | In order to get the SHA and date we used to run shell scripts and parse the output of `git` commands. On Windows we even ran a batch file that looked for `bash.exe` and then ran the shell script in bash. Using JGit should be more robust than the old Rube Goldberg implementation. The values produced are the same, except for the time zone. Previously the timestamp was formatted with the local timezone, now we use UTC.
* Add partest paths to the list of watched sources.Paul Phillips2017-02-261-0/+4
| | | | | This allows running partest continuously (e.g. ~partest a/b/test) with it triggering on changes to the test source.
* Merge pull request #5732 from retronym/topic/build-info-malarkeyAdriaan Moors2017-02-241-0/+4
|\ | | | | More predictable performance of SBT build startup, reload
| * More predictable performance of SBT build startup, reloadJason Zaugg2017-02-231-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Disable parallelism to avoid a nasty interaction between the SBT build info plugin, which internally uses `EvaluateTask`, and can get into a race condition with other concurrnently running tasks. This could be seen as frequent, unnecessary Ivy resolution during the `reload` command, even when nothing had changed. Gory details in https://github.com/sbt/sbt/issues/2970
| * support --show-log for partest commandAdriaan Moors2017-01-091-1/+1
| |
* | Merge pull request #5707 from retronym/topic/java9-prepareLukas Rytz2017-02-2012-0/+24
|\ \ | | | | | | More groundwork for JDK 9 support
| * | Workaround bug in Scala runtime reflection on JDK 9Jason Zaugg2017-02-1612-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The underlying bug is tracked as https://github.com/scala/scala-dev/issues/304 and blocks our SBT starting on JDK 9. This commit avoids using the empty package in our build definition. After this change, I needed to manually clean the class files from the build definition as follows, which might indicate a bug in SBT. $ sbt ... /Users/jz/code/scala-java9-ci/build.sbt:0: warning: imported `BuildSettings' is permanently hidden by definition of object BuildSettings import ..., _root_.scala.build.BuildSettings, ... ^C % rm -rf project/target/scala-2.10/sbt-0.13/classes/ % sbt # okay second time
* | | 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).