Open avhz opened 1 year ago
Have made polars
crate part of an opt-in feature.
we can remove https://github.com/avhz/RustQuant/blob/634735dd5d860af26f5e31091aca44ee69ea2430/Cargo.toml#L45C16-L45C16
and edit data = ["dep:polars/default"] https://github.com/avhz/RustQuant/blob/634735dd5d860af26f5e31091aca44ee69ea2430/Cargo.toml#L56
The way I have it currently reduces the number of dependencies compiled from 400+ to around 270-280.
Are you saying we should remove optional = true
and change polars
to a default feature ? This would increase the dependencies compiled to 400+ again wouldn't it ?
Ohh My bad we can keep it as true and data = [] ( empty) , the data feature is disabled by default, meaning Polars will not be included in the compilation process unless explicitly enabled using the --features data flag or specifying features = ["data"] in the Cargo.toml file.
But polars
is already not included unless data
is specified as a feature.
Why do you want to have data = []
instead of data = ["dep:polars"]
?
Hello! Came here by the first good issue tag.
Is this still a problem? Maybe separate the project into smaller crates could improve the compile time
@kelvincesar thanks for the comment :) I have considered doing this but am worried about running into issues with the orphan rules.
@avhz you're right, that can be a problem. In this case we would have to create new types around the existing ones plus replicate their methods (https://doc.rust-lang.org/book/ch19-03-advanced-traits.html#using-the-newtype-pattern-to-implement-external-traits-on-external-types). I don't know if this make sense
Compile time increased quite substantially after adding Polars as a dependency. Should look into reducing the compile time a bit if possible.