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
Introduce new compiler directive #impure and mark all native components in stdlib with it. Analyzer must restrict usage of this directive to stdlib and native components only - normal components and components outside of stdlib must never use it.
// http
#impure
def Get(...) (...)
This way it would be possible to tell at compile-time that some node-tree is pure or impure. E.g. it would be possible to implement other features like restrict Map to be used with pure components only, so it's always possible to run it concurrently (see #754 for a related problem)
Questions
How to handle components with interfaces?
What to do with components that does go-interopability (when it will be here)?
In the future when there will be Go interop, component that does it must either be always threaten like "impure" or it's up to developer to mark it (analyzer should allow it then). Maybe there are other options to think about though.
Introduce new compiler directive
#impure
and mark all native components in stdlib with it. Analyzer must restrict usage of this directive to stdlib and native components only - normal components and components outside of stdlib must never use it.This way it would be possible to tell at compile-time that some node-tree is pure or impure. E.g. it would be possible to implement other features like restrict
Map
to be used with pure components only, so it's always possible to run it concurrently (see #754 for a related problem)Questions
Related to #228
The text was updated successfully, but these errors were encountered: