Hi,

when a kernel calls an interpreted function via RPC, it is generally not
possible to determine the type of the value that the function returns,
until it has actually been executed (and the type can vary dynamically
between calls). This is a problem with static compilation.

How should we deal with it?

1) Assume that all RPCd functions return an integer, or None. None is
converted to 0 at runtime. This is what is done right now.
2) Add manual type annotations to RPCd functions. This can be done using
Python function annotations
(http://legacy.python.org/dev/peps/pep-3107/), e.g.:
def foo() -> float:
   ...

#2 is a superset of #1: we can default to #1 when no annotations are
present. So the actual question is: do we need #2, and what do you think
of the proposed syntax for annotating return types?

Sébastien
_______________________________________________
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq

Reply via email to