sbt, the interactive build tool
Go to file
Grzegorz Kossakowski 304796bb7a Add support for tracking names used in Scala source files.
Tracking of used names is a component needed by the name hashing
algorithm. The extraction and storage of used names is active only when
`AnalysisCallback.nameHashing` flag is enabled and it's disabled by
default.

This change constists of two parts:

  1. Modification of Relations to include a new `names` relation
     that allows us to track used names in Scala source files
  2. Implementation of logic that extracts used names from Scala
     compilation units (that correspond to Scala source files)

The first part is straightforward: add standard set of methods in
Relations (along with their implementation) and update the logic which
serializes and deserializes Relations.

The second part is implemented as tree walk that collects all symbols
associated with trees. For each symbol we extract a simple, decoded name
and add it to a set of extracted names. Check documentation of
`ExtractUsedNames` for discussion of implementation details.

The `ExtractUsedNames` comes with unit tests grouped in
`ExtractUsedNamesSpecification`. Check that class for details.

Given the fact that we fork while running tests in `compiler-interface`
subproject and tests are ran in parallel which involves allocating
multiple Scala compiler instances we had to bump the default memory limit.

This commit contains fixes for gkossakowski/sbt#3, gkossakowski/sbt#5 and
gkossakowski/sbt#6 issues.
2013-12-03 12:27:29 +01:00
cache deprecations 2013-02-25 09:24:04 -05:00
compile Add support for tracking names used in Scala source files. 2013-12-03 12:27:29 +01:00
interface Add support for tracking names used in Scala source files. 2013-12-03 12:27:29 +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 Add support for tracking names used in Scala source files. 2013-12-03 12:27:29 +01:00
run Drop Thread.getName from use in computeID(thread) in TrapExit SecurityManager to fix #997. 2013-11-27 08:53:52 -05:00
sbt Merge pull request #1002 from gkossakowski/deps-by-treewalking 2013-11-27 06:51:05 -08:00
scripted Recover from failed 'reload' command in the scripted sbt handler. 2013-09-18 10:27:19 -04:00
src Update Tasks.rst 2013-11-25 08:22:16 -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 Add -Dsbt.cli.nodelegation option to experiment with no delegation for running/showing tasks/settings from the command line. 2013-11-25 21:03:40 -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