PublicShow sourcemake.pl -- Reload modified source files

This module provides the SWI-Prolog `make' facility that synchronises Prolog internal database after loaded files have been edited.

bug
- Dependency tracking is incomplete. Notably, there is no dependency tracking if compilation of one module depends on goal_expansion/2 or term_expansion/2 rules provided by another.
Source make
Reload all source files that have been changed since they were loaded. This predicate peforms the following steps:
  1. Compute the set of files that need to be reloaded.
  2. Call the hook prolog:make_hook(before, Files)
  3. Reload the files
  4. Call the hook prolog:make_hook(after, Files)
  5. If (4) fails, call list_undefined/0.

The hooks are called with an empty list if no files need reloading.

Source make_reload_file(File)
Reload file into the proper module.
bug
- If modules import each other, we must load them in the proper order for import/export dependencies.