UWN
UWN
And, as a general comment, sorting variables is a highly implementation dependent operation. It is not evident to me why sorting is necessary at all. A much stronger test is...
The difs should go away as soon as possible. Otherwise Scryer will leak. (That is, it would leak even with a GC.) Projection should only show what is here. So...
Updated. The issue itself is not solved, "unexpected redundant residuum" still happens, as indicated.
Please note that as long as this (now [dif#21](http://www.complang.tuwien.ac.at/ulrich/iso-prolog/dif#21)) is not fixed, further testing `dif/2` does not make any sense.
Yes, seems to be solved on the atv-level! Congratulations! But not beyond that (this you cannot fix on the Prolog level): ``` ?- call_residue_vars( ( dif(X,f(Y)), X = Y ),...
This needs to be fixed prior to any GC efforts. After all, you need to detect the moment when GC should be triggered.
Now: ``` target/release/scryer-prolog -f ?- use_module(library(lists)). true. ?- length(_,L), open('/dev/null',read,S). L = 0, S = '$stream'(0x5641b72a1b28) ; L = 1, S = '$stream'(0x5641b72bbae8) ; ... ; ; L = 1009,...
UWN_non-conformance
``` ?- length(_,L), open('/dev/null',read,S). L = 0, S = '$stream'(0x5641c8033b28) ; L = 1, S = '$stream'(0x5641c804b578) ; L = 2, S = '$stream'(0x5641c7e69bd8) ; L = 1007, S =...
> This doesn't seem to clash with the declarative description of `length/2` Right. But it has undesirable properties when porting a program from one implementation to another. The use of...