UWN

Results 181 issues of UWN

The best seems to be to disallow `(\+)//1` altogether. But then, this should be detected appropriately. Currently, rules with `(\+)//1` get somewhat silently ignored which may lead to unexpected results....

``` ?- v(B,C,D)=v(-2,-1,-2), [B,C,D]ins-2..0,0#==>B#>C/D. false. ?- [B,C,D]ins-2..0,0#==>B#>C/D,labeling([],[B,C,D]), v(B,C,D)=v(-2,-1,-2). B = -2, C = -1, D = -2 ; false. ``` At least one here must be incorrect.

``` ?- A#>sign(B). clpz:(_A#=sign(B)), clpz:(_A+1#=_B), clpz:(A#>=_B), clpz:(_A in-1..1), clpz:(_B in 0..2), clpz:(A in 0..sup). ?- #\ ( A#>sign(B) ). error(domain_error(clpz_expression,sign(_2206600)),unknown(sign(_2206600))-1), unexpected. ```

``` ulrich@p0:~/scryer$ cat initialization.pl :- initialization(run). :- use_module(library(debug)). run :- false. ulrich@p0:~/scryer$ /opt/gupu/scryer-prolog/target/release/scryer-prolog -f initialization.pl error(existence_error(procedure,run/0),run/0). % unexpected ?- [initialization]. Warning: initialization/1 failed for: user:run % expected true. ``` So...

In the past, Scryer was happy with `ulimit -v 99999` and even less. But now, even ``` ulrich@p0:/opt/gupu/scryer-prolog$ ulimit -v 170000 ulrich@p0:/opt/gupu/scryer-prolog$ time target/release/scryer-prolog -f Segmentation fault (core dumped) real...

``` ?- writeq(\+ (). error(syntax_error(incomplete_reduction),read_term/3:1). ?- writeq({\+ (}). error(syntax_error(incomplete_reduction),read_term/3:1). ?- writeq((\+ ()). error(syntax_error(incomplete_reduction),read_term/3:1). ?- writeq(\+ ()). error(syntax_error(incomplete_reduction),read_term/3:1). ?- writeq(\+ (()). \+'(' true, unexpected. ?- writeq({\+ (())}. error(syntax_error(incomplete_reduction),read_term/3:1). ?- writeq([\+ (()]}....

That is, [`abolish(PS,[force(true)])`](https://sicstus.sics.se/sicstus/docs/latest4/html/sicstus.html/mpg_002dref_002dabolish.html#index-abolish_002f_005b1_002c2_005d-_0028built_002din_002c-ref-page_0029-1) Note that the ISO abolish/1 works only for dynamic code. Static predicates are not permitted. But when doing extensive testing (and it seems there are still issues...

``` ?- ['/dev/null']. true. ?- ['/dev/null'], true. error(existence_error(procedure,'/dev/null'/0),'/dev/null'/0), unexpected. ```

``` ?- A = [_|_], dif([],A). A = [_A|_B]. % expected ?- dif([],A), A = [_|_]. A = [_A|_B], dif:dif([],[_A|_B]). % unexpected ; expected as above ```

When reading, `[a,b,X]` is transformed into three dotted pairs (list). This means that reading of lengthy strings of that kind must be extremely costly as the decision for list or...