Open PerilousApricot opened 8 years ago
Since merging into one repository, this has become much simpler. I have a script that atomically (i.e. in one commit) splits the header into two parts (public and private), then changes all #include
s for everywhere that references the code.
Blech. I'll have to do this in two phases -- there are a lot of users of the containers who want to add them directly to structs (and not through a pointer), which means you can't just give an opaque class.
See chapter 1 of https://www.cs.rit.edu/~ats/books/ooc.pdf and http://stackoverflow.com/questions/31195551/opaque-types-allocatable-on-stack-in-c for stack-allocable opaque types
First part is done, need to work on opaque-ifying the structs.
We currently expect to be able to find includes in the top-level search path. I.E. when GOP includes the toolbox's log handler, it does so with
#include "log.h"
. This works locally, but we have a lot of very-commonly-named headers that conflict. Best case, RPM will make our packages uninstallable next to other ones with the same names. Worst case, someone who wants to use our APIs will slam into tons of weird include cycles. For instance, if they have a "log.h" of their own (which is probable), our version is shadowed.