Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Hello! Yes I am curious, how does one deal with cycles in the code hash graph? Mutually recursive functions for example?


There's an algorithm for it. The thing that actually gets assigned a hash IS a mutually recursive cycle of functions. Most cycles are size 1 in practice, but some are 2+ like in your question, and that's also fine.


Does that algorithm detects arbitrary subgraphs with a cyclic component, or just regular cycles? (Not that it would matter in practice, I don't think many people write convoluted mutually recursive mess because it would be a maintenance nightmare, just curious on the algorithmic side of things).


I don’t totally understand the question (what’s a regular cycle?), but the only sort of cycle that matters is a strongly connected component (SCC) in the dependency graph, and these are what get hashed as a single unit. Each distinct element within the component gets a subindex identifier. It does the thing you would want :)


If you could link to where this is implemented I'd be very grateful!





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: