Flowlog All, current items.

13: * random answer order
Flowlog (v4.6.14)
Type 'help.' for help, 'halt.' to exit.
?- select(X,[1,2,3,4,5,6,7,8],_).
   X = 1
   X = 3, unexpected % too early
   X = 6, unexpected
   X = 2
   X = 7, unexpected
   ...
?- select(X,[1,2,3,4,5,6,7,8],_).
   X = 2, unexpected
   ...
?- select(X,[1,2,3,4,5,6,7,8],_),!.
   X = 2, unexpected. % sometimes, retry to see
v4.6.14
v4.6.13
v4.6.10
v4.6.8
v4.6.6
12: * infinite loop does not work
inf :-
   inf.

?- inf.
Segmentation fault (core dumped), unexpected.
   loops % expected
|  resource_error(...). % if you insist, ... but a WAM should loop
11: * append/3 does not work
(Example from the Prolog prologue)
?- append([a], Ys, Zs).
Segmentation fault (core dumped), unexpected.
   Zs = [a|Ys]. % expected, but not found
(above with default. Does work with interp. With wam:)
?- append([a], Ys, Zs).
   Ys = Xs, Zs = [a|Xs], unexpected.
Where does Xs come from?
v4.6.5
9: * git clone problem with old system
ulrich@p0:/tmp$ git clone https://git.liminal.cafe/byakuren/flowlog.git
Cloning into 'flowlog'...
fatal: unable to access 'https://git.liminal.cafe/byakuren/flowlog.git/': gnutls_handshake() failed: Handshake failed
ulrich@p0:/tmp$ cat /etc/issue
Ubuntu 14.04.6 LTS \n \l
This does not happen with github. There I follow various systems like Scryer, Trealla.
8: * select/3 not conforming
Since 2011 select/3 is defined without any errors. Just with two clauses. (Actually, it was commonly defined like that since at least 1983. C&M:1981 did not use it, nor in the 5th ed. 2003) Thus the following is not conforming:
?- select(X, Xs, Ys).
false, unexpected.
?- select(X, Xs, Xs).
false, unexpected. % see p.p.5.4
?- select(X,Xs,[1,2,3]).
false, unexpected.
% this is the expected answer:
   Xs = [X,1,2,3]
;  Xs = [1,X,2,3]
;  Xs = [1,2,X,3]
;  Xs = [1,2,3,X].
?- select(X, [Y|nonlist], Xs).
error(type_error(list,[_G0|nonlist]),/(select1,3)), unexpected.
This type error would make sense, if the template and modes subclause would indicate ?list for the second argument, but it reads in p.p.5.2
select(?term, ?term, ?term)
?- Xs = [a|Xs], ( true ; catch(select(X, Xs, Ys), Err, true ) ).
   Xs = [a,a,a,a,a|...]
;  Xs = [a,a,a,a,a|...], error(representation_error(term),/(select1,3)), unexpected.
% expected behaviour:
   sto,
   false % occurs-check
|  sto,
   Xs = [a|Xs] % rational trees
;  Xs = [a|Xs], X = a, Ys = [a|Ys]
;  Xs = [a|Xs], X = a, Ys = [a|Ys]
;  ..., ad_infinitum
|  sto,
   representation_error(term).
A representation error can only be issued at a point in time when a goal attempts to create some term that cannot be represented. So this error prevents the creation of something. Thus the goal Xs = [a|Xs] may issue a representation error, if unification is defined in such a manner (e.g., set_prolog_flag(occurs_check, error) in Scryer or Trealla). But from above answer it is clear that this goal succeeds, and thus the infinite tree is created. (Do not call it an infinite term since terms are defined such that there are no cyclic structures in them).
6: * writeq ignores operators
Before improving read-ing, consider writeq-ing. Such that you always write valid syntax. So the first to address would be:
  1. s#1,
  2. s#13,
  3. s#27,
  4. s#35,
  5. s#36
5: * testing number_chars/2
Because of #3 and #4, I cannot Now I use the current test table, so I resorted to like the old one. Please go through it. (Numbers are the same) Problems start with #9, #17, #21.
ulrich@gupu:/opt/gupu/flowlog$ ./flowlog 
Flowlog (pthreads)
Type 'help.' for help, 'halt.' to exit.
?- number_chars(1,[_,[]]).
error(instantiation_error,/(number_chars,2)), unexpected.
   type_error(character,[]). % expected, but not found
?- number_chars(N,['3',.]).
N = 3.0, unexpected.
   syntax_error(...). % expected, but not found
?- number_chars(N,[-,' ','1']).
flowlog: fatal error (240): flowlog: unexpected token while parsing term
2: * compilation on older system does not work
ulrich@p0:/opt/gupu/flowlog$ make
cc -O2 -Wall -Wextra -pthread flowlog.c -lm  -o flowlog
flowlog.c:41:23: fatal error: stdatomic.h: No such file or directory
 #include 
                       ^
compilation terminated.
make: *** [flowlog] Error 1
ulrich@p0:/opt/gupu/flowlog$ cc --version
cc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Installation:
wget https://web.liminal.cafe/~byakuren/flowlog/flowlog.tar.gz
git clone https://git.liminal.cafe/byakuren/flowlog.git
make
[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory  -  
[TXT]FLOWLOG-HEADER.html2026-02-11 13:00 10K 
[TXT]name.txt2026-01-05 11:38 8  

Apache/2.4.62 (Debian) OpenSSL/3.0.15 Server at www.complang.tuwien.ac.at Port 443