Because sometimes the __name__
and the class name does not match, e.g. np.bool_.__name__ == 'bool'
.
Investigate if we can drop Kernel/KernelInvariant checks from composer.rs
Currently, nac3core
has to perform a check on all type-annotated global variables to unpack (e.g.) Kernel[int]
…
Done:
- All builtins IDs are retrieved by the
artiq_builtins
parameter. - Verified that
Kernel
variables are stored in-memory, andKernelInvariant
variables are inlined as…
Then please investigate why the current logic doesn't work first. The changes you propose to me seem to just be a workaround.
Just a thought: Is nac3artiq
compiled with no-escape-analysis
or not?
I don't think this is the proper way to fix this, since supposedly the recursive call to check_return_value_ty
is correct.
After some internal discussion with @sb10q, we agree that the following changes need to be made to this PR:
- Enforce
Kernel
andKernelInvariant
globals to be mutable and immutable…
I think I will look into making these changes next week, since I am currently busy with some other stuff and the proposed changes seem to significantly alter the way I should implement these (and…
I think I actually need clarification on this.
As I understand it, when Kernel
and KernelInvariant
is used as the type of a field within a @nac3
class, it indicates that the fields should…
Not as far as I know, no. But I believe that if Kernel
is supported, then by extension KernelInvariant
should be supported as an annotation as well.