Library directory structure change

I have pushed a change that no longer installs the Prolog files from the bundled packages into the main library directory. Instead, these are now stored in library/ext/<package>/*.pl. Each library/ext/<package> directory is dynamically added to the library search path. There are two motivations for this.

  • Package managers that chop the SWI-Prolog system into multiple packages or have optional package selections can now simply include or exclude packages without the need to rebuild the INDEX.pl library index file. This implies the index files no longer needs to be build at install time and no more scripts to deal with these issues are required.
  • This makes it easier for someone who browses the library to see where files come from.

If all went right, this should have no visible consequences to users as long as library files are loaded using library(myfile).

Incremental builds from source (git pull && ninja fail over this update. To build from source, either remove and recreate the build directory or perform some proper cleaning. The sequence below updates the system without rerunning all cmake configuration.

git pull
git submodule update
cd build
ninja -t clean
rm -r home
cmake .
ninja

Let me know if you see any problems with this change.