head 1.16; access; symbols; locks ulrich:1.16; strict; comment @# @; 1.16 date 2026.09.24.08.37.29; author ulrich; state Exp; branches; next 1.15; 1.15 date 2026.09.21.07.49.19; author ulrich; state Exp; branches; next 1.14; 1.14 date 2026.09.21.07.42.29; author ulrich; state Exp; branches; next 1.13; 1.13 date 2026.09.21.07.40.51; author ulrich; state Exp; branches; next 1.12; 1.12 date 2026.09.19.17.48.34; author ulrich; state Exp; branches; next 1.11; 1.11 date 2026.09.19.09.57.31; author ulrich; state Exp; branches; next 1.10; 1.10 date 2026.09.17.13.42.53; author ulrich; state Exp; branches; next 1.9; 1.9 date 2026.09.17.13.24.04; author ulrich; state Exp; branches; next 1.8; 1.8 date 2026.09.17.13.19.03; author ulrich; state Exp; branches; next 1.7; 1.7 date 2026.09.17.08.09.15; author ulrich; state Exp; branches; next 1.6; 1.6 date 2026.09.06.15.22.12; author ulrich; state Exp; branches; next 1.5; 1.5 date 2026.06.03.10.26.57; author ulrich; state Exp; branches; next 1.4; 1.4 date 2026.06.03.08.57.04; author ulrich; state Exp; branches; next 1.3; 1.3 date 2026.06.03.08.21.05; author ulrich; state Exp; branches; next 1.2; 1.2 date 2026.06.03.07.27.06; author ulrich; state Exp; branches; next 1.1; 1.1 date 2026.06.02.13.10.47; author ulrich; state Exp; branches; next ; desc @@ 1.16 log @*** empty log message *** @ text @ max_arity (this is work in progress, discussion)
#Queryanswer description, stc#70 SICStus 4.9.0 Scryer 0.10.0 Trealla 3.10.23 Shumway 0.9.2 Ichiban 1.2.0 Eye 1.5.50 GNU 1.6.0 X 1.0.63 Tau 0.3.4 ECLiPSe 7.0#42 -L iso IV 1.4.2 SWI 9.3.25 YAP 7.4.0 B 7.8b7 IF V5.1B Minerva 2.4 Cx 0.98.3 Flowlog 4.9.6 Ciao 1.25.0 XSB 5.0.0
#Queryanswer description SI Sc Tr Sh 1b Ey GN X Τ EC IV SW YA B IF Mi Cx Fl Ci XS
1?- current_prolog_flag(max_arity,A). A = unbounded
| A = ... .

255

255
u u u u
255

255
u u
1000
u u
65535

127

125

64

255

255

65535
2?- current_prolog_flag(max_arity,A),
functor(F,f,A).
A = ..., F = ...
| type_error(integer,unbounded).
A A
t

t

t

t
A A
t

t
A
t

t
A A A A A A A
3?- current_prolog_flag(max_arity,A),
A1 is A+1,functor(F,f,A1).
representation_error(max_arity)
| type_error(evaluable,unbounded/0).
r r
t

t

t

t
r r
t

t

true

t

t
r r r r r r r
4?- current_prolog_flag(max_arity,A),
functor(F,f,A),asserta(F).
A = ..., F = ...
| type_error(integer,unbounded).
A r._e.
t

t

t

t
A A
t

t
A
t

t
A A A db.e A A mem.v
5?- ... =A,functor(F,f,A),asserta(F). maximal A 255 254 255 1023 none none 255 255 none 255 err 65535 1024 16383 s._e. 65535 127 125 32 255 255 3352
13?- current_prolog_flag(max_arity,unbounded), functor(G_0,f,10000),G_0. false
| existence_error(procedure,f/10000).
f f
e

e

e

e
f f
e
o.err. f r._e.(m.) i._e. f f f f f f f
6?- current_predicate(p/10000). false. re._e.(m._a.) OK OK OK OK OK re._e.(m._a.) ty._e.(p._i,..) OK ty._e.(p._i.,..) OK OK OK OK OK re._e.(m._a.) re._e.(m._a.) OK OK OK
7?- N is 2^63,current_predicate(p/N). false
| evaluation_error(int_overflow).
re._e.(m._a.) f f f
e
f
e

e

e
ty._e.(p._i.,..) ty._e.(e.,..) ty._e.(p._i.,..) res._e./2 t._a./3 float(N) ex._e. float(N) ty._e.(p._i.,..) ty._e.(e.,..) N < 0
8?- F=0x200000,N is F*F*F,current_predicate(p/N). false
| evaluation_error(int_overflow).
re._e.(m._a.) f f f
e
f
e

