4/72 Test #2: swipl:basic ......................***Failed


Since I had to work with R, recent years I had little opportunity to work with Prolog. But now that I’m retired I want to start using that again. That won’t be easy, I even forgot the name of the editor (I thought that was ‘xpce’ but xpce is not yet recognized as a valid command).
So I started by trying to install SWI-prolog on my new laptop (running linux fedora 35).

I first cloned swipl into a new repo and updated all modules.

  • cmake -DCMAKE_INSTALL_PREFIX=$HOME -G Ninja .. executed without real errors. (jquery.js and java could not be found so JPL tests were dropped).

  • ninja gives no errors.

  • ctest -j 4 gives errors:

        Start  7: swipl:tabling
    4/72 Test  #2: swipl:basic ......................***Failed    1.53 sec

All the other tests passed succesfull.

  • ctest -j 4 --rerun-failed --output-on-failure produced this error:

    Test project /home/bengbers/Git/Prolog/swipl-devel/build
      Start 2: swipl:basic
    1/1 Test #2: swipl:basic ......................***Failed    1.34 sec
    Running test set "popen" ..Wrong exception: error(io_error(write,<stream>     (0x2301500)),context(system:format/3,'Gebroken pijp'))
    /home/bengbers/Git/Prolog/swipl-devel/src/test.pl:2230: Test popen(cat-2) failed 
  • ninja install executes without error.

  • swipl starts a console.

Can I use SWIprolog without problems or should I first resolve the errors?


Apparently you are using a Dutch locale. This is fine. Probably that should be fixed by making the test locale independent or setting the locale during the test. Only, AFAIK there is no portable way to do that. The locale may not exist or have a different name :frowning:

After changing the locale to English (United States), ctest -j 4 passed all tests. I now installed the English version but that should not give any problems.


There is no such thing as an English or Dutch version for SWI-Prolog (yet). If you change the locale you get exactly the same system. The locale setting does affect the language of OS warnings that are passed on.

I think you can you the POSIX default ‘C’ locale for this, which is available in all posix compliant systems.

Yes. Unfortunately it is not widespread. Actually, we need C.UTF-8 for all the test which is even less widespread :frowning:

1 Like