| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
* Hook into java parser to generate doc comments
* Generate empty trees for java implementation bodies
|
|\
| |
| | |
Group math package functions
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Groups
- Mathematical Constants
- Minimum and Maximum
- Rounding
- Exponential and Logarithmic
- Trigonometric
- Angular Measurement Conversion
- Hyperbolic
- Absolute Values
- Signs
- Root Extraction
- Polar Coordindates
- Unit of Least Precision
Other changes,
- Dropped use of `double` for `Double` in all cases
- Grouped some methods in the source
- Extended notes about exception to method forwarding
- Minor method documentation enhancements
IEEERemainder is in the Rounding group since it is related to rounding
and did not justify a new group.
|
|/ |
|
|\
| |
| | |
Fix typo in test comment
|
| | |
|
|\ \
| | |
| | | |
SI-9515 closure elimination also for non-Scala-Function SAM types
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also logged in as SD-162
The optimizer had conservative checks in place to perform closure
elimination only for Scala Function types. We can eliminate IndyLambda
instructions for any functional interface. LambdaMetaFactory only
constructs lambda objects for interface types, which don't have any
side-effects on construction - they don't have a constructor.
|
|\ \ \
| |/ /
|/| | |
SI-9817 immutable queue `forall` and `exists` implementations
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
SI-9817 Immutable queue formatting
SI-9817 Added comments
SI-9817 Comment formatting
|
|\ \ \
| | | |
| | | | |
Bump STARR to 2.12.0-M5.
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Emit trait method bodies in statics [rebase of #5177]
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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)
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Keeping diff minimal since this will need to be reverted
once 2.12.0 is final.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
And use this as the target of the default methods or
statically resolved super or $init calls.
The call-site change is predicated on `-Yuse-trait-statics`
as a stepping stone for experimentation / bootstrapping.
I have performed this transformation in the backend,
rather than trying to reflect this in the view from
Scala symbols + ASTs.
We also need to add an restriction related to invokespecial to Java
parents: to support a super call to one of these to implement a
super accessor, the interface must be listed as a direct parent
of the class.
The static method names has a trailing $ added to avoid duplicate
name and signature errors in classfiles.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This partially reverts the fix for SI-5278 made in 7a99c03da.
The original motivation for this case to avoid bytecode that
stretched platform limitations in Android.
For super calls to Scala defined trait methods, we won't
use `invokespecial`, but rather use `invokestatic` to a
static trait implementation method. As such, we can continue
to prune redundant Scala interfaces.
It might be worth considering removing the pruning of
redundant parents altoghether, though:
- We no longer include `ScalaObject` as a parent of every class,
which was mentioned as a problem in SI-5728.
- Scala 2.12 has left Android behind for the time being
due to use of Java 8 facilities.
- javac doesn't do this, so why should we?
|
| | | | |
|
| | | | |
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This corrects an error in the change to the trait encoding
in #5003: getters in traits should have empty bodies and
be emitted as abstract.
```
% ~/scala/2.12.0-M4/bin/scalac sandbox/test.scala && javap -c T
Compiled from "test.scala"
public interface T {
public abstract void T$_setter_$x_$eq(int);
public int x();
Code:
0: aload_0
1: invokeinterface #15, 1 // InterfaceMethod x:()I
6: ireturn
public int y();
Code:
0: aload_0
1: invokeinterface #20, 1 // InterfaceMethod y:()I
6: ireturn
public void y_$eq(int);
Code:
0: aload_0
1: iload_1
2: invokeinterface #24, 2 // InterfaceMethod y_$eq:(I)V
7: return
public void $init$();
Code:
0: aload_0
1: bipush 42
3: invokeinterface #29, 2 // InterfaceMethod T$_setter_$x_$eq:(I)V
8: aload_0
9: bipush 24
11: invokeinterface #24, 2 // InterfaceMethod y_$eq:(I)V
16: return
}
% qscalac sandbox/test.scala && javap -c T
Compiled from "test.scala"
public interface T {
public abstract void T$_setter_$x_$eq(int);
public abstract int x();
public abstract int y();
public abstract void y_$eq(int);
public static void $init$(T);
Code:
0: aload_0
1: bipush 42
3: invokeinterface #21, 2 // InterfaceMethod T$_setter_$x_$eq:(I)V
8: aload_0
9: bipush 24
11: invokeinterface #23, 2 // InterfaceMethod y_$eq:(I)V
16: return
public void $init$();
Code:
0: aload_0
1: invokestatic #27 // Method $init$:(LT;)V
4: return
}
```
|
|\ \ \
| |_|/
|/| | |
Temporarily insource Scalacheck
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This was throwing a UnsupportedOperationError for small operations.
The parallel collections test suite sets `-minSuccessfulTests 5` in
test/files/scalacheck/parallel-collections/pc.scala, which is far
lower thatn the default of 100, and means that we are less likely
to falsify properties.
This parameter seems to have been added in #2476, assuming I'm reading
it correctly. Not sure of the motiviation, perhaps just to make the
slowest part of the scalacheck test suite run faster?
I haven't changed the paramater now, but instead have included a one
element collection in generator.
I also found that when the test failed, Scalacheck would try to minimize
the example, but did so assuming that the elements of the tuple of
test data could be independentally shrunk. This breaks the invariant
that the two collections contain equal elements, and led to spurious
error reports. I have disabled shrinking in all tests tests affected
by this.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a temporary measure until we release Scala
2.12.0. It means we are able to release milestones,
and RCs of Scala without needing a public release of
Scalacheck. While we've never had to wait very long
for these in the past (Thanks, Rickard!) we'd like
to spare the maintainer some work betwen now and 2.12.0.
After we release Scala 2.12.0, we'll revert to a binary
dependency on the standard Scalacheck.
I have replaced the scala-parser-combinator based
command line option parsing with a quick and dirty
version.
I've had to remove scalacheck as a SBT test framework
in our build. We don't use it directly as such (instead,
it is used indirectly through `partest --scalacheck`),
and it's test discovery (which we expect to return nothing)
fails after re-STARR-ing due to an unsolved problem with
SBT's testLoader including either STARR or sbt-launch.jar
on the classpath used to discover and spawn tests.
For the record, I tried the following to no avail:
```
// Two modifications are needed from the stock SBT configuration in order to exclude STARR
// from the classloader that performs test discovery.
// - We make `isManagedVersion` hold by providing an explicit Scala version, in order to go into the desired
// branch in `createTestLoader`
// - We remove STARR from the classloader of the scala instance
def fixTestLoader = testLoader := {
val s = scalaInstance.value
val scalaInstance1 =
new ScalaInstance(s.version, appConfiguration.value.provider.scalaProvider.loader(), s.libraryJar, s.compilerJar, s.extraJars, Some(s.actualVersion))
assert(scalaInstance1.isManagedVersion)
TestFramework.createTestLoader(Attributed.data(fullClasspath.value), scalaInstance1, IO.createUniqueDirectory(taskTemporaryDirectory.value))
}
```
f
|
|\ \
| |/
|/| |
Merge 2.11 to 2.12 [ci: last-only]
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- 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).
|
| |\ |
|
| | |\
| | | |
| | | | |
Use sbt for PR validation [ci: last-only]
|
| | | | |
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- 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.
|
| |\| |
|
| | |\
| | | |
| | | | |
SI-9245 Fresher name in Try and test
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fresh name for catcher gets a dollar. "Here, have a dollar."
Test due to retronym demonstrates possible conflict.
Over the lifetime of the universe, surely at least one code
monkey would type in that identifier to catch a banana.
|
| |\| | |
|
| | |\ \
| | | | |
| | | | | |
SI-9737 [no-merge] Backport stringOf ParIterable
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Cherry-picked c5f3d3f286ee5c26c8ddcf10f6878058e8f7e040
Edited comment: in stringOf, let GenIterable subsume
both Iterable and ParIterable.
This change is required for Scala.js compatibility as it does not
support parallel collections.
Conflicts:
src/library/scala/runtime/ScalaRunTime.scala
|
|/| | | |
| |/ / / |
|
| |\ \ \
| | |_|/
| |/| | |
Typo fix build.sbt
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Keep line numbers when inlining from the same compilation unit
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
So far, line numbers were kept only when inlining from the same class.
We can also keep them when inlining from a different class defined in
the same compilation unit.
Longer-term we should support JSR-45, see SI-7518 and scala-dev#3.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
this change is a bit scary because it changes code that's not been
changed in 11 years
https://github.com/scala/scala/commit/7fa7c93#diff-d5789e5ae5061197d782d08324b260dbL214
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
For classes being compiled (vs. being loaded from classfiles), keep the
source file path in the bytecode repo. This will allow to keep line
numbers when inlining from one class into another in case the two are
defined in the same compilation unit.
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Merge 2.11.x into 2.12.x for the fix for SI-7898
|
| |\ \ \ \ \
| | | |/ / /
| | |/| | | |
|
| | |\ \ \ \
| | | |_|_|/
| | |/| | | |
SI-7898 Preserve reader against subversion
|
| | |/ / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
SBT tries to install its own SimpleReader (for some reason)
if it needs to create its own IMain.
Because Rube Goldberg needs to execute some postinit hooks,
don't let SBT do that.
|