Switch to roaring bitmaps for the loader dependency caches
Description
In order to support loading larger projects (on the order of 100k elements) in less than 30G of RAM
the LoadElement
dependency cache needed improvements.
This MR does that by replacing the dict
based cache with a roaring bitmap based cache instead.
With this change, I can bst show debian-stack.bst
in about 5.5G of RAM on my Linux laptop.
Changes proposed in this merge request:
- Introduce dependency on
roaringbitmap
- Use
RoaringBitmap
andImmutableRoaringBitmap
inLoadElement