e

e
ty._e.(p._i.,..) f ty._e.(p._i.,..) res._e./2 t._a./3 f N < 0 sy.e. ty._e.(p._i,..) f N < 0
9?- catch(current_prolog_flag(max_procedure_arity,V), error(domain_error(prolog_flag, max_procedure_arity),_),V=none). V = none
| V = ... .
n n
255

1023
n n n n n false false
1024
false false n n db.e. n
255
n
10?- current_prolog_flag(max_procedure_arity,V). domain_error(prolog_flag, max_procedure_arity)
| V = ... .
d d
255

1023
d d d d d false false
1024
false false d d db.e. d
255
d
11?- current_prolog_flag(F,V), F=max_procedure_arity. false
| F = max_procedure_arity, V = ... .
f f
255

1023
f f f f f f f
1024
f f f f f f
255
f
12?- current_prolog_flag(always_invalid,V). domain_error(prolog_flag,always_invalid). OK OK OK OK OK OK OK OK OK false false false false false OK OK db.e. OK false OK
14?- current_predicate(foo/A). false. OK OK OK OK t._e.(p.,..) OK OK OK OK OK OK OK OK OK OK i._e. OK OK OK OK
15?- current_predicate(P/ -1). type_error(predicate_indicator,_/ -1). i._e. OK OK OK OK OK d._e.(n.,..) OK d._e.(n.,..) OK u._c(..) d._e.(n.,..) d._e.(n.,..) false OK i._e. ..(wh.,..) OK false OK
16?- current_predicate(0/0). type_error(predicate_indicator,0/0). ..(a.,0) OK OK OK OK OK ..(a.,0) OK ..(a.,0) OK OK OK false OK ..(a.,0) ..(a.,0) OK OK ..(a.,0) OK
17?- current_predicate(N/N). type_error(predicate_indicator,_A/_A)
| false.

f

f

f n

f
t
f

f

f

f
terr t N=...;..
f

f

f
i._e.
f

f
..(a.,2)
f
18?- abolish(foo/A). instantiation_error
| type_error(predicate_indicator,foo/_A).
i i i i i i i i i i i i i i i i i i false i
19?- abolish(P/ -1). instantiation_error
| domain_error(not_less_than_zero,-1)
| type_error(predicate_indicator,_A/ -1).
i i i i i i i i i i i i i i i i
d
i false i
20?- abolish(0/a). type_error(atom,0)
| type_error(integer,a)
| type_error(predicate_indicator,0/a).
a
i
a a a a a a a a false a
i
a a a
i
a false a
21?- abolish(inex/1). true. OK OK OK OK p._e.(m..) OK OK OK OK OK p._e.(m..) OK OK OK OK OK OK OK OK OK
22?- abolish(p/10000). representation_error(max_arity)
| true.
r r
t n
..(mpa) p._e.(m...)
t
r r
t
o.err p._e.(m...) ..(mpa)
t

t
r r r r false r

