Skip to content
This repository has been archived by the owner on Mar 20, 2024. It is now read-only.

Fix generic function dep defect; rework function discovery approach. #199

Merged
merged 2 commits into from Jun 14, 2023

Conversation

nvjle
Copy link

@nvjle nvjle commented Jun 14, 2023

We have previously discovered through experience that some of the model-provided information we once depended on to discover all module functions, called functions, and concrete instantiations are not always consistent or reliable.

For this reason, we now take a different approach and seed our discovery with just the list of functions provided by ModuleEnv::get_functions. For any other called functions (this module or foreign) and for any generic instantiations, we will expand the seed frontier incrementally by gleaning the remaining information from a visitation of every function call instruction (recursively) in every seed function.

This also fixes a dependence problem in the previous discovery approach where some transitively expanded generics were never seen or declared.

No new tests were added as the previous generics work covers this. We now, however, can eliminate the dependence defect work around that was originally in the moption01 test case. It now runs without the work around successfully.

We have previously discovered through experience that some of the model-provided
information we once depended on to discover all module functions, called functions,
and concrete instantiations are not always consistent or reliable.

For this reason, we now take a different approach and seed our discovery with just the
list of functions provided by `ModuleEnv::get_functions`. For any other called functions
(this module or foreign) and for any generic instantiations, we will expand the seed
frontier incrementally by gleaning the remaining information from a visitation of every
function call instruction (recursively) in every seed function.

This also fixes a dependence problem in the previous discovery approach where some
transitively expanded generics were never seen or declared.

No new tests were added as the previous generics work covers this. We now, however,
can eliminate the dependence defect work around that was originally in the moption01
test case. It now runs without the work around successfully.
@nvjle nvjle changed the title Fix generic funcion dep defect; rework function discovery approach. Fix generic function dep defect; rework function discovery approach. Jun 14, 2023
The differences are due to a different function output order.
@nvjle nvjle merged commit 38c5b3f into anza-xyz:llvm-sys Jun 14, 2023
4 checks passed
ksolana pushed a commit to ksolana/move that referenced this pull request Jun 24, 2023
…nza-xyz#199)

We have previously discovered through experience that some of the model-provided
information we once depended on to discover all module functions, called functions,
and concrete instantiations are not always consistent or reliable.

For this reason, we now take a different approach and seed our discovery with just the
list of functions provided by `ModuleEnv::get_functions`. For any other called functions
(this module or foreign) and for any generic instantiations, we will expand the seed
frontier incrementally by gleaning the remaining information from a visitation of every
function call instruction (recursively) in every seed function.

This also fixes a dependence problem in the previous discovery approach where some
transitively expanded generics were never seen or declared.

No new tests were added as the previous generics work covers this. We now, however,
can eliminate the dependence defect work around that was originally in the moption01
test case. It now runs without the work around successfully.
ksolana pushed a commit to ksolana/move that referenced this pull request Jul 6, 2023
…nza-xyz#199)

We have previously discovered through experience that some of the model-provided
information we once depended on to discover all module functions, called functions,
and concrete instantiations are not always consistent or reliable.

For this reason, we now take a different approach and seed our discovery with just the
list of functions provided by `ModuleEnv::get_functions`. For any other called functions
(this module or foreign) and for any generic instantiations, we will expand the seed
frontier incrementally by gleaning the remaining information from a visitation of every
function call instruction (recursively) in every seed function.

This also fixes a dependence problem in the previous discovery approach where some
transitively expanded generics were never seen or declared.

No new tests were added as the previous generics work covers this. We now, however,
can eliminate the dependence defect work around that was originally in the moption01
test case. It now runs without the work around successfully.
ksolana pushed a commit that referenced this pull request Jul 17, 2023
…199)

We have previously discovered through experience that some of the model-provided
information we once depended on to discover all module functions, called functions,
and concrete instantiations are not always consistent or reliable.

For this reason, we now take a different approach and seed our discovery with just the
list of functions provided by `ModuleEnv::get_functions`. For any other called functions
(this module or foreign) and for any generic instantiations, we will expand the seed
frontier incrementally by gleaning the remaining information from a visitation of every
function call instruction (recursively) in every seed function.

This also fixes a dependence problem in the previous discovery approach where some
transitively expanded generics were never seen or declared.

No new tests were added as the previous generics work covers this. We now, however,
can eliminate the dependence defect work around that was originally in the moption01
test case. It now runs without the work around successfully.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants