feat(ivy): track file dependencies due to partial evaluation (#30238)

As part of incremental compilation performance improvements, we need
to track the dependencies of files due to expressions being evaluated by
the `PartialEvaluator`.

The `PartialEvaluator` now accepts a `DependencyTracker` object, which is
used to track which files are visited when evaluating an expression.
The interpreter computes this `originatingFile` and stores it in the evaluation
`Context` so it can pass this to the `DependencyTracker.

The `IncrementalState` object implements this interface, which allows it to be
passed to the `PartialEvaluator` and so capture the file dependencies.

PR Close #30238
This commit is contained in:
Pete Bacon Darwin
2019-05-08 17:36:11 +01:00
committed by Alex Rickabaugh
parent 5887ddfa3c
commit 0a0b4c1d8f
9 changed files with 140 additions and 104 deletions

View File

@ -7,5 +7,5 @@
*/
export {DynamicValue} from './src/dynamic';
export {ForeignFunctionResolver, PartialEvaluator} from './src/interface';
export {DependencyTracker, ForeignFunctionResolver, PartialEvaluator} from './src/interface';
export {BuiltinFn, EnumValue, ResolvedValue, ResolvedValueArray, ResolvedValueMap} from './src/result';