-
Notifications
You must be signed in to change notification settings - Fork 0
Relationship to pstore
The program repository needs some sort of structured database which can be incrementally updated to record its output. There are many possible candidate databases each of which has a unique set of pros and cons for this purpose. After some searching, it was decided to create a library specially for the project: that’s pstore. However, it was clear from the outset that pstore won’t be suitable for every possible use-case so we ultimately need to support some sort of mechanism which allows alternatives to be used. It also seems inappropriate to force a specific database implementation into the LLVM project simply because the prepo work depends on it.
At the time of writing, the llvm-prepo project directly depends on pstore. Adding an abstraction layer and providing one or two alternative back-end databases is a task to be begun when the proof-of-concept is largely complete. The most likely alternatives are an implementation for sqlite and a trivial “/dev/null” destination which simply discards all of the output. It seems desirable that the latter database is the one that is part of LLVM with the user able to download and select the alternative, useful, database of their choice as a configure-time option.