| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
SD-317 Fix package & compiler/package
|
| |
| |
| |
| | |
Fixes scala/scala-dev#317.
|
| |
| |
| |
| |
| | |
it will all stay right there in the Git history to be consulted
anytime we want...
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
| |
This allows running partest continuously (e.g. ~partest a/b/test)
with it triggering on changes to the test source.
|
|\
| |
| | |
More predictable performance of SBT build startup, reload
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
|\ \
| | |
| | | |
More groundwork for JDK 9 support
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| |/ /
|/| | |
run partest from sbt always, command line never
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
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] ^
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
"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/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
|
| | |
|
|\ \
| | |
| | | |
Remove deprecated -Y flags
|
| | |
| | |
| | |
| | | |
This was slated for removal in 2.12.
|
| | |
| | |
| | |
| | | |
This was slated for removal in 2.12.
|
|\ \ \
| |/ /
|/| /
| |/ |
|
| |
| |
| |
| |
| | |
dogfooding the latest. upgrading all the way from 0.1.8 -- there have
been a bunch of improvements since then.
|
| |\
| | |
| | | |
[backport] Bump sbt.version to 0.13.12, without breaking
|
| | | |
|
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | | |
Don’t include scala-asm.jar in scala-compiler.jar
|
| | |
| | |
| | |
| | | |
Fixes https://github.com/scala/scala-dev/issues/254
|
|\ \ \
| |/ /
|/| | |
Add support for -Dpartest.scalac_opts to the partest command
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Store buildcharacter.properties in scala-compiler.jar
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | | |
it just has one little bugfix (a "synchronized" added to fix
a concurrency thing was intermittently failing some CI builds)
|
|\ \ \
| | | |
| | | | |
Bump sbt.version to 0.13.12, without breaking
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
merge 2.12.0 onto 2.12.x [ci: last-only]
|
| | | | |
|
| |/ /
| | |
| | |
| | | |
Also consistently use "LAMP/EPFL" and not "EPFL LAMP".
|
|/ /
| |
| |
| |
| | |
not dl.bintray.com, it's an implementation detail that they're
our current provider
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- 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`).
|
|\ \
| | |
| | | |
Switch Windows CI build to sbt (w/ some sbt build improvements) [ci: last-only]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- 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`.
|