Hi Daniel,
We are slowly working towards that goal. The problem is that there's no clean abstraction layer that would allow us to do so, and so we need to create one. The release of libpmem2 was the first step towards that, and we are currently working on libpmemset (
https://github.com/pmem/pmdk/issues/4914), which will create a clean separation between the library core logic and the file and map handling. Once this is implemented, we intend to move libpmemobj and the rest of our higher level libraries to this new abstraction layer - this will be a massive improvement in terms of maintainability of PMDK's codebase, but will also enable new use cases - like the ability to create pmemobj pools on custom "sets" that are built on top of arbitrary memory pages.
As for your second question - are you asking about device dax? If so, then the answer is yes, you cannot create a PMEMobjpool on a part of the device. If you are asking about regular files, then I'm not sure I follow. But yes - libpmemobj does use the entire file for its heap. There's no way to "partition" a file. But you can always create multiple files :)
The MCAS projects looks cool! Thanks for sending this link.
Piotr