Peter
Peter
As I see it, it's as if Scryer is "forced more", in those/certain cases, to instantiate all variables (that should be) before putting the fact to its database, so to...
In some my examples I used `asserta/1`, so my naive/obvious speculation is, that affected is "everything" that uses the same underlying mechanism, whatever it is, so to speak; maybe only...
Thank you, now I have it...
What about adding `copy_term/2` here (eyelet.pl), before `assertz/1`: ``` % assert conjunction assert_conj((B, C)) :- assert_conj(B), assert_conj(C). assert_conj(A) :- ( \+ A -> copy_term(A,A1), assertz(A1) % !!! ; true )....
After the addition, now I get: ``` scryer-prolog -g main eyelet.pl enigma1225.pl :- op(1200, xfx, :+). answer(enigma1225(8,[[2,1,4,3,6,5,8,7],[[1,1,2,3,4,5,6,7],[1,1,3,2,5,4,7,6],[3,2,8,8,9,10,11,12],[2,3,8,8,10,9,12,11],[5,4,10,9,13,13,14,15],[4,5,9,10,13,13,15,14],[7,6,12,11,15,14,16,16],[6,7,11,12,14,15,16,16]],544])). step((true:+enigma1225(8,A)),enigma1225(8,[[2,1,4,3,6,5,8,7],[[1,1,2,3,4,5,6,7],[1,1,3,2,5,4,7,6],[3,2,8,8,9,10,11,12],[2,3,8,8,10,9,12,11],[5,4,10,9,13,13,14,15],[4,5,9,10,13,13,15,14],[7,6,12,11,15,14,16,16],[6,7,11,12,14,15,16,16]],544]),true). ```
Maybe related: [Rust thread panics on certain input](https://github.com/mthom/scryer-prolog/issues/2423) #2423
Markus @triska, I was thinking that `rebis-dev` is better now with tabling then `master`, but I'm afraid that it's not the case, in some examples like this. I'm afraid that...
Maybe another example. A file to consult: ``` :- use_module(library(tabling)). :- table countdown/1. countdown(0). countdown(N) :- N > 0, N2 is N - 1, countdown(N2). crash :- countdown(19), countdown(20). ```...
I apologize, if this is going to be too much for one issue, or in other words: I don't know if fixing the "panic/crash" issue alone will also fix yet...
If I remove this line: `reverse(OrdStackings, [Height-Tower|_]).` then, without using tabling, in Scryer, Trealla and SWI Prolog, the solution is: ``` ?- solve. Max Height: 70 [box(46,70,20)]. true. ``` Exactly...