Library, packages and packs?

It is not a “pack”/“add-on”, it is a “package”. It is one of the submodules that you get when you git submodule update --init I think.

You can find a link to it in the “packages”, here.

1 Like

Now I am confused.

I always thought that were just libraries, which are built-in, and packages, which must be installed manually. With your statement are there 3 different entities: library, package, and packs?

Again we managed to get off topic, but if you look at the link I shared above:

Packages are relatively independent add-on libraries that may not be available in all installations. Packages are part of the source code releases of SWI-Prolog and may be enabled or disabled during the build.

See also Add-ons for extensions provided by the community that must be installed seperately using pack_install/1.

I also find the overloading of pack/package/add-on/library a bit confusing but watchagonnado…

Outside of packages and packs/add-ons, the docs, in the manual, distinguish between built-in predicates on the one hand and The SWI-Prolog Library on the other hand. For example, length/2 is a built-in while phrase_from_file/2 is in library(pio). I think that stuff in the “library” is autoloaded so you won’t really know the difference – you don’t need to :- use_module(library(pio)). in order to have phrase_from_file/2 available.

In the source, the “library” files are in under library/ and packages are under packages/. The built-ins seem to be mostly implemented in C and you can find the code under src/.

This cursed sourcery prevents me from satisfying my deep desire to subvert topics.

1 Like

Packs and packages are indeed confusing, although people typically have little to do with packages unless they want to build from source in some non-standard stripped-down way.

That said, TIPC requires kernel support and AFAIK MacOS doesn’t have that. So, no matter what else you install except for Linux on your Mac, it won’t work …