Mark Harrah
cf355f1822
Fix incremental compilation problem with package objects inheriting from invalidated sources in a subpackage.
...
Resolution of https://issues.scala-lang.org/browse/SI-4695 seems to be to deprecate
inheriting from a class in a subpackage. This commit is an alternative solution,
possibly to be reverted or restricted if resolution of SI-4695 changes or if this
proves to be too conservative in practice.
Review by @gkossakowski. With separate inheritance/function call dependency tracking,
this probably should only pull in package objects with inheritance dependencies on
invalidated files.
2012-12-19 10:17:56 -05:00
Grzegorz Kossakowski
78b0f485fa
Add `compilations` field to `Analysis`.
...
We store `Seq[xsbt.api.Compilation]` in `Analysis`. Compilation are
being appended to sequence for every iteration of the incremental
compiler.
Note that `Compilation`s are never removed from the sequence unless
you start from scratch with empty `Analysis`. You can do that by using
sbt's `clean` command.
The main use-case for using `compilations` field is to determine how
many iterations it took to compilen give code. The `Compilation` object
are also stored in `Source` objects so there's an indirect way to recover
information about files being recompiled in every iteration.
Since `Analysis` is persisted you can use this mechanism to track entire
sessions spanning multiple `compile` commands.
2012-12-10 09:15:52 -05:00
Grzegorz Kossakowski
ef39aeb9c1
Follow source layout convention supported by Eclipse.
...
Moved source files so directory structure follow package
structure. That makes it possible to use Scala Eclipse plugin
with sbt's source code.
2012-12-07 10:27:08 -08:00
Benjy
657d842238
Analysis.groupBy implementation.
2012-11-10 19:01:41 -05:00
Mark Harrah
52b7dccff4
Handle removed files when skipping to recompiling all files.
2012-11-10 18:18:15 -05:00
Mark Harrah
4946115521
Recompile everything when invalidated sources exceed a certain fraction of all sources
2012-11-05 10:02:33 -05:00
nau
bdfb570a42
Update compile/inc/Incremental.scala
...
Fix for http://stackoverflow.com/questions/12972183/sbt-always-does-full-rebuild-because-of-modified-binary-dependency-rt-jar
def externalBinaryModified uses java.io.File.equals() to check if files are the same. It's better to use File.getCanonicalPath in this case.
2012-10-22 08:23:23 -04:00
James Roper
5e2fc5f005
Reported file name when an error occurs while opening a corrupt zip file in Locate
2012-08-31 06:15:33 -04:00
Mark Harrah
eca9ab9bb1
2.10 compatibility
2012-08-27 10:49:13 -04:00
Mark Harrah
8c0a2fbe1c
require a smaller set of sources in the third (transitive) step of inc. compilation
2012-08-26 13:44:32 -04:00
Mark Harrah
089b4e284c
three-stage incremental compilation
2012-08-25 07:15:23 -04:00
Eugene Vigdorchik
61dee253dd
Convert println() to log.debug()
2012-08-19 22:19:39 -04:00
Eugene Vigdorchik
b5a29987e6
Changes required to use sbt as-is from Scala-IDE.
2012-07-13 14:33:26 -04:00
Eugene Vigdorchik
e23df839b7
Make compiler projects compilable with 2.10
2012-07-13 14:33:26 -04:00
Eugene Vigdorchik
a6c2054292
Break compiler dependency from 'collection' project.
2012-07-13 14:33:26 -04:00
Mark Harrah
99a04466f1
move to revised warning interface in the compiler
2012-05-06 14:15:03 -04:00
Mark Harrah
6769c94208
basis for a resident compiler
...
unstable, but can be tested with -Dsbt.resident.limit=n
n is the maximum Globals kept around
2012-04-28 18:58:52 -04:00
Mark Harrah
d837f869bd
using some of the embedding interfaces
2012-04-18 11:02:52 -04:00
Mark Harrah
1cbb7ce93c
print-warnings task for Scala 2.10+ to avoid needing to rerun 'compile' to see deprecation/unchecked warnings
2012-03-17 19:31:55 -04:00
Mark Harrah
868196e652
delete empty parent directories of deleted class files. fixes #387
2012-03-05 13:40:17 -05:00
Jason Zaugg
17eeec6876
Move condition out of SameAPI.
...
It was tenuously relying on the caller short-circuiting with `shortcutSameSource`.
2012-03-04 21:28:01 +01:00
Jason Zaugg
067917a0fb
Macro def aware recompilation.
...
- Read macro modifier from method definition.
- Always recompile downstream files after a file containing macro defs is recompiled.
- Source is extended with a hasMacro attribute. Mark suggests that this might be better
tracked in Relations, but I'm not sure how to make that change.
2012-03-04 17:35:51 +01:00
Mark Harrah
a49c907146
invalidate sources that claim to generate the same class. fixes #260
2011-11-10 21:30:30 -05:00
Mark Harrah
7632c0910a
fixes #220 . properly record source dependencies from separate compilation runs in the same step.
2011-10-10 20:53:57 -04:00
Mark Harrah
e4848efcc8
store hashes of API instead of full API. fixes #21
2011-10-05 18:09:27 -04:00
Paul Phillips
fae7c3b429
Make large Relations more readable.
...
For those poor suckers attempting to use -Dxsbt.inc.debug.
2011-09-06 11:55:18 -07:00
Mark Harrah
3b86fc628e
fix Locate to only try to open archives
2011-08-05 21:56:32 -04:00
Mark Harrah
0b3ec05a81
support incremental recompilation when using exportJars. fixes #108
2011-07-18 17:14:22 -04:00
Mark Harrah
1dc3f0ed56
add missing file
2011-06-22 19:50:41 -04:00
Mark Harrah
c919a9c3fd
cache calls to definesClass within a run. closes #67
2011-06-22 19:17:10 -04:00
Mark Harrah
c0a21c1524
implement shortcut for API equality checking, fixes #18
2011-06-01 02:19:46 -04:00
Mark Harrah
437a3f7f50
clean up incremental debugging messages
2011-05-29 19:17:31 -04:00
Mark Harrah
a94247d1b6
more release-worthy compile message and analysis toString
2011-05-29 19:17:31 -04:00
Mark Harrah
a750c1563f
Java/Scala compilation order support
2011-04-03 22:12:51 -04:00
Mark Harrah
507dff6b0f
less deceptive name for debug
2011-02-26 20:51:21 -05:00
Mark Harrah
83866ffb42
incremental tests, misc fixes
2011-02-26 20:34:18 -05:00
Mark Harrah
a3a81dc26e
fix issue in API comparison where ordering was required but not done
2011-02-14 18:58:20 -05:00
Mark Harrah
b601804046
only write resulting Analysis back if compilation was performed
2010-10-30 15:44:36 -04:00
Mark Harrah
3c4e5c4f54
fix product tracking and handling of removed sources
2010-09-27 18:47:11 -04:00
Mark Harrah
540ab7e470
show detected API when debugging incremental
2010-09-27 18:41:34 -04:00
Mark Harrah
f3de1d728c
fix printing sources
2010-09-23 10:29:25 -04:00
Mark Harrah
28f1eecbef
changes to make latest preview easier
2010-09-23 09:21:39 -04:00
Mark Harrah
0d5814e2b3
Rework external dependency tracking and multi-projects
...
Reduce AnalysisCallback interface:
remove discovery
simplify dependency notification methods
Use map of classpath entry to Analysis for locating
source API for external dependencies
Handle classpath changes by locating class
on classpath and either locating Analysis/Source
as above or comparing Stamp. This requires storing
the class name of a binary dependency now.
Make this process aware of full classpath, including
boot classpath
2010-09-17 21:59:43 -04:00
Mark Harrah
d3f02f7c80
control incremental compiler debugging with xsbt.inc.debug system property
2010-08-10 08:35:26 -04:00
Mark Harrah
d7b66458f2
first shot at general command/definition model
2010-07-17 12:07:41 -04:00
Mark Harrah
d0fa1eb461
* move Environment classes to util/env module
...
* move TrapExit, SelectMainClass to run module
* rearrange some compilation-related code
* Jetty-related code moved to web module
2010-07-14 19:24:50 -04:00
Mark Harrah
6f3c699435
- Stuart's improvements to triggered execution
...
- continue splitting original sbt module
* separated process, testing modules
* various IO, logging, classpath migration
* split out javac interface
2010-07-05 12:53:37 -04:00
Mark Harrah
37185c0fb6
discovery, persistence, frontend, and various fixes to incremental
2010-07-02 06:57:03 -04:00
Mark Harrah
9ad9df42b6
first part of semantic, multi-stage incremental compilation
2010-06-27 09:18:35 -04:00