(I put this in the “libs” category, but it’s really about the build system.)
When working in std (or crates it’s a facade for) my workflow is something like:
- Make additions/changes in
src/libcollections and src/libcollectionstest
- Run
make check-stage1-collectionstest
- Wait 18 minutes or so for the entire compiler to rebuild
- Watch tests fail
- Repeat
This is not great.
As far as I understand, the compiler is rebuilt in case my changes would affect its behaviour, in order to test that new behaviour. But I often don’t care about that, I’d like to modify and test libcollections independently, as if it were separate from the compiler.
Is there a way to run these unit tests without rebuilding the compiler? If not, could we add one? I’ve tried make check-stage0-collectionstest, but it fails with:
x86_64-unknown-linux-gnu/stage0/test/collectionstesttest-x86_64-unknown-linux-gnu: symbol lookup error: x86_64-unknown-linux-gnu/stage0/test/collectionstesttest-x86_64-unknown-linux-gnu: undefined symbol: _ZN3vec12Vec$LT$T$GT$5drain14_MSG_FILE_LINE20hac99776d0c7cff38AiiE