GithubHelp home page GithubHelp logo

itohiro73 / zinc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sbt/zinc

0.0 2.0 0.0 10.85 MB

Scala incremental compiler library, originally part of sbt

License: Other

Standard ML 0.08% Shell 0.44% Scala 77.96% Java 21.51%

zinc's Introduction

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 was 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, 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 in experimental status, with a pre-stable release of "1.0.0-X10". Over the next weeks, the Zinc team will work on getting Zinc 1.0 production-ready so that build tools and Scala developers alike can benefit from these improvements in a stable way.

Installation and use

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

libraryDependencies += "org.scala-sbt" %% "zinc" % "1.0.0-X10"

If you're a Scala developer that wants to try Zinc 1.0, please head to the installation guide of the sbt 0.13.13 plugin sbt-zinc that enables you to use Zinc 1.0 in any 0.13.x sbt installation.

Contributing

This project is maintained by Lightbend and often receives non-trivial contributions from the Scala Center and several other OSS contributors.

You're very welcome to contribute to this repository as Zinc is currently under active development. For information on how to contribute, please check the CONTRIBUTING guide.

This software is released under the following LICENSE.

Acknoledgements

Logo Acknoledgement
We thank Yourkit for supporting this open-source project with its full-featured profiler.

zinc's People

Contributors

adriaanm avatar blaisorblade avatar duhemm avatar dwijnand avatar eed3si9n avatar gkossakowski avatar harrah avatar havocp avatar indrajitr avatar jedesah avatar jroper avatar jsuereth avatar jvican avatar knirski avatar krever avatar liosedhel avatar lukeindykiewicz avatar natansil avatar paulp avatar pdalpra avatar pkukielka avatar pvlugter avatar retronym avatar romanowski avatar smarter avatar ttreyer avatar vigdorchik avatar wlk avatar wpopielarski avatar xuwei-k avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.