-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add inverse of resolve_overloads
& Check types
#81
Comments
To clarify, annotations enforce the selection of particular versions of operators. Some DEC equations are ambiguous (there may exist multiple valid typings) in terms of which operators to use, and different versions of operators will exhibit different (non-trivial) numerical properties. I am wary of removing features for the sake of simplifying internal code, especially when the simplifications consist of removing error checks and input validation. The usual sorts of error checks that a developer should write to help catch bugs in and verify internal logic should also be capable of handling bugs introduced in pre-processing phases, whether they came from an automated type-inference algorithm, or manual. It sounds like another solution, which wouldn't restrict the scope of user input, is to add a check |
Yes this is true. I guess the intention here was to remove the ability for the user to do this but maybe instead we want to resolve the operator names to something that is "as generic as possible". Like in the case for Currently we do not do any type inference / type checking based on specific operator types, although PR #84 could definitely fit that in scope. This is for ACSets though and on the Symbolic side we actually type even specific types the same as the general, so |
resolve_overloads
& Check types
With the merging of the SymbolicUtils interoperability branch into DiagrammaticEquations we want to remove the user-allowed typing of DEC operators in the Decapode. For example, a user using
d₁
instead of the genericd
. While this typing is still critical during the code generation phase, in order to differentiate which matrix implementations ofd
to use for example, for the purposes of type inference/rewriting it is increasingly adding to the overall complexity of the code without providing much benefit.To remedy this, we should instead only work with generic operators on the user-side, so things like
d₁
are no longer viewed as a valid DEC operator and onlyd
is. Then, for code generation only, we take the operator's name and it's surrounding type information to generate its type-specific name there for implementation differentiation.The text was updated successfully, but these errors were encountered: