I know we’re adding a bunch of new libraries that require compiling a separate target, some of which we’re writing, some of which are external packages whose source we’re including in our tree. Things like MPI, GPU, sundials, etc.
How do these things get added upstream? It seems a little crazy that PyStan and RStan have to also add separate build system stuff every time we do this… Is this the case?
I think we want to start looking into doing this an arbitrary number of times with new object files or libraries (to help reduce compile times, support threading, generally good C++ design) but I’m worried about the upstream cost. Can someone outline the process and say how we can reduce the burden there such that in Math / Stan / CmdStan it’s easy to add new built & linked libraries?