Catherine
Catherine
@dnadlinger Cache and RAM latency is bounded, but there's no simple allocator that is useful for Python and has bounded latency. You could use a simple cell-based allocator, like hbaker's,...
The profiler does work (it should be functional in master), unfortunately there are two issues with it: * There is a libunwind patch necessary that the upstream requires Linux tests...
> the point is that the compiler can't recognize any sort of prefix, so even with your suggestion, the ARTIQ compiler would throw an error That can be fixed quite...
> note that it fails with `import artiq.language.core; @artiq.language.core.kernel`, as well. So just accounting for `import as` won't fix it. Same problem. Right now the `@kernel` annotation is a hack;...
For now, import `kernel` explicitly.
@sbourdeauducq I wasn't sure how to implement this best, but I just came up with a solution to that.
> If the host begins a message but does not complete it, any kernel CPU messages and watchdogs should be processed. This seems quite troublesome to implement.
> This worked with the C runtime. Yes, it's easy to do if you buffer the entire packet in RAM, but we don't anymore.
That pessimizes large RPCs. We have to spend the RAM twice: once on the comms CPU (to buffer the packet), then on the kernel CPU (to actually unpack it). And...
I suppose one way we could fix this without changing the networking code is add a separate watchdog thread that interrupts the session thread if the watchdog ever expires. But...