You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
This problem enables the import of pure functions even if there is an import dependency cycle. This issue implements a logic that works under the hood and has no impact on syntax.
If all imported functions are pure, then import is pure. This means that we can import pure functions from file that normally would create a dependency cycle.
Pure import is separated from regular import in import_cache.
Pure functions are placed before all the generated bash code.
Pure functions are the ones that don't depend on external variables nor functions.
Describe the solution you'd like
Write a way to detect if function is pure and persist that to the cache
If function is defined, we have to compile it so that we know if it's pure. As for generic functions we can assume default type to be Text
Create a way to mark file that was imported purely in the import_cache.
Compile the pure functions first before resolving the usual import topology
Describe alternatives you've considered
N/A
Additional context
Let's say that we have file main.ab
import { bar } from "other.ab"
fun aux() {
echo bar()
}
fun foo() {
echo "foo"
}
and file other.ab.
import { foo } from "main.ab"
fun bar() {
echo foo() + "bar"
}
Even though there is an import cycle, the functions could be imported perfectly fine since foo is a pure function that does not rely on the context of the file it was created in.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
This problem enables the import of pure functions even if there is an import dependency cycle. This issue implements a logic that works under the hood and has no impact on syntax.
import_cache
.Describe the solution you'd like
Text
import_cache
.Describe alternatives you've considered
N/A
Additional context
Let's say that we have file
main.ab
and file
other.ab
.Even though there is an import cycle, the functions could be imported perfectly fine since
foo
is a pure function that does not rely on the context of the file it was created in.The text was updated successfully, but these errors were encountered: