transitive recompilation
On save, SugarJ only recompiles modules that are directly dependent on the saved file. Instead, SugarJ should schedule all necessary recompilations so that no file recompiled more than once. Furthermore, the recompilation of files that are currently not loaded and on which no loaded file (transitively) dependents should be delayed.
Submitted by Sebastian Erdweg on 12 April 2011 at 18:03
Issue Log
On 12 April 2011 at 18:22 Sebastian Erdweg tagged build
On 12 April 2011 at 18:22 Sebastian Erdweg tagged modules
On 12 April 2011 at 18:29 Sebastian Erdweg tagged seba
On 12 April 2011 at 18:29 Sebastian Erdweg removed tag seba
On 12 April 2011 at 18:30 Sebastian Erdweg tagged !seba
On 12 April 2011 at 18:30 Sebastian Erdweg tagged @seba
On 12 April 2011 at 18:30 Sebastian Erdweg removed tag !seba
On 12 April 2011 at 18:30 Sebastian Erdweg removed tag @seba
On 13 April 2011 at 11:45 Sebastian Erdweg removed tag build
On 13 April 2011 at 11:45 Sebastian Erdweg tagged plugin
On 2 June 2011 at 18:02 Sebastian Erdweg closed this issue.
On 2 June 2011 at 18:02 Sebastian Erdweg commented:
For each module (that is, class, sugar or editor service), we now also generated dependency files (*.dep), which contain the following information:
- name of source file + hash
- names of generated files + hashes
- names of dependency files of imported modules + hashes
Based on that information, recompilation is triggered if the dependency file is outdated (see org.sugarj.driver.Result.isUpToDate()), i.e., any of the following holds:
- source file has changed
- a generated file has changed, i.e. is not valid anymore
- the dependency file of an imported module is outdated
Log in to post comments