Currently, memory reports are produced with |mass command. This command passes a %heft task to Dill, that in response passes a %whey note to Arvo, which in turn triggers mass report printouts in the runtime. In this implementation the report is not accesible from within Arvo, which makes it more difficult to manage the reports: storing it, sending to other ships for debugging or analyzing it locally.
An alternative to this would be a -mass thread, which would subscribe for a memory report result. The thread would have to pass the task to a vane, because Gall agents do not have a direct access to Arvo IO. It could be Dill like it is done right now, or Khan since it allows to handle threads. The vane that handles the task would produce a unix card for the runtime, which in response would inject a noun into the vane. The vane would then forward the noun back to the thread to return it.
Have a thread that ends up sending a %whey gift through a vane to the runtime, and have the runtime to return a noun [0 1 0], which then gets routed back and returned by the thread as *mass = [%$ %.n ~]
Update runtime to have it returning the actual memory report instead of the placeholder.
Reward for each milestone: 0.5 WSTR
Estimated time for each milestone: 1-2 months