On Wed, Dec 5, 2018 at 11:51 AM Didier Verna didier@lrde.epita.fr wrote:
"Robert Goldman" rpgoldman@sift.info écrivait:
This is yet another problem that comes from the fact that the build plans are linear, instead of hierarchical -- for example there's no subsequence that is identifiable as being the set of operations for a particular module.
Logically speaking, there's a tree structure in the build process that is what you need, but I don't believe that there are any facilities in ASDF to recover that tree structure.
This may be the best you can do.
I think I'll go with Faré's suggestion, scripting it for every library and changing the cache directory every time.
Of course, even my suggestion won't work so well when a system has its own secondary systems as its dependencies, when there are package-inferred-system's, etc.
For more precise timing, you could try to time things in a defmethod perform :around; however, you would still get "interesting" results for the define-op of systems that have defsystem-depends-on dependencies and other multi-stage dependencies. Also, you'd fail to account for the time outside of perform operations—which should usually be negligible, except for the quite expensive initialization of the source-registry.
In the end, timing the load* and compile-file* methods or the underlying load and compile-file functions, as suggested by Robert, might be your best bet.
Good luck,
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Democracy is but government of the busy, by the bully, for the bossy. — Arthur Seldon, "The Dilemma of Democracy"