Conversation
|
|
Ping @Dicebot @CyberShadow |
|
Thanks a lot! Will test later today. |
| auto midx = edges[sp.curMod][sp.curDep]; | ||
| // if midx is -1, then this isn't part of this DSO. | ||
| if (midx != -1 && !bts(reachable, midx)) | ||
| if (!bts(reachable, midx)) |
There was a problem hiding this comment.
Seems correct but slightly unrelated (though you prolly double checked for the old implementation).
That means we could change the type of edges to uint, right?
There was a problem hiding this comment.
Yes, I realized this was a remnant from the implementation that still used the findModule function. I don't put cross-module dependencies as -1 in the edges array, so no point in checking for -1 here.
There was a problem hiding this comment.
That means we could change the type of edges to uint, right?
Hm... probably could. I don't think it's too important though, no chance of having over 2 billion modules to sort. I'm leery of unsigned math, too.
|
Thanks, fixes Higgs and vibe-d/libasync. |
curious, I'm assuming you get the deprecation printout? |
|
Just got to test it, work like a charm: |
Adds new "deprecate" mode for cycle handling: if cycle is detected, runs original flawed algorithm. If that algorithm finds no cycle, continue execution of the program with old sorted order, but print a deprecation warning to stderr.
Still needs doc update. Ping @MartinNowak