Compiling s(CASP)

Hi Jan

Sorry to bother, I was curious about s(CASP), then I tried

$ git clone https://github.com/JanWielemaker/sCASP.git
$ cd sCASP
$ make
$ swipl -O -o scasp -c prolog/scasp/main.pl
% Disabled autoloading (loaded 41 files)
[Thread 1 (main) at Sun Sep  5 14:56:25 2021] /home/carlo/swipl-devel/src/pl-comp.c:4924: mark_bvar_access___LD: Assertion failed: max >= 0
C-stack trace labeled "assert_fail":
  [0] save_backtrace() at /home/carlo/swipl-devel/src/os/pl-cstack.c:333 [0x7f91a90d5908]
  [1] __assert_fail() at /home/carlo/swipl-devel/src/pl-assert.c:103 [0x7f91a907a757]
  [2] decompile() at /home/carlo/swipl-devel/src/pl-comp.c:5457 [0x7f91a900980f]
  [3] clause() at /home/carlo/swipl-devel/src/pl-comp.c:6605 [0x7f91a9009a52]
  [4] pl_clauseva_va() at /home/carlo/swipl-devel/src/pl-comp.c:6663 [0x7f91a900a042]
  [5] PL_next_solution___LD() at /home/carlo/swipl-devel/src/pl-vmi.c:4754 [0x7f91a8fe8060]
  [6] query_loop() at /home/carlo/swipl-devel/src/pl-pro.c:155 [0x7f91a902cf7c]
  [7] prologToplevel() at /home/carlo/swipl-devel/src/pl-pro.c:499 [0x7f91a902d84b]
  [8] PL_initialise() at /home/carlo/swipl-devel/src/pl-init.c:1215 [0x7f91a9071dc8]
  [9] swipl(+0x6b6) [0x4006b6]
  [10] __libc_start_main() at /build/glibc-S7Ft5T/glibc-2.23/csu/../csu/libc-start.c:325 [0x7f91a8c03840]
  [11] swipl(+0x709) [0x400709]
Makefile:5: recipe for target 'compile_scasp' failed
make: *** [compile_scasp] Aborted (core dumped)

I’m using: SWI-Prolog version 8.3.29, compiled today from source, but maybe I have to upgrade gcc ?

$ gcc -v
...
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~16.04)

BTW, the system seems to work if used interactively (i.e. consulting prolog/scasp.pl, not prolog/scasp/main.pl), that is

$ swipl prolog/scasp.pl
?- scasp_load('/home/carlo/test/prolog/sCASP/examples/queens.pl').
true.

?- ?? nqueens(4, Q).
Answer 1	(in [37088] ms):

JUSTIFICATION_TREE:
nqueens(4,[q(1,2),q(2,4),q(3,1),q(4,3)]) :-
    _nqueens(4,4,[],[q(1,2),q(2,4),q(3,1),q(4,3)]) :-
   ....

I would also like to know what the small s in s(CASP) means. Does it stand for symbolic ?

Reproduces. Side effect of the fix for dealing with inline unification for head terms :frowning: Will look tomorrow.

Fixed. See also Creating a qlf file gives an error - #2 by jan