sbt, the interactive build tool
Go to file
Grzegorz Kossakowski a48ab0d38b Implement name hashing algorithm in incremental compiler.
Provide implementation of invalidation logic that takes computed
name hashes into account. The implementation is spread amongst two
classes:

  1. `IncrementalNameHashing` which implements a variant of
     incremental compilation algorithm that computes modified
     names and delegates to `MemberReferenceInvalidationStrategy`
     when invalidating member reference dependencies
  2. `MemberReferenceInvalidationStrategy` which implements the
     core logic of dealing with dependencies introduced by member
     reference. See documentation of that class for details.

The name hashing optimization is applied when invalidating source files
having both internal and external dependencies (in initial iteration),
check `invalidateByExternal` and `invalidateSource` methods for details.

As seen in implementation of `MemberReferenceInvalidationStrategy`
the name hashing optimization is not applied when implicit members
change.

NOTE: All functionality introduced in this commit is enabled only
when `IncOptions.nameHashing` flag is set to true.

The `source-dependencies/transitive-memberRef` test has been changed
to test name hashing variant of incremental compilation. The change
to invalidated files reflects the difference between the old and the
new algorithm.

Also, there a few new tests added that cover issues previously found
while testing name hashing algorithm and are fixed in this commit.
Each paragraph describes a single test.

Add a test case which shows that detect properly changes to type aliases
in the name hashing algorithm. See gkossakowski/sbt#6 for details.

Add test covering bug with use of symbolic names (issue
gkossakowski/sbt#5).

Add a test which covers the case where we refer to a name that is
declared in the same file. See issue gkossakowski/sbt#3 for details.
2014-01-07 00:20:17 +01:00
cache deprecations 2013-02-25 09:24:04 -05:00
compile Implement name hashing algorithm in incremental compiler. 2014-01-07 00:20:17 +01:00
interface Add hashing of public names defined in a source file. 2013-12-04 01:34:18 +01:00
ivy Better representation of no cross-version suffix in suffix conflict error message. 2013-10-23 09:46:43 -04:00
launch Allow specifying sbt.boot.properties as a URI 2013-11-06 20:33:52 -05:00
licenses move remaining pieces of sbt subproject to sbt_pending and fix notices 2010-09-21 21:55:50 -04:00
main Basic predicate combinators for Tags 2013-11-26 22:46:50 -05:00
project Merge pull request #1013 from gkossakowski/used-names-extraction 2013-12-03 03:30:21 -08:00
run Fix #1024. Use log.debug instead of println in TrapExit. 2013-12-05 12:00:00 -05:00
sbt Implement name hashing algorithm in incremental compiler. 2014-01-07 00:20:17 +01:00
scripted Recover from failed 'reload' command in the scripted sbt handler. 2013-09-18 10:27:19 -04:00
src added sbt-mode to Community-Plugins 2013-12-05 08:14:02 -05:00
tasks fix task execution test compilation 2013-06-28 00:01:19 -04:00
testing Third draft to execute the forked tests in parallel. 2013-11-21 08:20:43 -05:00
util Removed unnecessary catch for exception 2013-11-28 11:04:46 -05:00
.gitattributes Added .gitattributes file. 2013-04-25 00:06:51 +08:00
.gitignore support defining Projects in .sbt files 2012-12-09 20:40:41 -05:00
CONTRIBUTING.md Restore sxr support and fix links to sxr'd sources. Fixes #863. 2013-09-24 11:34:14 -04:00
LICENSE * move Environment classes to util/env module 2010-07-14 19:24:50 -04:00
NOTICE * move Environment classes to util/env module 2010-07-14 19:24:50 -04:00
README.md clean up CONTRIBUTING and README 2013-06-28 19:06:56 -04:00
api.specification Macro def aware recompilation. 2012-03-04 17:35:51 +01:00
scripted.specification New scripted test framework 2009-11-09 09:34:52 -05:00

README.md

sbt 0.13

This is the 0.13.x series of sbt.

  • Setup: Describes getting started with the latest binary release.
  • See CONTRIBUTING for how to build from source, open an issue, fix or add documentation, or submit a pull request.
  • FAQ: Explains how to get help and more.
  • Google Code: hosts sbt 0.7.7 and earlier versions