On May 6, 2008, at 3:47 PM, Ben Webb wrote:
> Daniel Russel wrote: >> - The first one, which is just semantic, is what is the "IMP Kernel"? > > At the C++ level, it is whatever is linked into libimp.so. I am not > fond > of configure-time optional extras going into there, since it makes > testing and support that much harder. It is nice to avoid them, but it can simplify things and most other programs/libraries do, so I think people are used to the idea.
If we do have compile time switches, we need to add an IMP.info() method or something which prints out the build configuration. Then you can get the complete info about the IMP install used just by calling one python or C++ method without having to worry about whether various other libraries are all installed. Many users will have no clue if we ask them to see if libimpem is installed, but could give us the results of IMP.info().
>> - The second is, what should be built into the IMP package (i.e. >> installed by a single install command). My answer to that is that it >> should include everything that is likely to be supported as long as >> IMP is supported. So something that is specific to a particular >> project and will probably not be picked up by anyone else when the >> implementer leaves should not be. > > Indeed. All of our supported IMP modules would go into the IMP > package. > But we would have other IMP modules that are not supported, still in > development, or are for our own use, of course, and they would be > distributed separately or not at all.
One point that I didn't really make clear, is that I don't see that the actual library files and the build process necessarily need to follow the semantic kernel/package distinction. It may make sense to have "Packages", but still build everything into one library and one python module.
The current situation, with having to separately build and install impem is really undesirable and does not scale nicely. Also, at the moment you can't really use thing uninstalled (since the libs are scattered across many directories) and you can't easily install IMP on a mac since the paths don't get set.