Hi Lev, On 4/30/20 3:10 PM, Lev Lamberov wrote: > Recently I was (again!) approached by some embedded developers who asked > to provide Core_system as a separate package and try to break > swi-prolog-nox into several smaller packages. > > Currently, I'm thinking about breaking it into swi-prolog-core > (containing Core_system), swi-prolog-core-packages (containing > Core_packagse; depends on swi-prolog-core) and swi-prolog-nox > (containing other components from the original swi-prolog-nox; depends > on swi-prolog-core and swi-prolog-core-packages). What do you think > about it?
As long as swi-prolog-nox still provides a useable Prolog system I'm happy. I would go with Jonas in that case though and have yet another basic package that just contains the shared object and possibly the main executable and boot file (swipl.prc) Just the shared object is enough to create runtimes when using --stand-alone as this creates a file that starts with the swipl executable. Adding the swipl executable to the base package allows to start the state with some option and makes the state smaller (but not much, `swipl` is really short). Adding the boot.prc file adds only 90Kb and actually allows running Prolog. Without libraries, but you could distribute the essentials with some application as .pl or .qlf files. If we rethink from the start, my ideal is that "swi-prolog" creates a pretty much complete installation, including xpce (gui, ide). Yes, there are quit a few dependencies, but virtually every desktop installation has most of these installed anyway. Then we can have some hierarchy below that. Some parts are clear, but the real dependencies between the various packages is largely unknown and easily varies between versions. If you are interested I could come up with some meaningful splits. Bottom line should be just the real core (as above), which is enough to run saved states. You than have two options for saved states relying on foreign packages: include the package in the saved state or install the package. Cheers --- Jan > > Cheers! > Lev >