Monday 15 February 2010

scala - Graphing sbt's incremental compilation logic -


SBT maintains dependency between tasks, and the resulting graph can be easily understood. On the other hand, except for the source code, it seems that the incremental compilation argument is very opaque. I want to be able to do the following:

  • "If I modify this interface in this way, will it be invalid?" Tell the equivalent of
  • Create a graph of how to modify the interface of various articles, affecting the rest of the construction. Graphing Scala Import dependencies are not a particularly good approximation, considering how complex underlying dependencies can be found in Scala. It seems that the SBT should keep this information in order to make incremental compilation in some form or the other, so I need to "bus" to find out how it has reached it and hopes it will be used for my use The case is in suitable form.

    Is this possibly? I do not oppose writing the SBT plug-ins, but I am indicating the signal to move forward.

    Editing: It looks like uses 's InternalSrc (dep: file): set [file] can be promising Is the dependence of SBT to capture all knowledge? Editing 2: Even more promising, the SBT source is a DotGraph object inside the tree, there is no document in it and Google does not have human-readable text about it. If I can use it, I will post a reply.

    sample console-project session:

     < Code> & gt; Val (s, a) = runTask (compile, compile in current state) & gt; DotGraph.sources (a.relations, file ("source-graph"), zero)   

    source-graph is a directory that contains two dot files, one Along with the dependence on the source and with a binary, you can optionally interact with the a.relations as per the suggested suggestions in the question, and all the SBT's dependency capture knowledge. It will also be known in 0.13 that due to being hereditary to some other source file What are the dependencies?

    How does a source affect the invalidity in the way the file is modified, it is very thick grain Any change in any non-private signature becomes a source of change as 0.12 and before In this, it will be at least direct dependency and perhaps more invalid. In 0.13, it will only cancel direct dependency, except for hereditary dependencies, which are transitally illegal



No comments:

Post a Comment