Incrementalcompiler Compile Core

Incremental compiler of Scala

License

License

Categories

Categories

Scala Languages
GroupId

GroupId

org.scala-sbt
ArtifactId

ArtifactId

incrementalcompiler-compile-core_2.10
Last Version

Last Version

0.1.0-M3
Release Date

Release Date

Type

Type

jar
Description

Description

Incrementalcompiler Compile Core
Incremental compiler of Scala
Project URL

Project URL

https://github.com/sbt/incrementalcompiler
Project Organization

Project Organization

org.scala-sbt
Source Code Management

Source Code Management

https://github.com/sbt/incrementalcompiler

Download incrementalcompiler-compile-core_2.10

How to add to project

<!-- https://jarcasting.com/artifacts/org.scala-sbt/incrementalcompiler-compile-core_2.10/ -->
<dependency>
    <groupId>org.scala-sbt</groupId>
    <artifactId>incrementalcompiler-compile-core_2.10</artifactId>
    <version>0.1.0-M3</version>
</dependency>
// https://jarcasting.com/artifacts/org.scala-sbt/incrementalcompiler-compile-core_2.10/
implementation 'org.scala-sbt:incrementalcompiler-compile-core_2.10:0.1.0-M3'
// https://jarcasting.com/artifacts/org.scala-sbt/incrementalcompiler-compile-core_2.10/
implementation ("org.scala-sbt:incrementalcompiler-compile-core_2.10:0.1.0-M3")
'org.scala-sbt:incrementalcompiler-compile-core_2.10:jar:0.1.0-M3'
<dependency org="org.scala-sbt" name="incrementalcompiler-compile-core_2.10" rev="0.1.0-M3">
  <artifact name="incrementalcompiler-compile-core_2.10" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.scala-sbt', module='incrementalcompiler-compile-core_2.10', version='0.1.0-M3')
)
libraryDependencies += "org.scala-sbt" % "incrementalcompiler-compile-core_2.10" % "0.1.0-M3"
[org.scala-sbt/incrementalcompiler-compile-core_2.10 "0.1.0-M3"]

Dependencies

compile (9)

Group / Artifact Type Version
org.scala-sbt : compiler-interface jar 0.1.0-M3
org.scala-sbt : incrementalcompiler-classpath_2.10 jar 0.1.0-M3
org.scala-sbt : incrementalcompiler-apiinfo_2.10 jar 0.1.0-M3
org.scala-sbt : incrementalcompiler-classfile_2.10 jar 0.1.0-M3
org.scala-sbt : launcher-interface jar 1.0.0-M1
org.scala-sbt : util-logging_2.10 jar 0.1.0-M8
org.scala-sbt : util-logging_2.10 jar 0.1.0-M8
org.scala-sbt : io_2.10 jar 1.0.0-M3
org.scala-sbt : util-control_2.10 jar 0.1.0-M8

test (5)

Group / Artifact Type Version
org.scala-lang : scala-compiler jar 2.10.6
org.scala-sbt : util-testing_2.10 jar 0.1.0-M8
org.scalacheck : scalacheck_2.10 jar 1.11.4
org.scalatest : scalatest_2.10 jar 2.2.4
junit : junit jar 4.11

Project Modules

There are no modules declared in this project.

Zinc

Build Status

Zinc is the incremental compiler for Scala. Most Scala developers use it daily without noticing -- it's embedded in key build tools like sbt, CBT and pants.

The primary goal of Zinc is to make your compilation times faster without sacrificing correctness. When you change a source file, Zinc analyses the dependencies of your code and compiles the minimum subset of source files affected by your change. The generated code should be identical to the output of a clean compile.

History

Originally this project was part of sbt, referred to as the incremental compiler module of sbt.

To allow for build tools outside of sbt to use it, the project typesafehub/zinc was created to re-export the whole of sbt to utilise the incremental compiler module.

With the effort for sbt 1, the sbt team extracted the incremental compiler from the sbt repo, to the sbt/zinc repo, recycling the name "zinc".

This new repository is an effort driven by Lightbend to allow any build tool use the Scala incremental compiler, as sbt 1.0, pants, bazel, cbt, Intellij, Scala IDE and Maven Plugin.

Current status

The Zinc 1.0 incremental compiler implements significant improvements over 0.13.13's version when it comes to performance, correctness and dependency analysis.

Zinc 1.0 is already in use in many tools in the Scala ecosystem like sbt, Bloop, Pants, Bazel, and Maven. If you want to create your own integration, you have two options:

  1. Interface directly with Zinc APIs and maintain your own integration.
  2. Use Bloop (which has a compilation server that simplifies tooling integrations).

Installation and use

If you're a build tool author, add it to your project with:

libraryDependencies += "org.scala-sbt" %% "zinc" % "$ZINC_VERSION"

where $ZINC_VERSION is the latest tag pushed to the GitHub repository.

Code of conduct

All communication in sbt/* repositories, including Zinc, and Gitter chat rooms such as sbt/zinc-contrib are covered by Lightbend Community Code of Conduct. Please be kind and courteous to each other.

Contributing

This project is maintained by Lightbend, the Scala Center and other OSS contributors.

You're welcome to contribute to this repository. For information on how to contribute, please check the CONTRIBUTING guide.

This software is released under the following LICENSE.

Note to compiler bridge authors

The compiler bridge classes are loaded using java.util.ServiceLoader. In other words, the class implementing xsbti.compile.CompilerInterface2 must be mentioned in a file named: /META-INF/services/xsbti.compile.CompilerInterface2.

Acknowledgements

Logo Acknowledgement
We thank Yourkit for supporting this open-source project with its full-featured profiler.
org.scala-sbt

sbt

Community organization for all sbt plugin authors, sbt modules and sbt itself.

Versions

Version
0.1.0-M3
0.1.0-M2
0.1.0-M1