-
Notifications
You must be signed in to change notification settings - Fork 73
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
Dependencies cleanup #128
Dependencies cleanup #128
Conversation
maybe we should remove this one
And just because I wanted to play with cargo's new
This makes me want to check whether we require the |
I think it makes total sense to have a centralised graph-compression implementation, because as you point out it is definitely the same logic. I also think it makes sense to drop The way I dreamed this up is that the compression algorithm would just be a BFS that takes a function acting as a "are these two equal" predicate for each prospective pair of nodes to merge. That way the logic of determining the equality classes of nodes can be abstracted out and re-used whenever we need a graph compression over anything. |
This PR cleans up the dependencies, to reduce compile times on a clean build:
failure
,assert_cli
,env_logger
): we don't have so many errors or logging for them to be worthwhile yet.clap
/structopt
topico-args
to avoid compiling proc_macro parsing codedatafrog-2.0.1
as version2.0.0
triggers the rustdoc ICE Rustdoc ICEs when a dependency has duplicate generic bounds to functions returning tuples rust#57180While CLI arguments handling becomes less automated and slightly more verbose, this all reduces compile times greatly: a
cargo build --release
clean build (on a beefy machine) goes from 52s to 17s (as the number of dependencies goes from 60 to 12).The dev-dependencies haven't changed much, maybe 30 crates less than before and 20s faster, but I'll see what I can do with these later.