Should the TIPC socket libraries work with the swipl Docker image?

I’d like to use the tipc/tipc_linda process communication interface library. This depends on the TIPC sockets library which the manual reports as being available on Linux only. TIPC is built into the Linux kernel and is not available on the MacOS computer I use.

I therefor tried the docker image but with no luck:

$ docker run -it swipl

?- use_module(library(tipc/tipc_linda)).
true.

?- linda
false.

At this point the manual tells us to expect a TIPC Linda server now listening response. I tried some basic commands anyway but reading in just hung:

?- out(test).
true

?- in(test).
<hangs here>

So, should the TIPC socket libraries work with the swipl Docker image?. Thanks!

I just copied this post into a new docker-swipl GitHub issue.

I don’t think it is a docker related issue. Possibly Docker cannot do TIPC, but that is a later worry.

I got it to work on my Linux box with a few extra steps. First load tipc into the Linux kernel.

sudo modprobe tipc

Then start Prolog, load Linda and, important step, initialize TIPC in Prolog. Next, the examples work as advertised.

swipl
?- use_module(library(tipc/tipc_linda)).
?- tipc_stack_initialize.
?- linda.
TIPC Linda server listening at: port_id('<0.0.0:3247907827>')
1 Like

Thanks @jan! I’ve installed ubuntu and it works as expected after setting up as you explain. Thanks for not pointing out that those details are in the manual! (For anyone following this typo correction: Lynda --> linda).

The Docker image issue is no longer important to me having installed a VM to try this out. Thanks greatly!

1 Like