Revise ComputeDependencies

Revise User's Guide
This commit is contained in:
Rob Bocchino 2025-11-18 16:51:31 -08:00
parent 31e8a358ab
commit 24b348cffd
4 changed files with 20 additions and 8 deletions

View File

@ -13,10 +13,14 @@ object AddDependencies extends BasicUseAnalyzer {
node: Ast.Annotated[AstNode[Ast.DefTopology]]
) = {
for {
// Add dependencies based on explicit and implicit uses in the topology
a <- super.defTopologyAnnotatedNode(a, node)
// Add dependencies on all dictionary definitions
// Every topology has all dictionary definitions in its dictionary
a <- {
val specLocs = a.locationSpecifierMap.values.map(_.data).filter(_.isDictionaryDef)
Result.foldLeft (specLocs.toList) (a) {
val dictionarySpecLocs =
a.locationSpecifierMap.values.map(_.data).filter(_.isDictionaryDef)
Result.foldLeft (dictionarySpecLocs.toList) (a) {
case (a, s) => addDependencies (a) (s)
}
}

View File

@ -12037,7 +12037,7 @@ equivalent.</p>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2025-11-06 15:59:49 -0800
Last updated 2025-11-18 16:22:40 -0800
</div>
</div>
<script src="code-prettify/run_prettify.js"></script>

View File

@ -12748,8 +12748,12 @@ locate dictionary constant b at "b.fpp"</code></pre>
</div>
<div class="paragraph">
<p>The <code>dictionary</code> keyword tells the analyzer that the definition is a dictionary
definition and so should be included in the dependency files of the model,
regardless of whether the definition is used in the model.</p>
definition.
This fact is important when the model includes a topology definition.
In this case, the analyzer includes all dictionary definitions as
dependencies of the model.
That way the definitions are available
when generating the dictionary for the topology.</p>
</div>
<div class="paragraph">
<p>If a definition is a dictionary definition and the corresponding location
@ -16220,7 +16224,7 @@ serialized according to its
</div>
<div id="footer">
<div id="footer-text">
Last updated 2025-11-06 16:00:29 -0800
Last updated 2025-11-18 16:24:17 -0800
</div>
</div>
<script src="code-prettify/run_prettify.js"></script>

View File

@ -464,8 +464,12 @@ locate dictionary constant b at "b.fpp"
----
The `dictionary` keyword tells the analyzer that the definition is a dictionary
definition and so should be included in the dependency files of the model,
regardless of whether the definition is used in the model.
definition.
This fact is important when the model includes a topology definition.
In this case, the analyzer includes all dictionary definitions as
dependencies of the model.
That way the definitions are available
when generating the dictionary for the topology.
If a definition is a dictionary definition and the corresponding location
specifier does not specify `dictionary` (or vice versa), then the analyzer