Version Control, Validated HTML @ 1.15 log @*** empty log message *** @ text @d82 1 d716 1 a716 1
t @ 1.14 log @*** empty log message *** @ text @d730 1 a730 1 r @ 1.13 log @*** empty log message *** @ text @d715 1 a715 1
t @ 1.12 log @*** empty log message *** @ text @d121 1 a121 1 Trealla 2.52.25 d584 1 a584 1 N=0;... @ 1.11 log @*** empty log message *** @ text @d429 1 a429 1
| V = ... . d553 1 d578 1 d604 1 d630 1 d657 1 d684 1 d709 1 @ 1.10 log @*** empty log message *** @ text @d708 1 a708 1 ..(mpa) @ 1.9 log @*** empty log message *** @ text @d174 4 a177 4 A A A A d180 2 a181 2 A A d183 2 a184 2 A A @ 1.8 log @*** empty log message *** @ text @d620 1 a620 1 i d646 1 a646 1 i d672 1 a672 1 a d685 1 a685 1 p._e.(m..) d690 2 a691 2 OK p._e.(m..) d696 1 a696 1 OK d699 1 a699 1 OK d710 1 a710 1 p._e.(m...) d716 1 a716 1 p._e.(m...) @ 1.7 log @*** empty log message *** @ text @d602 126 @ 1.6 log @*** empty log message *** @ text @d118 1 a118 1 description d122 1 d124 1 d147 1 d149 1 d175 1 d177 1 d182 1 a182 1
1000? d201 1 d203 1 d207 1 a207 1 r d227 1 d229 1 d254 1 d256 1 d274 1 a274 1 5?- A= ...,functor(F,f,A),asserta(F). d279 1 d281 1 d286 2 a287 2 @@@@@@ 1024 re._e.(m._p._a) d290 1 a290 1 127? d293 1 a293 1 n/a d299 27 a325 1 6?- current_predicate(p/1000000). d327 1 a327 1 re._e.(m._a.) d330 1 d332 3 a334 2 re._e.(m._a.) ty._e.(p._i,..) d336 1 a336 1 ty._e.(p._i.,..) d342 2 a343 2 re._e.(m._a.) re._e.(m._a.) d346 1 a346 1 OK d352 9 a360 7 re._e.(m._a.) f. f.
e.
e.
e.
e. d362 1 a362 1 ty._e.(e.,..) d370 1 a370 1 ty._e.(e.,..) d377 9 a385 7 re._e.(m._a.) f. f.
e.
e.
e.
e. d387 1 a387 1 f. d391 1 a391 1 f. d395 1 a395 1 f. d403 1 a403 1
| V = ... . d407 1 d409 1 d428 11 a438 8 domain_error(prolog_flag, max_procedure_arity). OK OK OK OK OK OK OK d441 1 a441 1 V=1024 d444 2 a445 2 OK OK d447 3 a449 3 OK V=255 OK d455 1 a455 1
| F = max_procedure_arity, V = ... . d459 3 a461 1 f d484 3 a486 1 OK d501 99 @ 1.5 log @*** empty log message *** @ text @d166 20 a185 19 A = ... . 255 255 255 unb. 255 255 unb. unb. 1000? unb. unb. 65535 127 125 64 255 255 65535 d190 20 a209 19 A = ..., F = ... . OK OK OK n/a OK OK n/a n/a OK n/a n/a OK OK OK OK OK OK OK d214 20 a233 19 representation_error(
max_arity). OK OK OK n/a OK OK n/a n/a true n/a n/a OK OK OK OK OK OK OK d239 19 a257 18 true, ... . OK r._e. 254 OK n/a OK OK n/a n/a OK n/a n/a OK OK OK db.e 32 OK OK d264 3 a266 3 n/a n/a n/a d268 2 a269 2 n/a n/a d272 1 a272 1 n/a d275 4 a278 4 n/a n/a n/a n/a d280 2 a281 2 n/a n/a d313 4 a316 4 e. e. e. e. d336 4 a339 4 e. e. e. e. d356 9 a364 8 V = none. none none none none none none none d367 1 a367 1 V=1024 d370 2 a371 2 none none d373 3 a375 3 none V=255 none d403 25 a427 1 false. d431 1 a431 1 OK d435 5 a439 5 OK OK V=1024 OK OK d442 1 a442 1 OK d444 1 a444 1 V=255 a448 3 If representation_error(max_procedure_arity), then a flag is needed for it. @ 1.4 log @*** empty log message *** @ text @d111 1 a111 1 (this is work in progress) d135 1 a135 1 Ciao 1.20.0 d299 1 a299 1 OK d345 1 a345 1 ty._e.(p._i.,..) d369 1 a369 1 false d392 1 a392 1 false d415 1 a415 1 OK @ 1.3 log @*** empty log message *** @ text @d299 1 a299 1 ty._e.(p._i.,..) d305 1 a305 1 false | evaluation_error(int_overflow). d328 1 a328 1 false | evaluation_error(int_overflow). @ 1.2 log @*** empty log message *** @ text @d267 1 a267 1 255 err d270 1 a270 1 16383 s._e. d316 1 a316 1 res._e./2 d339 1 a339 1 res._e./2 d393 23 @ 1.1 log @Initial revision @ text @d128 1 a128 1 SWI 9.3.17 d176 1 a176 1 unb. d199 1 a199 1 n/a d211 2 a212 2 3?- current_prolog_flag(max_arity,A),A1 is A+1,functor(F,f,A1). representation_error(max_arity). d221 2 a222 2 OK n/a d246 1 a246 1 n/a d263 1 a263 1 OK d266 1 a266 1 OK d269 1 a269 1 1024 re._e.(m._p._a) d283 1 a283 1 re._e.(max_a.) d287 2 a288 2 re._e.(max_a.) ty._e.(pr._i,..) d290 1 a290 1 ty._e.(pr._i.,..) d296 2 a297 2 re._e.(max_a.) re._e.(max_a.) d299 1 a299 1 ty._e.(pr._i.,..) d303 94 a401 1 @