The other night I recorded this debugging session with the idea to publish it in case anyone was interested in the nuts and bolts of debugging Urbit. This is not an explainer, but I do monologue the whole time about what I'm doing, so hopefully that helps you follow along, even if you're not very familiar with this codebase.
I'll note there's very little hoon here, almost all of this is in the C runtime. While our hoon-related docs have gotten a lot better recently, we haven't put as much effort into communicating about the runtime.
If you're familiar with Urbit but not the runtime, this document should serve as a basic orientation: https://raw.githubusercontent.com/urb...
In this video, I discovered significant inefficiencies in Ames's outgoing message queues, noun equality checking, and (at the risk of spoiling the climax) a hash function.
Feel free to ask questions about anything you see, about the code, my workflow, etc.
On this page of the site you can watch the video online Urbit debugging session: Why is |pack slow? with a duration of hours minute second in good quality, which was uploaded by the user Philip Monk 07 July 2020, share the link with friends and acquaintances, this video has already been watched 435 times on youtube and it was liked by 19 viewers. Enjoy your viewing!