scryer-prolog icon indicating copy to clipboard operation
scryer-prolog copied to clipboard

Remaining blockers for getting rid of [email protected] in transitive dependencies

Open Skgland opened this issue 6 months ago • 0 comments

%HOME/git/scyer-prolog $> cargo tree -i syn@1
syn v1.0.109
├── proc-macro-error v1.0.4
│   └── iai-callgrind-macros v0.3.0 (proc-macro)
│       └── iai-callgrind v0.12.1
│           [dev-dependencies]
│           └── scryer-prolog v0.9.4 (/mnt/c/Users/Bennet/Git/scryer-prolog)
└── scryer-modular-bitfield-impl v0.11.2 (proc-macro)
    └── scryer-modular-bitfield v0.11.4
        └── scryer-prolog v0.9.4 (/mnt/c/Users/Bennet/Git/scryer-prolog)
  • [ ] scryer-modular-bitfield scryer-prologs forks of modular-bitfield
    • instead of updating the fork from syn@1 to syn@2 one could consider switching to the bitfield crate instead.
    • opened mthom/modular-bitfield#1 to upgrade scryer-modular-bitfield to syn@2
  • [ ] iai-callgrind-macros a PR iai-callgrind/iai-callgrind#264 that should fix this has been merged, but a new release has not yet been cut since

Running cargo clean && cargo build --timings the 319 build units take my computer 46.4s to complete compilation of which 5.1s [email protected] is compiling though halve of it is spent in codegen.

image

all dupplicate transitive dependencies

Simplified from cargo tree -d and correlated with cargo build --timings

base64 v0.21.7
base64 v0.22.1

0.5s each

bitflags v1.3.2
bitflags v2.6.0

0.2s 2.6.0, can't find 1.3 in timings

http v0.2.12
http v1.1.0

1.6s 1.1.0 / 1.7s 0.2.12

nix v0.26.4
nix v0.28.0

2.8s 0.28.0, can't find 0.26.4 in timings

phf v0.10.1
phf v0.11.2

0.1s each

phf_codegen v0.10.0
phf_codegen v0.11.2

0.1s each

phf_generator v0.10.0
phf_generator v0.11.2

0.1s each

phf_shared v0.10.0
phf_shared v0.11.2

0.2s each

rustls-pemfile v1.0.4
rustls-pemfile v2.1.3

0.2s each

syn v1.0.109
syn v2.0.72

7.4s 2.0.72
5.1s 1.0.109

Skgland avatar Aug 05 '24 20:08 Skgland