-
Notifications
You must be signed in to change notification settings - Fork 562
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make module dependencies clearer #15
Comments
I think this is the dependency graph of Botan modules: What I found most confusing is that "base" depends on other modules. Does that make sense? Shouldn't a base be dependency free? |
Can we move |
But - is there a particular reason to break this dependency? get_pbkdf was declared in lookup.h in 1.10, and also in 1.8.x after 1.8.10, so I'd be inclined to leave it there. Dependency minimization in order to make the amalgamation smaller is reasonable, but adding |
Jap I have: If you build
then you load |
If you are saying that (a) you want to dump a dependency tree and (b) you might want to merge mutually dependent modules, I think the overall goal can and should be to eliminate or reduce circular dependencies. Having no circular dependencies makes the module system much easier to parse, draw and understand by humans, which reduces the potential of errors. When I created the script for the map I first thought I could hold the dependencies in a tree structure. Then I realized that this will never be possible because complex protocols like TLS will always depend on multiple atomic modules. So it has to be a directed graph, which I thought could line up easily from Given issues like #146, I think this is not only about how much a compile time or library size increases but about transparency. The user should be able to understand what modules are loaded and why. If I e.g. just want to build the missing download checksum checker
I ask my self, why the hack do I need entropy and pbkdf. I don't know that I cannot actually use PBKDF but Botan tells me the module will be loaded. Aiming towards better software design and transparency for our users, I'd like to reduce circular dependencies where possible. In case of PBKDF: Moving get_pbkdf() to |
Would be good to reduce deps over time but not sure there is anything in particular to do for this ticket. Closing. |
Someone used --no-autoload and then was rightfully confused when the RNG didn't seed, because dev_random wasn't loaded. Add an option to configure that dumps the module dependency tree, and potentially merge some mutually dependent modules.
The text was updated successfully, but these errors were encountered: