Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| language:types2 [2026/08/06 10:33] – [Non-strict template parameters] rajit | language:types2 [2026/08/09 13:10] (current) – [Non-strict template parameters] rajit | ||
|---|---|---|---|
| Line 153: | Line 153: | ||
| the type. Hence, when checking for type compatibility, | the type. Hence, when checking for type compatibility, | ||
| parameters are also taken into account. Hence, the full type for | parameters are also taken into account. Hence, the full type for | ||
| - | instance '' | + | instance '' |
| '' | '' | ||
| parameters are more completely specified as '' | parameters are more completely specified as '' | ||
| Line 484: | Line 484: | ||
| Template parameters for processes can be of two types: | Template parameters for processes can be of two types: | ||
| - | * //strict// parameters, are the ones we have been considering so far. | + | * //strict// parameters, |
| * // | * // | ||
| - | Non-strict parameters are separate | + | Non-strict parameters are separated |
| <code act> | <code act> | ||
| template< | template< | ||
| Line 505: | Line 505: | ||
| </ | </ | ||
| ACT will allow this syntax. This comes with a few caveats: | ACT will allow this syntax. This comes with a few caveats: | ||
| - | * Any ports for the type can only use strict parameters. | + | * Any ports for the type can only use strict parameters. |
| - | | + | template< |
| + | defproc oddbuf(chan? | ||
| + | { | ||
| + | ... | ||
| + | } | ||
| + | </ | ||
| + | -[ERROR]-> | ||
| + | </ | ||
| + | | ||
| * Sub-array expressions cannot be used where different elements have different types. | * Sub-array expressions cannot be used where different elements have different types. | ||