Currently all tasks are eagerly evaluated, but it would be nice to have tasks that can be evaluated on demand for expensive non-interactive tasks.

Submitted by Gabriël Konat on 20 June 2013 at 23:01

On 21 June 2013 at 22:19 Gabriël Konat commented:

A solution would be to group tasks together and only evaluate tasks of a certain group. The default name and type analysis tasks would go into the “Analysis” group and be executed after each edit. More expensive tasks like normalization of the AST and compilation go into the “Compilation” group and are only evaluated on demand, when the user executes a builder for example.

The task engine currently assumes that after task collection the changed tasks are always evaluated, but this is not the case for compilation where there may be multiple collect phases between evaluation. To support this, tasks must be invalidated directly after a collect, after which the next call to evaluate will evaluate all invalidated tasks.

Log in to post comments