| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
coursier
|
| |
|
|
|
|
|
|
| |
Since you still need to depend on multiple artifacts from within the
dotty project, a unified project is not feasible. A plugin would work
better of course.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
Merge the sbt compiler bridge as a subproject of dotty
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Note that the dotty-bridge tests will not be run automatically by `test`
which is short for `dotty/test`, to run the dotty-bridge tests, do in sbt:
> dotty-bridge/test
> dotty-bridge/scripted
Original history: https://github.com/smarter/dotty-bridge/commits/master
|
|/ |
|
|
|
|
| |
Publishing artifacts under ch.epfl.lamp is easier.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The benchmark project generates a dubious exception when compiling
scala stdlib:
java.lang.ClassCastException: scala.tools.nsc.backend.jvm.BTypes$ClassBType
cannot be cast to scala.tools.nsc.backend.jvm.BTypes$ArrayBType
Upon investigation, this turns out to be a backend incompatibility
problem. The bench project runs with a previous version of scala-compiler.
Explicitly designating the scala-compiler version for bench fixes
the problem.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To test this with sbt, see
https://github.com/lampepfl/dotty/wiki/Using-Dotty-with-sbt
The following flags are added:
- -Yforce-sbt-phases: Run the phases used by sbt for incremental compilation
(ExtractDependencies and ExtractAPI) even if the compiler is ran outside of
sbt, for debugging.
- -Ydump-sbt-inc: For every compiled foo.scala, output the API
representation and dependencies used for sbt incremental compilation
in foo.inc, implies -Yforce-sbt-phases.
This commit introduces two new phases which do not transform trees:
- `ExtractDependencies` which extracts the dependency information of the current
compilation unit and sends it to sbt via callbacks
- `ExtractAPI` which creates a representation of the API of the current compilation
unit and sends it to sbt via callbacks
Briefly, when a file changes sbt will recompile it, if its API has
changed (determined by what `ExtractAPI` sent) then sbt will determine
which reverse-dependencies (determined by what `ExtractDependencies`
sent) of the API have to be recompiled depending on what changed.
See http://www.scala-sbt.org/0.13/docs/Understanding-Recompilation.html for
more information on how sbt incremental compilation works.
This phase was originally based on
https://github.com/adriaanm/scala/tree/sbt-api-consolidate/src/compiler/scala/tools/sbt
which attempts to integrate the sbt phases into scalac (and is itself based
on https://github.com/sbt/sbt/tree/0.13/compile/interface/src/main/scala/xsbt),
but it has been heavily refactored and adapted to Dotty. The main
functional differences are:
- ExtractDependencies runs right after Frontend (so that we don't lose
dependency informations because of the simplifications done by PostTyper),
but ExtractAPI runs right after PostTyper (so that SuperAccessors are
part of the API).
- `ExtractAPI` only extract types as they are defined and never "as seen
from" some some specific prefix, see its documentation for more details.
- `ExtractDependenciesTraverser` and `ExtractUsedNames` have been fused into
one tree traversal in `ExtractDependenciesCollector`.
TODO: Try to run these phases in parallel with the rest of the compiler
pipeline since they're independent (except for the sbt callbacks in `GenBCode`) ?
|
|
|
|
|
| |
Launching the repl with: `runMain dotty.tools.dotc.repl.Main` is now
working correctly
|
|
|
|
| |
That knows that there exists only single magical array method.
|
|
|
|
|
|
|
|
|
| |
The ScalaMeter issue is reported here:
https://github.com/scalameter/scalameter/pull/163/files
The issue exists both in v0.7 and v0.6. As dotty uses v0.6 now,
use this workaround until we upgrate to a new version of ScalaMeter.
|
|
|
|
|
|
| |
This allows to remove the ugly workaround for default methods.
There is also a slight adaptation for the new way to encode a
reference to the JS global scope in the IR.
|
| |
|
|
|
|
|
| |
This guarantees that we can bootstrap dotty without depending on
the binaries of scalajs-ir compiled by another Scala compiler.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Scala.js back-end can be enabled with the `-scalajs`
command-line option. Currently, it adds one phase to the pipeline,
which emits .sjsir files from trees.
A sandbox project `sjsSandbox`, in `sandbox/scalajs/`, can be used
to easily test Scala.js compilation. One can run the `main()`
method of the `hello.world` object with
> sjsSandbox/run
The back-end only contains the bare mimimum to compile the hello
world application in the sandbox. Anything else will blow up
(for example, primitive method calls). It is a work-in-progress.
|
|
|
|
|
|
|
|
| |
This should be safe now that run tests do not take so much memory
anymore (cf #1033 and #1076).
It would be even better if we could figure out why we're using so much
memory, but that's less important than avoiding spurious test failures.
|
| |
|
|\
| |
| | |
Add a `dotty-interfaces` package
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We introduce a new entry point for the compiler in
`dotty.tools.dotc.Driver`:
```
def process(args: Array[String], simple: interfaces.SimpleReporter,
callback: interfaces.CompilerCallback): interfaces.ReporterResult
```
Except for `args` which is just an array, the argument types and return
type of this method are Java interfaces defined in a new package called
`dotty-interfaces` which has a stable ABI. This means that you can
programmatically run a compiler with a custom reporter and callbacks
without having to recompile it against every version of dotty: you only
need to have `dotty-interfaces` present at compile-time and call the
`process` method using Java reflection.
See `test/test/InterfaceEntryPointTest.scala` for a concrete example.
This design is based on discussions with the IntelliJ IDEA Scala plugin
team. Thanks to Nikolay Tropin for the discussions and his PR
proposal (see #1011).
|
|/
|
|
|
|
|
|
|
| |
Upgrading sbt will allow us to experiment with bootstrapping
using sbt since 0.13.11 is the first release that supports building
with dotty (see https://github.com/smarter/dotty-bridge).
Upgrading scalastyle-sbt-plugin allows us to remove the workaround for
https://github.com/scalastyle/scalastyle/issues/156
|
|
|
|
|
|
|
|
|
|
|
|
| |
Settings `in Global` are moved to Build.settings. Otherwise they
are added *twice* in every project.
Project definitions use the `project` macro rather than the
`Project()` factory, as is the customary notation since sbt
0.13. The `Defaults.coreDefaultSettings` is therefore dropped.
The coding style of project definitions is adapted to the style
shown in sbt documentations.
|
|
|
|
| |
First step in fixing #1034
|
|
|
|
|
|
|
|
| |
We're getting a lot of OutOfMemoryException when the maximum size is 1
GB, but we cannot increase it too much without using up all the memory
available on the Jenkins instances, let's see if 1.1 GB is enough.
Also stop using a custom -Xss, the default of 1 MB should be good enough.
|
|
|
|
|
|
| |
Needs to go in before
https://github.com/scala/scala-jenkins-infra/pull/152
is deployed
|
|
|
|
|
| |
-language:_ does not work when compiling dotty with dotty because it
implies -language:keepUnions which prevents dotty from typechecking
|
|
|
|
|
|
|
| |
This is used by sbt to get the compiler's version.
The code to generate the resource comes from
http://www.scala-sbt.org/0.13/docs/Howto-Generating-Files.html#Generate+resources
|
|
|
|
|
|
| |
artifactory"
This reverts commit 2f41c73ee86a56b190758baaf5999ed85d2f57a1.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
Ycheck that methods defined in ClassInfo exist in tree.
|
| |
| |
| |
| |
| |
| | |
Includes fix to emission of invokeDynamic instructions
in positions where expected type isn't the type of lambda being returned.
SI-9387
|
| |
| |
| |
| | |
Fixes bugs in handling try-finally blocks.
|
|/
|
|
|
| |
Done by setting an environment variable and checking it in runtime.
This enables Ycheck:all for all kinds of tests, including partest.
|
|
|
|
| |
More magic is needed, as enumerating array symbols does not work in backend.
|
|
|
|
| |
To make sure that artifact is the same.
|
| |
|
| |
|
| |
|
| |
|