Feature feedback from Duke #6
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Various language features have been discussed in other issues. I just wanted to underline some features I noticed in the context of how we use ARTIQ.
If we can provide any further insight in how we use ARTIQ in our lab, let me know!
Function default parameters
Function parameter defaults for kernel, portable, and rpc functions are very important for us. The limitation of only allowing immutable or primitive default types is fine.
Function pointers
We do use function pointers in various ways. For example in lists or as callbacks. I don't think we pass function pointers in kernels at runtime at this moment.
Subtyping with function pointers would definitely be something we are interested in, but we can do without.
range
I am not sure what the plan is with the
range
buildin, but it is obviously used in loops very often. If a range by default converts to alist
that is fine for us, as long this is noted in the documentation (regarding memory usage).We do have one or two situations where we return a
range
object. We could change most of these situations such that we return a (kernel invariant) attribute instead assuming that is still possible.Type guards for list types
See the following example you provided:
I like the
type()
syntax for type guards, but we are not able to differentiate between different list types. To be honest, at this moment we do not really have usecases for generics and substitutionsuper
We are interested in having simple support for
super()
as also mentioned in #3Range
type should be simple, I forgot why I put that comment there.