Replies: 3 comments
-
No triggers, only lockersSince we don't have this "special meta data" for specific components (like generator components) and all we have is ports and possibility to map them with IIPs, it turns out we no longer need triggers. All we need is lockers. Because locker is a trigger that takes its outport data from its inport. Example:
Configuration objectThis is how conf of component can be represented:
|
Beta Was this translation helpful? Give feedback.
-
Conclusion
Infinite lockers or static ports?The difference is
Pros and condsThe problem with static ports is that it's possible to write a program/package that causes an endless loop by using a componentn with all (or some specific) ports as a static ports. On the other hand it is possible to create an endless loop with trigger by connecting it's outport to it's inport It's also possible to create endless loop in almost any language btw (which is itself not an argument)
Possible solutionGo for static ports but implement compiler check that there must be Both triggers and static ports adds some complexity to the program but static ports are not ad-hoc (special kinds entity) solution and it makes the program (user's source code) simpler (less nodes in the network) |
Beta Was this translation helpful? Give feedback.
-
Closed in favor of #453 |
Beta Was this translation helpful? Give feedback.
-
Compiler level
Allow IIPs-like behavior at compiler level. Let every inport have predefined message that will always be send to that port
The idea in pseudo-code:
Runtime level
At runtime we can have "effects" or use some std-component for represent real node that interacts with the program's network.
Motivation
See #118 where I describe problem that is related to this
Beta Was this translation helpful? Give feedback.
All reactions