>> Improving incremental mode
>> ==========================
>> 
>> Another area that could use work is the incremental compilation logic in the 
>> driver -- that is, reducing the number of times a file is rebuilt when it 
>> "doesn't need to be" -- and some of the documentation and driver-level 
>> counters mentioned above provide insight into that (eg.  
>> https://github.com/apple/swift/blob/master/docs/CompilerPerformance.md#driver-diagnosis
>>  
>> <https://github.com/apple/swift/blob/master/docs/CompilerPerformance.md#driver-diagnosis>).
>>  Incremental compilation is based on approximating the "true" dependency 
>> graph and sometimes this approximation is too coarse; but changing this will 
>> be a large amount of work, and the nature of a substantial change to that is 
>> still subject to a lot of analysis and design. In the meantime there may 
>> also simpler bugs lurking in the dependency-analysis logic, within the 
>> current dependency approximation; I'd be happy to help anyone who wants to 
>> spend time bug-hunting in this area understand what they're looking at.
> 
> Has any thought been put into taking advantage of llbuild for dependency 
> graphs? Can some performance improvements come from that?

Long term I think there's general interest for leveraging it, in place of the 
miniature build system inside the swift driver; but the discovery/analysis or 
dependencies and the scheduling/executing of jobs are somewhat separate tasks, 
and llbuild only does the second. The mapping from a set of swift 
declarations-and-files into a dependency graph that is a safe (but tight) 
approximation of the "true" dependencies of the compiler is the hard part. That 
is, the material that goes into a .swiftdeps file is the hard part; and 
unfortunately that's a thing build systems delegate to compilers to figure out, 
since it involves tracing the compiler's internal activities, as it runs each 
job.

-Graydon

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to