Closed jacobwilliams closed 9 years ago
Sorry about that; that was a regression caused in the last release. It's fixed now. You can get the corrected version from GitHub. It will also be in the next release (hopefully coming soon--I'm just adding the ability to make dependency diagrams).
The ability to make dependency diagrams will be really great. Will it be at the module level, or by routine?
I'm still figuring that out. So far I've been building the basic infrastructure which can be used at any level, but I haven't decided exactly when and where to generate them yet.
On 17/08/15 12:06 PM, Kyle Horne wrote:
The ability to make dependency diagrams will be really great. Will it be at the module level, or by routine?
— Reply to this email directly or view it on GitHub https://github.com/cmacmackin/ford/issues/70#issuecomment-131855954.
Chris MacMackin Saint Mary's University Curriculum Vitae http://ap.smu.ca/%7Ecmacmack/CV.pdf
At the very least, I would like a module-level dependency graph, showing which modules depend on which modules, as well as a routine-level graph, showing which routines depend on which routines. Each routine should also be annotated with the module in which it resides, so that the second graph can be used to reorganize modules as they grow larger and need more refined scopes.
Module dependency is easy and will definitely be there. Subroutine dependency would also be easy, but I don't want to implement that unless and until I have the ability to account for function calls too. Those, unfortunately, are much more difficult.
I see your point about function calls being much more difficult. I suppose that FORD would need to compile a list of all known functions and then check expressions for those which are currently in scope. That is much harder than module dependencies.
What about a short-term cheat to make the graphs with a little help from the developer, like a list of called functions in the routine documentation until a better system is implemented?
I'm getting a ford crash with this file. The error is:
It seems to be caused by this type declaration:
which occurs within a subroutine.