Codebase list swi-prolog / 83e4a14
Imported Upstream version 6.6.6 Євгеній Мещеряков 9 years ago
264 changed file(s) with 2944 addition(s) and 2517 deletion(s). Raw diff Collapse all Expand all
0 6.6.5
0 6.6.6
25252525
25262526 '$export_ops'([op(Pri, Assoc, Name)|T], Module, File) :-
25272527 catch(( op(Pri, Assoc, Module:Name),
2528 '$export_op'(Pri, Assoc, Name, File)
2528 '$export_op'(Pri, Assoc, Name, Module, File)
25292529 ),
25302530 E, '$print_message'(error, E)),
25312531 '$export_ops'(T, Module, File).
25322532 '$export_ops'([], _, _).
25332533
2534 '$export_op'(Pri, Assoc, Name, File) :-
2535 ( '$current_module'(LM, LM),
2536 '$get_predicate_attribute'(LM:'$exported_op'(_,_,_), defined, 1)
2534 '$export_op'(Pri, Assoc, Name, Module, File) :-
2535 ( '$get_predicate_attribute'(Module:'$exported_op'(_,_,_), defined, 1)
25372536 -> true
2538 ; '$execute_directive'(discontiguous(LM:'$exported_op'/3), File)
2537 ; '$execute_directive'(discontiguous(Module:'$exported_op'/3), File)
25392538 ),
25402539 '$store_clause'('$exported_op'(Pri, Assoc, Name), _Layout, File).
25412540
25902589 % of the directive by throwing an exception.
25912590
25922591 :- multifile prolog:sandbox_allowed_directive/1.
2592 :- meta_predicate '$valid_directive'(:).
25932593
25942594 '$valid_directive'(_) :-
25952595 current_prolog_flag(sandboxed_load, false), !.
30103010
30113011 system:term_expansion((:- at_halt(Goal)),
30123012 system:'$at_halt'(Module:Goal, File:Line)) :-
3013 \+ current_prolog_flag(xref, true),
30133014 source_location(File, Line),
30143015 '$set_source_module'(Module, Module).
30153016
314314 stream_property(Stream, file_name(File))
315315 }
316316 -> swi_location(file(File, Line, LinePos, CharNo))
317 ; [ 'Stream ~w:~d:~d '-[Stream, LinePos, Line] ]
317 ; [ 'Stream ~w:~d:~d '-[Stream, Line, LinePos] ]
318318 ).
319319 swi_location(_) -->
320320 [].
55
66 SWI-Prolog 6.6
77 Reference Manual
8 _U_p_d_a_t_e_d _f_o_r _v_e_r_s_i_o_n _6_._6_._5_, _A_p_r_i_l _2_0_1_4
8 _U_p_d_a_t_e_d _f_o_r _v_e_r_s_i_o_n _6_._6_._6_, _M_a_y _2_0_1_4
99
1010 _J_a_n _W_i_e_l_e_m_a_k_e_r
1111 J.Wielemaker@vu.nl
69286928
69296929
69306930 ooppeenn((_+_S_r_c_D_e_s_t_, _+_M_o_d_e_, _-_S_t_r_e_a_m_, _+_O_p_t_i_o_n_s)) _[_I_S_O_]
6931 ISO compliant predicate to open a stream. _S_r_c_D_e_s_t is either an
6932 atom specifying a file, or a term `pipe(_C_o_m_m_a_n_d)', like see/1 and
6933 tell/1. _M_o_d_e is one of read, write, append or update. Mode
6934 append opens the file for writing, positioning the file pointer at
6935 the end. Mode update opens the file for writing, positioning the
6936 file pointer at the beginning of the file without truncating the
6937 file. _S_t_r_e_a_m is either a variable, in which case it is bound to an
6938 integer identifying the stream, or an atom, in which case this atom
6939 will be the stream identifier. The _O_p_t_i_o_n_s list can contain the
6940 following options:
6931 True when _S_r_c_D_e_s_t can be opened in _M_o_d_e and _S_t_r_e_a_m is an I/O
6932 stream to/from the object. _S_r_c_D_e_s_t is normally the name of a
6933 file, represented as an atom or string. _M_o_d_e is one of read,
6934 write, append or update. Mode append opens the file for writing,
6935 positioning the file pointer at the end. Mode update opens the
6936 file for writing, positioning the file pointer at the beginning of
6937 the file without truncating the file. _S_t_r_e_a_m is either a variable,
6938 in which case it is bound to an integer identifying the stream, or
6939 an atom, in which case this atom will be the stream identifier.
6940
6941 SWI-Prolog also allows _S_r_c_D_e_s_t to be a term pipe(_C_o_m_m_a_n_d). In
6942 this form, _C_o_m_m_a_n_d is started as a child process and if _M_o_d_e is
6943 write, output written to _S_t_r_e_a_m is sent to the standard input of
6944 _C_o_m_m_a_n_d. Viso versa, if _M_o_d_e is read, data written by _C_o_m_m_a_n_d to
6945 the standard output may be read from _S_t_r_e_a_m. On Unix systems,
6946 _C_o_m_m_a_n_d is handed to popen() which hands it to the Unix shell. On
6947 Windows, _C_o_m_m_a_n_d is executed directly. See also process_create/3
6948 from process.
6949
6950 The following _O_p_t_i_o_n_s are recognised by open/4:
69416951
69426952 ttyyppee((_T_y_p_e))
69436953 Using type text (default), Prolog will write a text file in an
1137211382 ||________delete_file(File).______________%_Unix-only_______________ ||
1137311383
1137411384 Temporary files created using this call are removed if the
11375 Prolog process terminates. Calling delete_file/1 using _F_i_l_e_N_a_m_e
11376 removes the file and removes the entry from the administration of
11377 files-to-be-deleted.
11385 Prolog process terminates _g_r_a_c_e_f_u_l_l_y. Calling delete_file/1
11386 using _F_i_l_e_N_a_m_e removes the file and removes the entry from the
11387 administration of files-to-be-deleted.
1137811388
1137911389
1138011390 mmaakkee__ddiirreeccttoorryy((_+_D_i_r_e_c_t_o_r_y))
2078020790 the (implied) constraint F #\= 0 before the recursive call. Otherwise,
2078120791 the query n_factorial(N, 0) is the only non-terminating case of this
2078220792 kind.
20783
20784
20785 1111..77..00..77 AAddvvaanncceedd ttooppiiccss
20793
20794 <### Advanced topics {#clpfd-advanced-topics}
2078620795
2078720796 This library uses goal_expansion/2 to rewrite constraints at
2078820797 compilation time. The expansion's aim is to transparently bring
2081320822 |:- use_module(library(clpfd)). |
2081420823 | |
2081520824 |:- multifile clpfd:run_propagator/2. |
20816
2081720825 | |
2081820826 |oneground(X, Y, Z) :- |
20827
2081920828 | clpfd:make_propagator(oneground(X, Y, Z), Prop), |
2082020829 | clpfd:init_propagator(X, Prop), |
2082120830 | clpfd:init_propagator(Y, Prop), |
2082220831 | clpfd:trigger_once(Prop). |
2082320832 | |
2082420833 |clpfd:run_propagator(oneground(X, Y, Z), MState) :- |
20825
2082620834 | ( integer(X) -> clpfd:kill(MState), Z = 1 |
20835
2082720836 | ; integer(Y) -> clpfd:kill(MState), Z = 1 |
2082820837 | ; true |
2082920838 ||_______)._____________________________________________________________ ||
2084520854
2084620855 ________________________________________________________________________| |
2084720856 |?- oneground(X, Y, Z), Y = 5. |
20848
2084920857 |Y = 5, |
2085020858 |Z = 1, |
20859
2085120860 |X|in_inf..sup._________________________________________________________ | |
2085220861
2085320862
2205322062
2205422063
2205522064 sseelleecctt((_?_X_, _?_X_L_i_s_t_, _?_Y_, _?_Y_L_i_s_t)) _[_n_o_n_d_e_t_]
22056 True if _X_L_i_s_t is unifiable with _Y_L_i_s_t apart a single element at the
22057 same position that is unified with _X in _X_L_i_s_t and with _Y in _Y_L_i_s_t.
22058 A typical use for this predicate is to _r_e_p_l_a_c_e an element, as shown
22059 in the example below. All possible substitutions are performed on
22065 Select from two lists at the same positon. True if _X_L_i_s_t is
22066 unifiable with _Y_L_i_s_t apart a single element at the same position
22067 that is unified with _X in _X_L_i_s_t and with _Y in _Y_L_i_s_t. A typical
22068 use for this predicate is to _r_e_p_l_a_c_e an element, as shown in
22069 the example below. All possible substitutions are performed on
2206022070 backtracking.
2206122071
2206222072 ____________________________________________________________________| |
2275322763 line of help text. Similarly, suppressing an option in a cluttered
2275422764 interface amounts to commenting out the flags.
2275522765
22756 opt_parse/5 allows more control through an ad-
22757 ditional argument list. For instance,
22758 opt_parse(ExampleOptsSpec, ExampleArgs, Opts, PositionalArgs, [output_functor(appl_config)])
22759 would instead return
22766 opt_parse/5 allows more control through an additional argument list as
22767 shown in the example below.
2276022768
2276122769 ________________________________________________________________________| |
2276222770
22771 |?- opt_parse(ExampleOptsSpec, ExampleArgs, Opts, PositionalArgs, |
22772 | [ output_functor(appl_config) |
22773 | ]). |
22774 | |
2276322775 |Opts = [ appl_config(verbose, 2), |
2276422776 | , appl_config(label, 'REPORT') |
22777
2276522778 | ... |
2276622779 ||_________]____________________________________________________________ ||
2276722780
2297122984
2297222985
2297322986 oorrdd__sseelleeccttcchhkk((_+_I_t_e_m_, _?_S_e_t_1_, _?_S_e_t_2)) _[_s_e_m_i_d_e_t_]
22974 Is true when select(Item, Set1, Set2) and _S_e_t_1, _S_e_t_2 are both
22975 sorted lists without duplicates. This implementation is only
22976 expected to work for _I_t_e_m ground and either _S_e_t_1 or _S_e_t_2 ground.
22977 The "chk" suffix is meant to remind you of memberchk/2, which also
22978 expects its first argument to be ground. ord_selectchk(X, S, T)
22979 => ord_memberchk(X, S) & \+ ord_memberchk(X, T).
22987 Selectchk/3, specialised for ordered sets. Is true when
22988 select(Item, Set1, Set2) and _S_e_t_1, _S_e_t_2 are both sorted lists
22989 without duplicates. This implementation is only expected to work
22990 for _I_t_e_m ground and either _S_e_t_1 or _S_e_t_2 ground. The "chk"
22991 suffix is meant to remind you of memberchk/2, which also expects
22992 its first argument to be ground. ord_selectchk(X, S, T) =>
22993 ord_memberchk(X, S) & \+ ord_memberchk(X, T).
2298022994
2298122995 aauutthhoorr Richard O'Keefe
2298222996
2318623200
2318723201
2318823202 llaazzyy__lliisstt__llooccaattiioonn((_-_L_o_c_a_t_i_o_n)) // _[_d_e_t_]
23189 True when _L_o_c_a_t_i_o_n is an (error) location term that represents the
23190 current location in the DCG list.
23203 Determine current (error) location in a lazy list. True when
23204 _L_o_c_a_t_i_o_n is an (error) location term that represents the current
23205 location in the DCG list.
2319123206
2319223207 ___________________________________________________________Arguments_
2319323208 _L_o_c_a_t_i_o_n is a term file(Name, Line, LinePos, CharNo)
2461624631
2461724632
2461824633 ccrreeaattee__ppooooll((_+_P_o_o_l_N_a_m_e)) _[_s_e_m_i_d_e_t_,_m_u_l_t_i_f_i_l_e_]
24619 This hook is called if thread_create_in_pool/4 discovers that
24620 the thread pool does not exist. If the hook succeeds,
24621 thread_create_in_pool/4 retries creating the thread. For example,
24622 we can use the following declaration to create threads in the pool
24623 media, which holds a maximum of 20 threads.
24634 Hook to create a thread pool lazily. The hook is called if
24635 thread_create_in_pool/4 discovers that the thread pool does not
24636 exist. If the hook succeeds, thread_create_in_pool/4 retries
24637 creating the thread. For example, we can use the following
24638 declaration to create threads in the pool media, which holds a
24639 maximum of 20 threads.
2462424640
2462524641 ____________________________________________________________________| |
2462624642 | :- multifile thread_pool:create_pool/1. |
2462724643 | |
24628
2462924644 | thread_pool:create_pool(media) :- |
24645
2463024646 ||____thread_pool_create(media,_20,_[]).____________________________ ||
2463124647
2463224648
2732327339
2732427340 same_length/2 Is true when List1 and List2 are lists with the same number of elements.
2732527341 select/3 Is true when List1, with Elem removed, results in List2.
27326 select/4 True if XList is unifiable with YList apart a single element at the same position that is unified with X in XList and with Y in YList.
27342 select/4 Select from two lists at the same positon.
2732727343 selectchk/3 Semi-deterministic removal of first element in List that unifies with Elem.
2732827344 selectchk/4 Semi-deterministic version of select/4.
2732927345 subset/2 True if all elements of SubSet belong to Set as well.
2738127397 ord_intersection/3 Intersection holds the common elements of Set1 and Set2.
2738227398 ord_intersection/4 Intersection and difference between two ordered sets.
2738327399 ord_memberchk/2 True if Element is a member of OrdSet, compared using ==.
27384 ord_selectchk/3 Is true when select(Item, Set1, Set2) and Set1, Set2 are both sorted lists without duplicates.
27400 ord_selectchk/3 Selectchk/3, specialised for ordered sets.
2738527401 ord_seteq/2 True if Set1 and Set2 have the same elements.
2738627402 ord_subset/2 Is true if all elements of Sub are in Super.
2738727403
2745927475 phrase_from_stream/2 Helper for phrase_from_file/3.
2746027476 stream_to_lazy_list/2 Create a lazy list representing the character codes in Stream.
2746127477 lazy_list_character_count/3True when CharCount is the current character count in the Lazy list.
27462 lazy_list_location/3 True when Location is an (error) location term that represents the current location in the DCG list.
27478 lazy_list_location/3 Determine current (error) location in a lazy list.
2746327479 syntax_error/3 Throw the syntax error Error at the current location of the input.
2746427480
2746527481
2763527651
2763627652 1166..22..2288 lliibbrraarryy((tthhrreeaadd__ppooooll))
2763727653
27638 create_pool/1 This hook is called if thread_create_in_pool/4 discovers that the thread pool does not exist.
27654 create_pool/1 Hook to create a thread pool lazily.
2763927655 current_thread_pool/1 True if Name refers to a defined thread pool.
2764027656 thread_create_in_pool/4Create a thread in Pool.
2764127657 thread_pool_create/3 Create a pool of threads.
2789327909
2789427910 [Wielemaker & Angelopoulos, ] Jan Wielemaker and Nicos Angelopoulos.
2789527911
27896 1672
27912 1671
2789727913
2789827914
2789927915 Index
2790827924 /\/2, 520 PL_term_type(), 943
2790927925 =\=/2, 480 PL_thread_at_exit(), 883
2791027926 |/2, 217 PL_thread_attach_engine(), 881
27911 #/\/2, 1292 PL_thread_destroy_engine(), 882
27912 #=/2, 1284 PL_thread_self(), 879
27913 #<==>/2, 1289 PL_throw(), 1109
27914 #>=/2, 1282 PL_toplevel(), 1156
27915 #>/2, 1286 PL_type_error(), 1062
27916 #=</2, 1283 PL_unify(), 1023
27917 #</2, 1287 PL_unify_arg(), 1038
27918 #\=/2, 1285 PL_unify_atom(), 1024
27919 #\/1, 1288 PL_unify_atom_chars(), 1027
27927 #/\/2, 1291 PL_thread_destroy_engine(), 882
27928 #=/2, 1283 PL_thread_self(), 879
27929 #<==>/2, 1288 PL_throw(), 1109
27930 #>=/2, 1281 PL_toplevel(), 1156
27931 #>/2, 1285 PL_type_error(), 1062
27932 #=</2, 1282 PL_unify(), 1023
27933 #</2, 1286 PL_unify_arg(), 1038
27934 #\=/2, 1284 PL_unify_atom(), 1024
27935 #\/1, 1287 PL_unify_atom_chars(), 1027
2792027936 ,/2, 215 PL_unify_atom_nchars(), 984
27921 #\//2, 1293 PL_unify_blob(), 1076
27922 {}/1, 1315 PL_unify_bool(), 1025
27937 #\//2, 1292 PL_unify_blob(), 1076
27938 {}/1, 1314 PL_unify_bool(), 1025
2792327939 !/0, 214 PL_unify_bool_ex(), 1058
2792427940 /, 79 PL_unify_chars(), 1026
2792527941 //2, 491 PL_unify_float(), 1033
2793227948 ///2, 494 PL_unify_list_nchars(), 987
2793327949 ->/2, 218 PL_unify_list_ncodes(), 986
2793427950 =</2, 478 PL_unify_mpq(), 1084
27935 #<==/2, 1291 PL_unify_mpz(), 1083
27951 #<==/2, 1290 PL_unify_mpz(), 1083
2793627952 <</2, 518 PL_unify_nil(), 1037
2793727953 </2, 477 PL_unify_nil_ex(), 1057
2793827954 -/1, 486 PL_unify_pointer(), 1034
2794527961 +/1, 487 PL_uninstantiation_error(), 1060
2794627962 +/2, 488 PL_unregister_atom(), 940
2794727963 **/2, 541 PL_unregister_blob_type(), 1073
27948 #==>/2, 1290 PL_warning(), 1132
27964 #==>/2, 1289 PL_warning(), 1132
2794927965 >>/2, 517 PL_wchars_to_term(), 1041
2795027966 ;/2, 216 plus/3, 474
2795127967 *->/2, 219 PLVERSION, 1176
2795227968 =@=/2, 203 popcount/1, 554
2795327969 \=@=/2, 204 portable
27954 @>=/2, 199 prolog code, 1620
27970 @>=/2, 199 prolog code, 1619
2795527971 @>/2, 198 portray/1, 32, 81, 384, 394, 396,
27956 */2, 490 1091, 1150, 1609
27972 */2, 490 1091, 1150, 1608
2795727973 @=</2, 197 portray_clause/1, 169, 171, 172
2795827974 @</2, 196 portray_clause/2, 171, 172, 411
2795927975 =../2, 409 portray_text _l_i_b_r_a_r_y, 394
2796027976 \, 79 portray_text/1, 255
2796127977 _PL_get_arg(), 975 powm/3, 543
27962 64-bits precedence, 1625
27978 64-bits precedence, 1624
2796327979 platforms, 72 pred/1, 738
2796427980
27965 abolish/1, 257, 258 predicate,d1625ynamic, 1625
27966 abolish/2, 258 exported, 1625
27967 abolish/[1 imported, 1625
27968 2], 41 predicate indicator, 108, 1625
27969 abort/0, 20, 32, 306, 311, 318, predicate_options/3, 1452
27981 abolish/1, 257, 258 predicate,d1624ynamic, 1624
27982 abolish/2, 258 exported, 1624
27983 abolish/[1 imported, 1624
27984 2], 41 predicate indicator, 108, 1624
27985 abort/0, 20, 32, 306, 311, 318, predicate_options/3, 1451
2797027986 655, 809, 861, 1134, 1145, predicate_property/2, 114, 223,
27971 1599 288, 295, 297, 732, 758
27987 1598 288, 295, 297, 732, 758
2797227988 abs/1, 498 predsort/3, 566
27973 absolute_file_name/2, 7, 111, 123, prefix/2, 1358
27989 absolute_file_name/2, 7, 111, 123, prefix/2, 1357
2797427990 639, 641, 651, 1189 print/1, 384, 394, 396, 577, 582,
27975 absolute_file_name/3, 41, 44, 103, 1091, 1638
27991 absolute_file_name/3, 41, 44, 103, 1091, 1637
2797627992 110, 120, 126, 607, 639, print/2, 395
27977 640, 1128, 1129, 1515, 1516 print_message/2, 41, 44, 111, 128,
27993 640, 1128, 1129, 1514, 1515 print_message/2, 41, 44, 111, 128,
2797827994 absolute_file_name/[2 238--241, 248, 400, 704,
27979 3], 41, 119, 640 825, 827, 1638
27995 3], 41, 119, 640 825, 827, 1637
2798027996 access_file/2, 41, 629, 640 print_message_lines/3, 239--241,
27981 acos/1, 528 244, 248, 1638
27982 acosh/1, 536 priority, 1625
27983 acquire(), 1069 process _l_i_b_r_a_r_y, 593
27984 acyclic_term/1, 59, 188, 189, 202 process_create/3, 593, 601
27985 add_edges/3, 1556 profile file, 14
27997 acos/1, 528 244, 248, 1637
27998 acosh/1, 536 priority, 1624
27999 acquire(), 1069 process _l_i_b_r_a_r_y, 306, 593
28000 acyclic_term/1, 59, 188, 189, 202 process_create/3, 306, 593, 601
28001 add_edges/3, 1555 profile file, 14
2798628002 add_import_module/3, 743, 745, 760 profile/1, 691, 875, 1158
27987 add_nb_set/2, 1389 profile/3, 692
27988 add_nb_set/3, 1389--1391 profiler/2, 694
27989 add_vertices/3, 1554 profiling
28003 add_nb_set/2, 1388 profile/3, 692
28004 add_nb_set/3, 1388--1390 profiler/2, 694
28005 add_vertices/3, 1553 profiling
2799028006 agent, 1236 foreign code, 1177
27991 aggregate/3, 732, 1196 program, 1625
28007 aggregate/3, 732, 1196 program, 1624
2799228008 aggregate/4, 732, 1197 prolog/0, 20, 319, 654, 658, 659,
27993 aggregate_all/3, 1198 737, 1156, 1593
27994 aggregate_all/4, 1199 prolog/assertion_failed, 1349
27995 all_different/1, 1278 prolog/debug_print_hook, 1347
27996 all_distinct/1, 1279 prolog:break_hook/6, 1603
27997 AMD64, 73 prolog:called_by/2, 1486
27998 anonymous prolog:comment_hook/3, 1614
27999 variable, 58 prolog:debug_control_hook/1, 1610
28000 anonymous variable, 1625 prolog:help_hook/1, 1611
28009 aggregate_all/3, 1198 737, 1156, 1592
28010 aggregate_all/4, 1199 prolog/assertion_failed, 1348
28011 all_different/1, 1277 prolog/debug_print_hook, 1346
28012 all_distinct/1, 1278 prolog:break_hook/6, 1602
28013 AMD64, 73 prolog:called_by/2, 1485
28014 anonymous prolog:comment_hook/3, 1613
28015 variable, 58 prolog:debug_control_hook/1, 1609
28016 anonymous variable, 1624 prolog:help_hook/1, 1610
2800128017 ansi_format/3, 243 prolog:message_line_element/2, 244
28002 ansi_term _l_i_b_r_a_r_y, 41, 240, 244 prolog_breakpoints _l_i_b_r_a_r_y, 1602
28003 append/1, 320, 324 prolog_choice_attribute/3, 1590,
28004 append/2, 730, 1357 1592, 1599
28005 append/3, 301, 432, 1356 prolog_codewalk _l_i_b_r_a_r_y, 297
28006 apply/2, 224 prolog_current_choice/1, 1590, 1592,
28007 apply_macros _l_i_b_r_a_r_y, 255 1595
28008 apropos/1, 26, 27, 44, 1611, 1638 prolog_current_frame/1, 1589, 1591
28009 arg/3, 408 prolog_cut_to/1, 1595
28018 ansi_term _l_i_b_r_a_r_y, 41, 240, 244 prolog_breakpoints _l_i_b_r_a_r_y, 1601
28019 append/1, 320, 324 prolog_choice_attribute/3, 1589,
28020 append/2, 730, 1356 1591, 1598
28021 append/3, 301, 432, 1355 prolog_codewalk _l_i_b_r_a_r_y, 297
28022 apply/2, 224 prolog_current_choice/1, 1589, 1591,
28023 apply_macros _l_i_b_r_a_r_y, 255 1594
28024 apropos/1, 26, 27, 44, 1610, 1637 prolog_current_frame/1, 1588, 1590
28025 arg/3, 408 prolog_cut_to/1, 1594
2801028026 arithmetic_function/1, 1107 prolog_edit:edit_command/2, 166
28011 arity, 1625 prolog_edit:edit_source/1, 165
28027 arity, 1624 prolog_edit:edit_source/1, 165
2801228028 asin/1, 527 prolog_edit:load/0, 167
2801328029 asinh/1, 535 prolog_edit:locate/2, 164
28014 assert, 1625 prolog_edit:locate/3, 163
28030 assert, 1624 prolog_edit:locate/3, 163
2801528031 assert/1, 110, 256, 263, 265, 278, prolog_exception_hook/4, 236, 704,
28016 284, 285, 297, 723, 731, 1604, 1605
28032 284, 285, 297, 723, 731, 1603, 1604
2801728033 761, 786, 852 prolog_file_type/2, 110, 121, 640
28018 assert/2, 41, 268, 275, 300 prolog_frame_attribute/3, 302, 1591,
28019 assert_predicate_options/4, 1453 1599, 1605
28034 assert/2, 41, 268, 275, 300 prolog_frame_attribute/3, 302, 1590,
28035 assert_predicate_options/4, 1452 1598, 1604
2802028036 asserta/1, 18, 59, 60, 118, 203, prolog_ide _c_l_a_s_s, 105
2802128037 263, 264, 266, 267, 733, prolog_ide/1, 104, 105
28022 735, 1625 prolog_list_goal/1, 1609
28038 735, 1624 prolog_list_goal/1, 1608
2802328039 asserta/2, 266, 275 prolog_load_context/2, 126, 127,
28024 assertion/1, 1348, 1603 399, 1621
28025 assertz/1, 118, 259, 264, 265, 302, prolog_load_file/2, 111, 1612, 1613
28026 1625 prolog_server _l_i_b_r_a_r_y, 304, 319
28027 assertz/2, 267, 268, 275 prolog_skip_frame/1, 1600, 1601
28028 assignment/2, 1529 prolog_skip_level/2, 1600, 1601
28029 assoc _l_i_b_r_a_r_y, 1220, 1387 prolog_stack _l_i_b_r_a_r_y, 1591, 1605
28040 assertion/1, 1347, 1602 399, 1620
28041 assertz/1, 118, 259, 264, 265, 302, prolog_load_file/2, 111, 1611, 1612
28042 1624 prolog_server _l_i_b_r_a_r_y, 304, 319
28043 assertz/2, 267, 268, 275 prolog_skip_frame/1, 1599, 1600
28044 assignment/2, 1528 prolog_skip_level/2, 1599, 1600
28045 assoc _l_i_b_r_a_r_y, 1220, 1386 prolog_stack _l_i_b_r_a_r_y, 1590, 1604
2803028046 assoc_to_keys/2, 1222 prolog_stack_property/2, 704, 705
2803128047 assoc_to_list/2, 1221 prolog_to_os_filename/2, 79, 607,
2803228048 assoc_to_values/2, 1223 631, 641, 645
2803328049 at_end_of_stream/0, 377 prolog_trace_interception/4, 94,
28034 at_end_of_stream/1, 378, 382 670, 704, 1591, 1592, 1599
28050 at_end_of_stream/1, 378, 382 670, 704, 1590, 1591, 1598
2803528051 at_end_of_stream/[0 prolog_xref _l_i_b_r_a_r_y, 102, 724
28036 1], 311, 1511 prompt
28052 1], 311, 1510 prompt
2803728053 at_halt/1, 41, 128, 129, 657, 831, alternatives, 41
28038 1147, 1157, 1618, 1638 prompt/2, 403--405, 825
28054 1147, 1157, 1617, 1637 prompt/2, 403--405, 825
2803928055 atan/1, 529 prompt1/1, 405
28040 atan/2, 531 proper_length/2, 1370
28041 atan2/2, 530 property, 1625
28056 atan/2, 531 proper_length/2, 1369
28057 atan2/2, 530 property, 1624
2804228058 atanh/1, 537 protocol/1, 662, 663, 665
28043 atom, 1625 protocola/1, 663, 665
28059 atom, 1624 protocola/1, 663, 665
2804428060 atom/1, 181, 941 protocolling/1, 665
28045 atom_chars/2, 41, 109, 335, 362, prove, 1625
28046 422, 424, 426, 448 public list, 1625
28061 atom_chars/2, 41, 109, 335, 362, prove, 1624
28062 422, 424, 426, 448 public list, 1624
2804728063 atom_codes/2, 41, 109, 335, 422-- public/1, 283, 288, 297, 1183
2804828064 424, 428, 429, 448 put/1, 345, 346
2804928065 atom_concat/3, 432, 462 put/2, 346
2807128087 autoload/0, 49, 115, 1181, 1183, 104, 1180, 1181, 1187
2807228088 1263 qsave_program/[1
2807328089 autoload_path/1, 46 2], 18, 38, 41, 297, 896, 1153,
28074 automaton/3, 1303 1163, 1183, 1185
28075 automaton/8, 1304 quasi_quotation_syntax/1, 297, 1490
28076
28077 b_getval/2, 788, 790 quasi_quotation_syntax_error/1,q1491uasi_quotations _l_i_b_r_a_r_y, 1596
28078 b_setval/2, 786, 787, 1607 query, 1625
28079 backtracking, 1625 quiet, 18
28090 automaton/3, 1302 1163, 1183, 1185
28091 automaton/8, 1303 quasi_quotation_syntax/1, 297, 1489
28092
28093 b_getval/2, 788, 790 quasi_quotation_syntax_error/1,q1490uasi_quotations _l_i_b_r_a_r_y, 1595
28094 b_setval/2, 786, 787, 1606 query, 1624
28095 backtracking, 1624 quiet, 18
2808028096 bagof/3, 59, 568, 570, 571, 732,
28081 1638 random _l_i_b_r_a_r_y, 556
28082 bb_inf/3, 1323 random/1, 504, 1493
28083 bb_inf/4, 1322 random/3, 1495, 1496
28084 bb_inf/5, 1321 random_between/3, 1494
28097 1637 random _l_i_b_r_a_r_y, 556
28098 bb_inf/3, 1322 random/1, 504, 1492
28099 bb_inf/4, 1321 random/3, 1494, 1495
28100 bb_inf/5, 1320 random_between/3, 1493
2808528101 between/3, 472 random_float/0, 505
28086 binding, 1625 random_member/2, 1503
28087 bits random_perm2/4, 1502
28088 64, 71 random_permutation/2, 1508, 1509
28102 binding, 1624 random_member/2, 1502
28103 bits random_perm2/4, 1501
28104 64, 71 random_permutation/2, 1507, 1508
2808928105 blackboard, 1236 random_property/1, 556, 557
28090 blob/2, 182, 305 random_select/3, 1504, 1505
28091 body, 1625 randseq/3, 1507
28092 Boehm GC, 1170 randset/3, 1506
28106 blob/2, 182, 305 random_select/3, 1503, 1504
28107 body, 1624 randseq/3, 1506
28108 Boehm GC, 1170 randset/3, 1505
2809328109 BOM, 65 rational
2809428110 break/0, 20, 32, 41, 654, 809, 1134 number, 483
2809528111 broadcast, 1236 rational trees, 59
2809628112 broadcast _l_i_b_r_a_r_y, 1236 rational/1, 178, 509
2809728113 broadcast/1, 1237, 1238 rational/3, 179, 483
2809828114 broadcast_request/1, 1238 rationalize/1, 510
28099 built-in predicate, 1625 rb_new/1, 41
28115 built-in predicate, 1624 rb_new/1, 41
2810028116 Byte Order Mark, 65 rbtrees _l_i_b_r_a_r_y, 41
2810128117 byte_count/2, 316, 338 RDF
2810228118 call/1, 102, 186, 214, 222, 234, rdimemoryvusage,/742, 496
28103 674, 688, 696, 698, 723, reachable/3, 1567
28104 781, 1085, 1603 read/1, 41, 69, 304--306, 355, 391,
28119 674, 688, 696, 698, 723, reachable/3, 1566
28120 781, 1085, 1602 read/1, 41, 69, 304--306, 355, 391,
2810528121 call/2, 186, 223 397, 400, 404, 457, 684,
28106 call/3, 384 794, 1516, 1638
28122 call/3, 384 794, 1515, 1637
2810728123 call/[2-8], 223 read/2, 337, 398
2810828124 call_cleanup/2, 229, 231, 232, 335, read_clause/3, 58, 399, 684
28109 1593, 1624 read_file_to_codes/3, 1515
28110 call_cleanup/3, 232 read_file_to_terms/3, 1516
28125 1592, 1623 read_file_to_codes/3, 1514
28126 call_cleanup/3, 232 read_file_to_terms/3, 1515
2811128127 call_residue_vars/2, 785 read_from_atom/3, 431
2811228128 call_shared_object_function/2, 910 read_from_chars/2, 1254
2811328129 call_with_depth_limit/3, 228 read_history/6, 403
28114 call_with_time_limit/2, 229 read_line_to_codes/2, 1511, 1512
28115 callable/1, 186, 950, 1476 read_line_to_codes/3, 1511, 1512
28130 call_with_time_limit/2, 229 read_line_to_codes/2, 1510, 1511
28131 callable/1, 186, 950, 1475 read_line_to_codes/3, 1510, 1511
2811628132 cancel_halt/1, 128, 129, 657, 1157 read_link/3, 646
2811728133 catch/3, 233--236, 400, 655, 696, read_pending_input/3, 382
28118 825, 833, 834, 1592, 1605-- read_stream_to_codes/2, 1513, 1514
28119 1607, 1638 read_stream_to_codes/3, 1514
28134 825, 833, 834, 1591, 1604-- read_stream_to_codes/2, 1512, 1513
28135 1606, 1637 read_stream_to_codes/3, 1513
2812028136 ceil/1, 516 read_term/2, 41, 126, 145, 384,
28121 ceiling/1, 515 400, 401, 403, 431, 1614
28122 chain/2, 1307 read_term/3, 58, 384, 399--402,
28123 char_code/2, 109, 425 468, 659, 1614
28137 ceiling/1, 515 400, 401, 403, 431, 1613
28138 chain/2, 1306 read_term/3, 58, 384, 399--402,
28139 char_code/2, 109, 425 468, 659, 1613
2812428140 char_conversion/2, 41, 468, 469 read_term/[2
2812528141 char_type/2, 57, 440, 447--450 3], 400
2812628142 character set, 53 read_term_from_atom/3, 402
2812728143 character_count/2, 316, 338, 339 read_term_from_chars/3, 1255
2812828144 chdir/1, 651, 652 readutil _l_i_b_r_a_r_y, 83
2812928145 check _l_i_b_r_a_r_y, 117, 297 reconsult, 110
28130 check/0, 115, 1260, 1261 record _l_i_b_r_a_r_y, 1517
28131 check_predicate_option/3, 1455 record/1, 1517, 1518
28132 check_predicate_options/0, 1458 recorda/2, 270
28146 check/0, 115, 1260, 1261 record _l_i_b_r_a_r_y, 1516
28147 check_predicate_option/3, 1454 record/1, 1516, 1517
28148 check_predicate_options/0, 1457 recorda/2, 270
2813328149 chr _l_i_b_r_a_r_y, 806, 810 recorda/3, 59, 269, 271, 275, 294,
2813428150 chr_constraint/1, 804, 818 786, 1121, 1122, 1125
2813528151 chr_leash/1, 813 recorded/2, 274
2813728153 chr_option/2, 800, 818 recordz/2, 272
2813828154 chr_show_store/1, 814 recordz/3, 59, 271, 275
2813928155 chr_trace/0, 809, 811 redefine_system_predicate/1, 260,
28140 chr_type/1, 805 1625
28141 circuit/1, 1300 reexport/1, 110, 111, 739, 1620
28142 clause, 1625 reexport/2, 110, 111, 740, 1620
28156 chr_type/1, 805 1624
28157 circuit/1, 1299 reexport/1, 110, 111, 739, 1619
28158 clause, 1624 reexport/2, 110, 111, 740, 1619
2814328159 clause/2, 169, 299, 300, 1183 registry, 67
28144 clause/3, 266, 275, 300, 302, 1185 registry _l_i_b_r_a_r_y, 1519
28145 clause/[2 registry_delete_key/1, 1524
28146 3], 41 registry_get_key/2, 1520
28147 clause_property/2, 114, 123, 297, registry_get_key/3, 1521
28148 302, 1591 registry_set_key/2, 1522
28149 close/1, 303, 309, 314 registry_set_key/3, 1523
28160 clause/3, 266, 275, 300, 302, 1185 registry _l_i_b_r_a_r_y, 1518
28161 clause/[2 registry_delete_key/1, 1523
28162 3], 41 registry_get_key/2, 1519
28163 clause_property/2, 114, 123, 297, registry_get_key/3, 1520
28164 302, 1590 registry_set_key/2, 1521
28165 close/1, 303, 309, 314 registry_set_key/3, 1522
2815028166 close/2, 310 release(), 1070
2815128167 close_dde_conversation/1, 709 reload_foreign_libraries/0, 905
2815228168 close_shared_object/1, 909 reload_library_index/0, 45, 46, 49
2815328169 clpfd _l_i_b_r_a_r_y, 741 rem/2, 493
28154 clpqr _l_i_b_r_a_r_y, 1313 rename_file/2, 593, 636
28170 clpqr _l_i_b_r_a_r_y, 1312 rename_file/2, 593, 636
2815528171 code_type/2, 440, 446, 448, 449 repeat/0, 209, 213, 228, 229
2815628172 collate, 454 representation_error/1, 1061
28157 collation_key/2, 440, 455, 456, 599 require/1, 115, 1620
28158 COM, 1067 reset_gensym/0, 1353
28159 command line reset_gensym/1, 1352
28173 collation_key/2, 440, 455, 456, 599 require/1, 115, 1619
28174 COM, 1067 reset_gensym/0, 1352
28175 command line reset_gensym/1, 1351
2816028176 arguments, 18 reset_profiler/0, 695
2816128177 compare resource/3, 41, 1180, 1181, 1187,
2816228178 language-specific, 454 1189, 1190
2816328179 compare(), 1071 resource_error/1, 1066
28164 compare/3, 59, 200, 566, 1119, 1624 retract, 1625
28180 compare/3, 59, 200, 566, 1119, 1623 retract, 1624
2816528181 compile_aux_clauses/1, 110, 138 retract/1, 110, 118, 256, 257, 261,
2816628182 compile_predicates/1, 284, 285 278, 284, 285, 297, 852
2816728183 compiling/0, 132, 157 retract/2, 761
28168 complement/2, 1561 retractall/1, 256, 257, 262
28169 completion retractall_predicate_options/0, 1460
28184 complement/2, 1560 retractall/1, 256, 257, 262
28185 completion retractall_predicate_options/0, 1459
2817028186 TAB, 85 rev/3, 725
28171 compose/3, 1562 reverse/2, 255, 725, 1372
28172 compound, 1625 rl_add_history/1, 1617
28173 compound/1, 185 rl_read_history/1, 1619
28174 concat_atom/3, 435 rl_read_init_file/1, 1616
28175 constraint/3, 1530, 1531 rl_write_history/1, 1618
28176 constraint/4, 1531 round/1, 506
28177 constraint_add/4, 1532
28187 compose/3, 1561 reverse/2, 255, 725, 1371
28188 compound, 1624 rl_add_history/1, 1616
28189 compound/1, 185 rl_read_history/1, 1618
28190 concat_atom/3, 435 rl_read_init_file/1, 1615
28191 constraint/3, 1529, 1530 rl_write_history/1, 1617
28192 constraint/4, 1530 round/1, 506
28193 constraint_add/4, 1531
2817828194 consult/1, 11, 14, 44, 93, 110- same_file/2, 631, 633
28179 -114, 117, 153, 156, 157, same_length/2, 1371
28195 -114, 117, 153, 156, 157, same_length/2, 1370
2818028196 286 same_term/2, 421
28181 context module, 1625 sandbox/safe_meta, 1202
28182 context_module/1, 732, 754, 1091 scalar_product/4, 1281
28197 context module, 1624 sandbox/safe_meta, 1202
28198 context_module/1, 732, 754, 1091 scalar_product/4, 1280
2818328199 convert_time/2, 41 scanl/4, 1216
2818428200 convert_time/[2 scanl/5, 1217
2818528201 8], 638 scanl/6, 1218
2818628202 copy_file/2, 593 scanl/7, 1219
28187 copy_predicate_clauses/2, 259 see/1, 303, 304, 306, 320--322
28203 copy_predicate_clauses/2, 259 see/1, 303, 304, 320--322
2818828204 copy_stream_data/2, 381, 382 seeing/1, 320, 321, 325
2818928205 copy_stream_data/3, 317, 380 seek/4, 311, 315, 317
2819028206 copy_term/2, 59, 203, 415, 417, seen/0, 327
2819128207 420, 761, 774, 788 select(), 337
28192 copy_term/3, 384, 770, 771, 773 select/3, 1359
28193 copy_term_nat/2, 774 select/4, 1361
28194 copysign/1, 500 select_option/3, 1399
28195 cos/1, 525 select_option/4, 1400
28196 cosh/1, 533 selectchk/3, 1360
28197 count_atom_results/3, 752 selectchk/4, 1362
28208 copy_term/3, 384, 770, 771, 773 select/3, 1358
28209 copy_term_nat/2, 774 select/4, 1360
28210 copysign/1, 500 select_option/3, 1398
28211 cos/1, 525 select_option/4, 1399
28212 cosh/1, 533 selectchk/3, 1359
28213 count_atom_results/3, 752 selectchk/4, 1361
2819828214 cputime/0, 550 serialize, 253
28199 create_pool/1, 1549 serialized/2, 1296
28200 create_prolog_flag/3, 41--43 set_breakpoint/4, 1603
28201 crypt _l_i_b_r_a_r_y, 1636 set_end_of_stream/1, 379
28202 csv//1, 1332 set_input/1, 304, 318, 322, 330
28203 csv//2, 1333 set_locale/1, 444
28204 csv_read_file/2, 1330 set_module/1, 742, 759
28205 csv_read_file/3, 1331 set_output/1, 304, 323, 331
28206 csv_read_file_row/3, 1334 set_prolog_flag/2, 30, 40--43, 110,
28207 csv_write_file/2, 1335 475
28208 csv_write_file/3, 1336 set_prolog_IO/3, 304, 319
28209 csv_write_stream/3, 1337 set_prolog_stack/2, 19, 67, 675,
28215 create_pool/1, 1548 serialized/2, 1295
28216 create_prolog_flag/3, 41--43 set_breakpoint/4, 1602
28217 crypt _l_i_b_r_a_r_y, 1635 set_end_of_stream/1, 379
28218 csv//1, 1331 set_input/1, 304, 318, 322, 330
28219 csv//2, 1332 set_locale/1, 444
28220 csv_read_file/2, 1329 set_module/1, 742, 759
28221 csv_read_file/3, 1330 set_output/1, 304, 323, 331
28222 csv_read_file_row/3, 1333 set_prolog_flag/2, 30, 40--43, 110,
28223 csv_write_file/2, 1334 475
28224 csv_write_file/3, 1335 set_prolog_IO/3, 304, 319
28225 csv_write_stream/3, 1336 set_prolog_stack/2, 19, 67, 675,
2821028226 ctype _l_i_b_r_a_r_y, 446 704, 705, 825
28211 cumulative/1, 1301 set_random/1, 504, 556, 557
28212 cumulative/2, 1302 set_stream/2, 64, 304, 306, 311,
28227 cumulative/1, 1300 set_random/1, 504, 556, 557
28228 cumulative/2, 1301 set_stream/2, 64, 304, 306, 311,
2821328229 current_arithmetic_function/1, 558 318, 319, 337, 373, 444
2821428230 current_atom/1, 290 set_stream_position/2, 311, 315, 317
28215 current_blob/2, 291, 1068 set_url_encoding/2, 1576
28231 current_blob/2, 291, 1068 set_url_encoding/2, 1575
2821628232 current_char_conversion/2, 468, 469 setarg/3, 108, 415, 417, 418, 420,
28217 current_flag/1, 293 421, 765, 794, 1517
28233 current_flag/1, 293 421, 765, 794, 1516
2821828234 current_foreign_library/2, 904, 1181 setenv/2, 597
2821928235 current_format_predicate/2, 586 setlocale/1, 825
2822028236 current_functor/2, 292 setlocale/3, 456, 599
28221 current_input/1, 126, 304, 325, 332 setof/3, 59, 571, 732, 1638
28222 current_key/1, 273, 294 setrand/1, 1497
28237 current_input/1, 126, 304, 325, 332 setof/3, 59, 571, 732, 1637
28238 current_key/1, 273, 294 setrand/1, 1496
2822328239 current_locale/1, 445 setup_call_catcher_cleanup/4, 230
2822428240 current_module/1, 295, 757 setup_call_cleanup/3, 229, 231, 829,
2822528241 current_op/3, 466 857, 858
28226 current_option_arg/2, 1456 shadow_price/3, 1537
28227 current_output/1, 304, 326, 333 shared, 1625
28242 current_option_arg/2, 1455 shadow_price/3, 1536
28243 current_output/1, 304, 326, 333 shared, 1624
2822828244 current_predicate/1, 223, 295--297 shell/0, 595, 600
2822928245 current_predicate/2, 295, 296 shell/1, 79, 166, 594, 600
28230 current_predicate_option/3, 1454 shell/2, 593, 601
28231 current_predicate_options/3, 1457 shell/[0-2], 597
28246 current_predicate_option/3, 1453 shell/2, 593, 601
28247 current_predicate_options/3, 1456 shell/[0-2], 597
2823228248 current_prolog_flag/2, 18, 40, 41, shell/[1
2823328249 45, 50, 54, 111, 400, 714, 2], 593
28234 895, 1194, 1625 shell_register_dde/6, 1526
28235 current_signal/3, 250, 251 shell_register_file_type/4, 1525,
28236 current_stream/3, 312 1526
28237 current_thread_pool/1, 1546 shell_register_prolog/1, 1527
28238 cyclic terms, 59 shlib _l_i_b_r_a_r_y, 1638
28250 895, 1194, 1624 shell_register_dde/6, 1525
28251 current_signal/3, 250, 251 shell_register_file_type/4, 1524,
28252 current_stream/3, 312 1525
28253 current_thread_pool/1, 1545 shell_register_prolog/1, 1526
28254 cyclic terms, 59 shlib _l_i_b_r_a_r_y, 1637
2823928255 cyclic_term/1, 59, 188, 189 show_profile/1, 692, 693
2824028256
28241 daemon, 1236 sign/1,s499implex _l_i_b_r_a_r_y, 1528
28257 daemon, 1236 sign/1,s499implex _l_i_b_r_a_r_y, 1527
2824228258 date_time_stamp/2, 615 sin/1, 524
28243 date_time_value/3, 611, 616 singleton, 1625
28259 date_time_value/3, 611, 616 singleton, 1624
2824428260 day_of_the_week/2, 621 variable, 58
2824528261 DCG, 110, 253 sinh/1, 532
2824628262 dcg_translate_rule/2, 135, 139 size_file/2, 637
28247 dcg_translate_rule/4, 145 size_nb_set/2, 1392
28263 dcg_translate_rule/4, 145 size_nb_set/2, 1391
2824828264 dde_current_connection/2, 717 skip/1, 374, 375
2824928265 dde_current_service/2, 716 skip/2, 375
2825028266 dde_execute/2, 711 sleep/1, 722
2825128267 dde_poke/4, 712 socket _l_i_b_r_a_r_y, 337
2825228268 dde_register_service/2, 714 Solaris, 832
28253 dde_request/3, 710 solution, 1625
28269 dde_request/3, 710 solution, 1624
2825428270 dde_unregister_service/1, 715 sort/2, 563, 564, 566, 571
28255 debug _l_i_b_r_a_r_y, 105 source_exports/2, 1620, 1623
28271 debug _l_i_b_r_a_r_y, 105 source_exports/2, 1619, 1622
2825628272 debug/0, 32, 41, 236, 673, 675, source_file/1, 122
28257 676, 704, 869, 1134, 1603, source_file/2, 114, 123, 157, 297
28258 1605 source_file_property/2, 111, 114,
28259 debug/1, 1342 124
28260 debug/3, 239, 1346 source_location/2, 126, 127
28261 debug_message_context/1, 1345 split_string/4, 435
28273 676, 704, 869, 1134, 1602, source_file/2, 114, 123, 157, 297
28274 1604 source_file_property/2, 111, 114,
28275 debug/1, 1341 124
28276 debug/3, 239, 1345 source_location/2, 126, 127
28277 debug_message_context/1, 1344 split_string/4, 435
2826228278 debugging spy/1, 32, 41, 44, 95, 96, 106,
2826328279 exceptions, 236 108, 678, 736, 873, 874,
28264 debugging/0, 44, 673, 677, 1610 1610, 1638
28265 debugging/1, 1339, 1340 sqrt/1, 523
28266 debugging/2, 1341 stack
28280 debugging/0, 44, 673, 677, 1609 1609, 1637
28281 debugging/1, 1338, 1339 sqrt/1, 523
28282 debugging/2, 1340 stack
2826728283 default_module/2, 297, 743, 744 memory management, 68
2826828284 del_attr/2, 767, 776 stamp_date_time/3, 611, 614, 615
2826928285 del_attrs/1, 779 startup file, 14
28270 del_edges/3, 1557 statistics _l_i_b_r_a_r_y, 689
28271 del_vertices/3, 1555 statistics/0, 239, 687
28272 delete/3, 1364 statistics/2, 550, 686, 835
28286 del_edges/3, 1556 statistics _l_i_b_r_a_r_y, 689
28287 del_vertices/3, 1554 statistics/0, 239, 687
28288 delete/3, 1363 statistics/2, 550, 686, 835
2827328289 delete_directory/1, 650 stream_pair/3, 305, 314, 318
2827428290 delete_file/1, 593, 635, 648 stream_position_data/3, 126, 311,
28275 delete_import_module/2, 743, 745, 316, 400, 1614
28291 delete_import_module/2, 743, 745, 316, 400, 1613
2827628292 746, 760 stream_property/2, 65, 306, 311,
28277 derive_predicate_options/0, 1459 315--318, 400
28278 derived_predicate_options/1, 1462 stream_to_lazy_list/2, 1445
28279 derived_predicate_options/3, 1461 string/1, 183, 184, 582
28293 derive_predicate_options/0, 1458 315--318, 400
28294 derived_predicate_options/1, 1461 stream_to_lazy_list/2, 1444
28295 derived_predicate_options/3, 1460 string/1, 183, 184, 582
2828028296 deserialize, 253 string_code/3, 461
28281 deterministic/1, 229, 1593 string_codes/2, 459
28297 deterministic/1, 229, 1592 string_codes/2, 459
2828228298 Development environment, 75 string_concat/3, 462
28283 dialect.pl _l_i_b_r_a_r_y, 1620 string_length/2, 460
28299 dialect.pl _l_i_b_r_a_r_y, 1619 string_length/2, 460
2828428300 dif _l_i_b_r_a_r_y, 784 strip_module/3, 732, 752, 755, 760
28285 dif/2, 59, 192, 783, 784 structure, 1625
28301 dif/2, 59, 192, 783, 784 structure, 1624
2828628302 directory_file_path/3, 631 style_check/1, 58, 69, 111, 287,
2828728303 directory_files/2, 643 684
2828828304 discontiguous/1, 114, 239, 283, sub_atom/5, 438, 461, 463
2828928305 287, 684 sub_atom_icasechk/3, 439
2829028306 display/1, 577, 1002 sub_string/5, 461, 463
28291 div/2, 495 subset/2, 1385
28307 div/2, 495 subset/2, 1384
2829228308 do_not_use/1, 738 subsumes_chk/2, 282
2829328309 domain/2, 762 subsumes_term/2, 59, 201, 205
28294 domain_error/2, 1063 subtract/3, 1386
28310 domain_error/2, 1063 subtract/3, 1385
2829528311 downcase_atom/2, 447, 450, 451 succ/2, 473
28296 dump/3, 1324, 1328 succeed, 1625
28297 duplicate_term/2, 59, 415, 418, sum/3, 1280
28298 420, 789 sum_list/2, 1377
28299 dwim_match/2, 298, 719, 720 sup/2, 1318
28312 dump/3, 1323, 1327 succeed, 1624
28313 duplicate_term/2, 59, 415, 418, sum/3, 1279
28314 420, 789 sum_list/2, 1376
28315 dwim_match/2, 298, 719, 720 sup/2, 1317
2830028316 dwim_match/3, 720 swi/pce_profile _l_i_b_r_a_r_y, 689
2830128317 dwim_predicate/2, 298 swi_edit _l_i_b_r_a_r_y, 167
28302 dynamic predicate, 1625 swritef/2, 579
28318 dynamic predicate, 1624 swritef/2, 579
2830328319 dynamic/1, 41, 108, 114, 256, 262, swritef/3, 335, 574, 578
28304 283--285, 297, 753, 851, syntax_error/1, 1442
28320 283--285, 297, 753, 851, syntax_error/1, 1441
2830528321 852, 1183, 1262
2830628322
2830728323 e/0, 548 TABcompletion, 85
28308 edges/2, 1553 tab/1, 353
28324 edges/2, 1552 tab/1, 353
2830928325 edit/0, 41, 161 tab/2, 354
2831028326 edit/1, 41, 44, 85, 88, 93, 106, tan/1, 526
2831128327 114, 117, 159--163, 165, tanh/1, 534
28312 736, 1262, 1638 tdebug/0, 870, 874
28328 736, 1262, 1637 tdebug/0, 870, 874
2831328329 edit_source/1, 166 tdebug/1, 869, 870, 873
28314 editor _c_l_a_s_s, 84, 89 tell/1, 303, 304, 306, 320, 321,
28315 element/3, 1297 323, 324
28330 editor _c_l_a_s_s, 84, 89 tell/1, 303, 304, 320, 321, 323,
28331 element/3, 1296 324
2831628332 elif/1, 148 telling/1, 320, 321, 326
28317 else/0, 149 term, 1625
28333 else/0, 149 term, 1624
2831828334 Emacs, 23 term//1, 335
2831928335 emacs/[0 term_attvars/2, 775
2832028336 1], 88 term_expansion/2, 44, 110, 132--
2832128337 emacs/prolog_colour _l_i_b_r_a_r_y, 92 136, 146, 157, 659, 806,
28322 empty_assoc/1, 1224 1624
28323 empty_nb_set/1, 1388 term_expansion/4, 110, 144
28338 empty_assoc/1, 1224 1623
28339 empty_nb_set/1, 1387 term_expansion/4, 110, 144
2832428340 encoding/1, 64, 116 term_hash/2, 59, 62, 279--282
2832528341 endif/0, 150 term_hash/4, 62, 279, 281
2832628342 ensure_loaded/1, 34, 110, 113, 729 term_subsumer/3, 206
28327 entailed/1, 1316 term_to_atom/2, 335, 430, 1040
28328 environment/2, 1472 term_variables/2, 59, 400, 413, 414
28343 entailed/1, 1315 term_to_atom/2, 335, 430, 1040
28344 environment/2, 1471 term_variables/2, 59, 400, 413, 414
2832928345 epsilon/0, 549 term_variables/3, 413, 414
2833028346 erase/1, 266, 269, 275, 300 terms
2833128347 erf/1, 545 cyclic, 59
2833228348 erfc/1, 546 thread _l_i_b_r_a_r_y, 41
28333 error _l_i_b_r_a_r_y, 173, 1517 thread_at_exit/1, 657, 825, 831, 883
28349 error _l_i_b_r_a_r_y, 173, 1516 thread_at_exit/1, 657, 825, 831, 883
2833428350 eval/1, 551 thread_create/3, 825, 828, 831, 891
28335 eval_license/0, 1630--1632 thread_create_in_pool/4, 825, 1548
28336 exception/3, 786, 1606, 1607 thread_detach/1, 825, 828
28351 eval_license/0, 1629--1631 thread_create_in_pool/4, 825, 1547
28352 exception/3, 786, 1605, 1606 thread_detach/1, 825, 828
2833728353 exceptions thread_exit/1, 827, 829, 834
2833828354 debugging, 236 thread_get_message/1, 840, 845
2833928355 exclude/3, 1205 thread_get_message/2, 844--846
2834028356 exists_directory/1, 634 thread_get_message/3, 841, 846
2834128357 exists_file/1, 41, 630 thread_initialization/1, 786, 830
28342 exists_source/1, 1620, 1622 thread_join/2, 825, 827, 829, 834
28358 exists_source/1, 1619, 1621 thread_join/2, 825, 827, 829, 834
2834328359 exp/1, 540 thread_local/1, 242, 284, 297, 851,
2834428360 expand_answer/2, 659, 660 852
2834528361 expand_file_name/2, 41, 111, 597, thread_message_hook/3, 242
2834628362 600, 639, 640, 643, 644 thread_peek_message/1, 840, 841, 847
2834728363 expand_file_search_path/2, 120 thread_peek_message/2, 846, 847
28348 expand_goal/2, 41, 133--137, 147 thread_pool_create/3, 1544
28349 expand_goal/4, 141 thread_pool_destroy/1, 1545
28350 expand_query/4, 659 thread_pool_property/2, 1547
28364 expand_goal/2, 41, 133--137, 147 thread_pool_create/3, 1543
28365 expand_goal/4, 141 thread_pool_destroy/1, 1544
28366 expand_query/4, 659 thread_pool_property/2, 1546
2835128367 expand_term/2, 133--136, 139, 253, thread_property/2, 827, 828, 831,
28352 1518 834
28368 1517 834
2835328369 expand_term/4, 143 thread_self/1, 41, 826, 828, 831,
28354 expects_dialect/1, 111, 126, 1620, 839
28355 1621 thread_send_message/2, 839, 842, 843
28356 explain _l_i_b_r_a_r_y, 1638 thread_setconcurrency/2, 41, 832
28370 expects_dialect/1, 111, 126, 1619, 839
28371 1620 thread_send_message/2, 839, 842, 843
28372 explain _l_i_b_r_a_r_y, 1637 thread_setconcurrency/2, 41, 832
2835728373 explain/1, 28 thread_signal/2, 229, 850, 861,
2835828374 explain/2, 29 869, 1114, 1160
2835928375 export/1, 288, 749--751 thread_statistics/3, 834, 835
2836028376 export_list/2, 750 threads/0, 864
28361 exported predicate, 1625 throw/1, 32, 59, 233--235, 248,
28362
28363 fact, 1625 252,11829,08834,, 1849,11850,0, 1605--1607
28377 exported predicate, 1624 throw/1, 32, 59, 233--235, 248,
28378
28379 fact, 1624 252,11829,08834,, 1849,11850,0, 1604--1606
2836428380 fail/0, 137, 210 time/1, 550, 688
2836528381 false/0, 211 time_file/2, 638
28366 fd_dom/2, 1312 tmp_file/2, 647, 648
28367 fd_inf/2, 1309 tmp_file_stream/3, 647, 648
28368 fd_size/2, 1311 tnodebug/0, 872
28369 fd_sup/2, 1310 tnodebug/1, 871, 874
28370 fd_var/1, 1308 told/0, 328
28371 file_base_name/2, 632 top_sort/2, 1564
28372 file_directory_name/2, 631, 632 top_sort/3, 1565
28382 fd_dom/2, 1311 tmp_file/2, 647, 648
28383 fd_inf/2, 1308 tmp_file_stream/3, 647, 648
28384 fd_size/2, 1310 tnodebug/0, 872
28385 fd_sup/2, 1309 tnodebug/1, 871, 874
28386 fd_var/1, 1307 told/0, 328
28387 file_base_name/2, 632 top_sort/2, 1563
28388 file_directory_name/2, 631, 632 top_sort/3, 1564
2837328389 file_name_extension/3, 642 tprofile/1, 875, 876
28374 file_name_to_url/2, 1580, 1581 trace/0, 32, 41, 95, 96, 106, 667,
28390 file_name_to_url/2, 1579, 1580 trace/0, 32, 41, 95, 96, 106, 667,
2837528391 file_of_label/2, 737 673, 811, 812, 850, 1134,
28376 file_search_path/2, 14, 18, 41, 45, 1603, 1605
28392 file_search_path/2, 14, 18, 41, 45, 1602, 1604
2837728393 49, 80, 103, 111, 118, 119, trace/1, 41, 672
2837828394 121, 126, 1129, 1163, 1186, trace/2, 673
2837928395 1189, 1192 tracing/0, 668
2838028396 fileerrors/2, 41 transformation
2838128397 filesex _l_i_b_r_a_r_y, 593, 631 of program, 133
28382 find_chr_constraint/1, 815 transitive_closure/2, 1566
28383 findall/3, 59, 203, 209, 568, 569, transparent, 1625
28384 573, 761, 1638 transportation/4, 1538
28385 findall/4, 569 transpose/2, 1305, 1558
28386 flag/3, 277, 293, 418 transpose_pairs/2, 1435
28398 find_chr_constraint/1, 815 transitive_closure/2, 1565
28399 findall/3, 59, 203, 209, 568, 569, transparent, 1624
28400 573, 761, 1637 transportation/4, 1537
28401 findall/4, 569 transpose/2, 1304, 1557
28402 flag/3, 277, 293, 418 transpose_pairs/2, 1434
2838728403 flag:access_level, 41 trim_stacks/0, 701, 703, 704
2838828404 flag:address_bits, 41 true/0, 41, 137, 212, 228
2838928405 flag:agc_margin, 41 truncate/1, 513
2839428410 flag:argv, 41 tty_put/2, 590
2839528411 flag:associated_file, 41 tty_size/2, 591
2839628412 flag:autoload, 41 ttyflush/0, 357, 577
28397 flag:backquoted_string, 41 tuples_in/2, 1295
28413 flag:backquoted_string, 41 tuples_in/2, 1294
2839828414 flag:bounded, 41 type_error/2, 248, 1062, 1064
2839928415 flag:break_level, 41
2840028416 flag:c_cc, 41 UCS, 63
28401 flag:c_cflags, 41 ugraph _l_i_b_r_a_r_y, 1550
28402 flag:c_ldflags, 41 ugraph_union/3, 1563
28403 flag:c_libplso, 41 ugraphs.pl _l_i_b_r_a_r_y, 1550
28417 flag:c_cflags, 41 ugraph _l_i_b_r_a_r_y, 1549
28418 flag:c_ldflags, 41 ugraph_union/3, 1562
28419 flag:c_libplso, 41 ugraphs.pl _l_i_b_r_a_r_y, 1549
2840428420 flag:c_libs, 41 Unicode, 63
2840528421 flag:char_conversion, 41 unifiable/3, 59, 201, 207
28406 flag:character_escapes, 41 unify, 1625
28422 flag:character_escapes, 41 unify, 1624
2840728423 flag:colon_sets_calling_context, 41 unify_with_occurs_check/2, 41, 59,
2840828424 flag:color_term, 41 201, 202
28409 flag:compile_meta_arguments, 41 union/3, 1384
28425 flag:compile_meta_arguments, 41 union/3, 1383
2841028426 flag:compiled_at, 41 unix, 41
2841128427 flag:console_menu, 41 unix/1, 600
2841228428 flag:cpu_count, 41 unknown/2, 683, 1194
2841828434 flag:dialect, 41 unload_foreign_library/2, 903
2841928435 flag:double_quotes, 41 unsetenv/1, 597, 598
2842028436 flag:editor, 41 upcase_atom/2, 447, 451
28421 flag:emacs_inferior_process, 41 update view, 278, 1625
28437 flag:emacs_inferior_process, 41 update view, 278, 1624
2842228438 flag:encoding, 41 URL, 603
28423 flag:executable, 41 url _l_i_b_r_a_r_y, 1394
28424 flag:exit_status, 41 url_iri/2, 1577, 1578
28439 flag:executable, 41 url _l_i_b_r_a_r_y, 1393
28440 flag:exit_status, 41 url_iri/2, 1576, 1577
2842528441 flag:file_name_variables, 41 use_foreign_library/1, 130, 607,
2842628442 flag:gc, 41 900, 1181
2842728443 flag:generate_debug_info, 41 use_foreign_library/2, 901
2842828444 flag:gmp_version, 41 use_module/1, 41, 44, 80, 110, 111,
2842928445 flag:gui, 41 114, 153, 727--730, 739,
28430 flag:history, 41 747, 748, 1183, 1620
28446 flag:history, 41 747, 748, 1183, 1619
2843128447 flag:home, 41 use_module/2, 45, 110, 111, 728--
28432 flag:hwnd, 41 730, 740, 1620
28448 flag:hwnd, 41 730, 740, 1619
2843328449 flag:integer_rounding_function, 41 use_module/[1
2843428450 flag:iso, 41 2], 34, 93, 110, 111, 113, 749,
28435 flag:large_files, 41 750, 1625
28436 flag:last_call_optimisation, 41 user _l_i_b_r_a_r_y, 1638
28451 flag:large_files, 41 750, 1624
28452 flag:last_call_optimisation, 41 user _l_i_b_r_a_r_y, 1637
2843728453 flag:max_arity, 41 user profile file, 14
2843828454 flag:max_integer, 41 UTF-8, 63
2843928455 flag:max_tagged_integer, 41 utf-8, 109
2844128457 flag:min_tagged_integer, 41 valgrind, 1177
2844228458 flag:occurs_check, 41 var/1, 174, 764, 941
2844328459 flag:open_shared_object, 41 var_number/2, 412
28444 flag:optimise, 41 variable, 1625
28445 flag:os_argv, 41 anonymous, 1625
28446 flag:pid, 41 variable_value/3, 1539
28460 flag:optimise, 41 variable, 1624
28461 flag:os_argv, 41 anonymous, 1624
28462 flag:pid, 41 variable_value/3, 1538
2844728463 flag:pipe, 41 variant, 203
28448 flag:prompt_alternatives_on, 41 variant_sha1/2, 282, 1636
28449 flag:qcompile, 41 varnumbers/2, 1584
28450 flag:readline, 41 varnumbers/3, 1585
28464 flag:prompt_alternatives_on, 41 variant_sha1/2, 282, 1635
28465 flag:qcompile, 41 varnumbers/2, 1583
28466 flag:readline, 41 varnumbers/3, 1584
2845128467 flag:report_error, 41 verbose, 18
2845228468 flag:resource_database, 41 version/0, 246, 247
2845328469 flag:runtime, 41 version/1, 246, 247
28454 flag:sandboxed_load, 41 vertices/2, 1552
28455 flag:saved_program, 41 vertices_edges_to_ugraph/3, 1551
28470 flag:sandboxed_load, 41 vertices/2, 1551
28471 flag:saved_program, 41 vertices_edges_to_ugraph/3, 1550
2845628472 flag:shared_object_extension, 41 view
28457 flag:shared_object_search_path, 41 update, 1625
28458 flag:signals, 41 visible/1, 682, 1599
28473 flag:shared_object_search_path, 41 update, 1624
28474 flag:signals, 41 visible/1, 682, 1598
2845928475 flag:stream_type_check, 41 vm_list/1, 1135
2846028476 flag:system_thread_id, 41 volatile/1, 297, 852, 1184
2846128477 flag:timezone, 41
2847328489 flag:verbose_autoload, 41 win_insert_menu_item/4, 625, 627
2847428490 flag:verbose_file_search, 41 win_registry_get_value/3, 605
2847528491 flag:verbose_load, 41 win_remove_dll_directory/1, 608, 609
28476 flag:version, 41 win_shell/2, 593, 603, 604, 1395
28492 flag:version, 41 win_shell/2, 593, 603, 604, 1394
2847728493 flag:version_data, 41 win_window_pos/1, 624
2847828494 flag:version_git, 41 window_title/2, 623
2847928495 flag:warn_override_implicit_import, windows, 41
2848328499 flag:write_help_with_overstrike, 41 with_output_to_chars/2, 1257
2848428500 flag:xpce, 41 with_output_to_chars/3, 1258
2848528501 flag:xpce_version, 41 with_output_to_chars/4, 1259
28486 flatten/2, 729, 1374 with_quasi_quotation_input/3, 1488
28502 flatten/2, 729, 1373 with_quasi_quotation_input/3, 1487
2848728503 float/1, 177, 508 working_directory/2, 16, 600, 640,
2848828504 float_fractional_part/1, 511 651, 652
2848928505 float_integer_part/1, 512 write(), 1072
2850528521 335, 383, 430, 440, 453, writeln/1, 393
2850628522 483, 484, 574, 582, 583, 585 writeq/1, 391, 577, 582
2850728523 format/[1 writeq/2, 392, 962
28508 2], 383, 1638 www_form_encode/2, 1574, 1575
28509 format/[2 www_open_url/1, 1395
28524 2], 383, 1637 www_form_encode/2, 1573, 1574
28525 format/[2 www_open_url/1, 1394
2851028526 3], 54
2851128527 format_predicate/2, 585 xor/2, 521
28512 format_time/3, 440, 585, 599, 617 xref_built_in/1, 1484
28513 format_time/4, 617, 618 xref_called/3, 1481
28514 format_to_chars/3, 1246 xref_clean/1, 1479
28515 format_to_chars/4, 1247 xref_current_source/1, 1478
28516 free_variables/4, 1201 xref_defined/3, 1480
28517 freeze/2, 780, 781, 783 xref_exported/2, 1482
28518 frozen/2, 782 xref_module/2, 1483
28519 functor, 1625 xref_source/1, 1477
28528 format_time/3, 440, 585, 599, 617 xref_built_in/1, 1483
28529 format_time/4, 617, 618 xref_called/3, 1480
28530 format_to_chars/3, 1246 xref_clean/1, 1478
28531 format_to_chars/4, 1247 xref_current_source/1, 1477
28532 free_variables/4, 1201 xref_defined/3, 1479
28533 freeze/2, 780, 781, 783 xref_exported/2, 1481
28534 frozen/2, 782 xref_module/2, 1482
28535 functor, 1624 xref_source/1, 1476
2852028536 functor/3, 185, 296, 407, 794 YAP
2852128537
28522 garbage_collect/0, 701 prolog, 1620
28538 garbage_collect/0, 701 prolog, 1619
2852328539 garbage_collect_atoms/0, 702, 1149
28524 garbage_collect_clauses/0, 60, 151, zcompare/3, 1306
28540 garbage_collect_clauses/0, 60, 151, zcompare/3, 1305
2852528541 152, 155
2852628542 garbage_collect_heap/0, 686
2852728543 gcd/2, 497
2852828544 gdebug/0, 99
2852928545 gen_assoc/3, 1225
28530 gen_nb_set/2, 1391
28531 gen_state/1, 1533
28532 gensym/2, 1351
28546 gen_nb_set/2, 1390
28547 gen_state/1, 1532
28548 gensym/2, 1350
2853328549 get/1, 366, 367
2853428550 get/2, 367
2853528551 get0/1, 306, 364--367
2855428570 2], 109
2855528571 get_single_char/1, 18, 41, 376
2855628572 get_time/1, 613, 638, 686, 846
28557 getenv/2, 596, 597, 1395
28558 getrand/1, 1498
28559 global_cardinality/2, 1298
28560 global_cardinality/3, 1299
28561 global_url/3, 1569
28573 getenv/2, 596, 597, 1394
28574 getrand/1, 1497
28575 global_cardinality/2, 1297
28576 global_cardinality/3, 1298
28577 global_url/3, 1568
2856228578 GMP, 483
2856328579 GNU-Emacs, 23
28564 goal, 1625
28580 goal, 1624
2856528581 goal_expansion/2, 110, 133, 134,
28566 136--138, 146, 1621, 1624,
28567 1638
28582 136--138, 146, 1620, 1623,
28583 1637
2856828584 goal_expansion/4, 110, 142
2856928585 ground/1, 59, 187, 280, 945
28570 group_pairs_by_key/2, 1434
28586 group_pairs_by_key/2, 1433
2857128587 gspy/1, 100
2857228588 gtrace/0, 98, 867
2857328589 guitracer/0, 95--97, 106, 666, 670
28574 gxref/0, 28, 103, 730, 1183, 1476
28575
28576 halt/0, 32, 128, 656, 1638
28577 halt/1, 41, 656, 657, 1134, 1638
28590 gxref/0, 28, 103, 730, 1183, 1475
28591
28592 halt/0, 32, 128, 656, 1637
28593 halt/1, 41, 656, 657, 1134, 1637
2857828594 halt/[0
2857928595 1], 128
28580 hashing, 1625
28581 head, 1625
28582 help/0, 25, 44, 1187, 1611
28583 help/1, 25, 26, 41, 44, 1611
28596 hashing, 1624
28597 head, 1624
28598 help/0, 25, 44, 1187, 1610
28599 help/1, 25, 26, 41, 44, 1610
2858428600 hooks, 44
28585 html_write _l_i_b_r_a_r_y, 1486
28586 http/html_write _l_i_b_r_a_r_y, 1596
28601 html_write _l_i_b_r_a_r_y, 1485
28602 http/html_write _l_i_b_r_a_r_y, 1595
2858728603 http/http_error _l_i_b_r_a_r_y, 236
2858828604 http/http_header _l_i_b_r_a_r_y, 617
28589 http/http_load _l_i_b_r_a_r_y, 111, 1613
28590 http_location/2, 1571
28605 http/http_load _l_i_b_r_a_r_y, 111, 1612
28606 http_location/2, 1570
2859128607 http_open/3, 248
2859228608 http_timestamp/2, 617
2859328609 IA32, 73
2860028616 update view, 278
2860128617 import/1, 750, 751
2860228618 import_module/2, 295, 743--745
28603 imported predicate, 1625
28604 in/2, 1273
28619 imported predicate, 1624
28620 in/2, 1272
2860528621 in_pce_thread/1, 889, 890
2860628622 in_pce_thread_sync/1, 890
2860728623 include/1, 110, 111, 114, 123, 124,
2860828624 302
2860928625 include/3, 1204
28610 indexing, 1625
28626 indexing, 1624
2861128627 term-hashes, 279
28612 indomain/1, 1275
28613 inf/2, 1317
28628 indomain/1, 1274
28629 inf/2, 1316
2861428630 infinite trees, 59
2861528631 initialization/1, 110, 130, 131,
2861628632 154, 786, 830, 896, 1153,
2861728633 1185
2861828634 initialization/2, 131
28619 ins/2, 1274
28635 ins/2, 1273
2862028636 instance/2, 276
2862128637 instantiation_error/1, 1059
28622 integer, 1625
28638 integer, 1624
2862328639 unbounded, 483
2862428640 integer/1, 176, 507
2862528641 interactor/0, 318, 866
2862628642 internationalization, 63
28627 interpreted, 1625
28628 intersection/3, 1383
28643 interpreted, 1624
28644 intersection/3, 1382
2862928645 is/2, 482, 483, 508, 818
2863028646 is_absolute_file_name/1, 641
28631 is_absolute_url/1, 1570
28647 is_absolute_url/1, 1569
2863228648 is_assoc/1, 1235
2863328649 is_list/1, 560
28634 is_ordset/1, 1410
28635 is_set/1, 1381
28650 is_ordset/1, 1409
28651 is_set/1, 1380
2863628652 is_stream/1, 313
2863728653 ISO Latin 1, 53
2863828654
2864228658
2864328659 keysort/2, 565, 566
2864428660
28645 label/1, 1276
28646 labeling/2, 1277
28647 last/2, 1369
28648 lazy_list_character_count/1, 1444
28649 lazy_list_location//1, 1443
28650 leash/1, 32, 681, 682, 813, 1599
28661 label/1, 1275
28662 labeling/2, 1276
28663 last/2, 1368
28664 lazy_list_character_count/1, 1443
28665 lazy_list_location//1, 1442
28666 leash/1, 32, 681, 682, 813, 1598
2865128667 length/2, 562
28652 lex_chain/1, 1294
28668 lex_chain/1, 1293
2865328669 lgamma/1, 544
2865428670 library(apply_macros) _l_i_b_r_a_r_y, 110
2865528671 library_directory/1, 45, 49, 118
28656 license/1, 1633
28657 license/2, 1632, 1633
28672 license/1, 1632
28673 license/2, 1631, 1632
2865828674 line_count/2, 316, 318, 340, 589
2865928675 line_position/2, 316, 318, 341, 589
2866028676 list_autoload/0, 1261--1263
28661 list_debug_topics/0, 1344
28677 list_debug_topics/0, 1343
2866228678 list_redefined/0, 1261, 1264
2866328679 list_to_assoc/2, 1228
28664 list_to_ord_set/2, 1413
28665 list_to_set/2, 1382
28680 list_to_ord_set/2, 1412
28681 list_to_set/2, 1381
2866628682 list_undefined/0, 41, 117, 1261--
2866728683 1263
2866828684 listen/2, 1239, 1240
2867428690 load_file/2, 111
2867528691 load_files/2, 41, 44, 64, 110--112,
2867628692 124, 125, 153, 154, 158,
28677 684, 730, 1476, 1612, 1613,
28678 1622, 1638
28693 684, 730, 1475, 1611, 1612,
28694 1621, 1637
2867928695 load_foreign_library/1, 130, 898,
2868028696 907, 1161, 1186
2868128697 load_foreign_library/2, 899
2870428720 manpce/0, 67
2870528721 map_assoc/2, 1229
2870628722 map_assoc/3, 1230
28707 map_list_to_pairs/3, 1436
28723 map_list_to_pairs/3, 1435
2870828724 maplist/2, 573, 1208
2870928725 maplist/3, 731, 752, 1209
2871028726 maplist/4, 1210
2871228728 maplist_/3, 731, 752
2871328729 max/2, 501
2871428730 max_assoc/3, 1231
28715 max_list/2, 1378
28716 max_member/2, 1375
28717 max_var_number/3, 1586
28718 maximize/1, 1320
28719 maximize/3, 1534, 1535
28720 maybe/0, 1499
28721 maybe/1, 1500
28722 maybe/2, 1501
28731 max_list/2, 1377
28732 max_member/2, 1374
28733 max_var_number/3, 1585
28734 maximize/1, 1319
28735 maximize/3, 1533, 1534
28736 maybe/0, 1498
28737 maybe/1, 1499
28738 maybe/2, 1500
2872328739 member/2, 32, 229, 561, 640, 730,
28724 1355, 1638
28740 1354, 1637
2872528741 memberchk/2, 561
2872628742 memory
2872728743 layout, 68
28728 merge_options/3, 1401
28744 merge_options/3, 1400
2872928745 message
2873028746 service, 1236
2873128747 message_hook/3, 238--242, 248, 704,
28732 1638
28748 1637
2873328749 message_property/2, 41, 243
2873428750 message_queue_create/1, 838, 842,
2873528751 844
2873728753 message_queue_destroy/1, 844, 845
2873828754 message_queue_property/2, 834, 848
2873928755 message_to_string/2, 239, 241, 245
28740 meta-predicate, 1625
28741 meta_options/3, 730, 1402
28756 meta-predicate, 1624
28757 meta_options/3, 730, 1401
2874228758 meta_predicate/1, 41, 136, 186,
2874328759 297, 731, 732, 752, 760,
2874428760 1091, 1139, 1183
2874528761 min/2, 502
2874628762 min_assoc/3, 1232
28747 min_list/2, 1379
28748 min_member/2, 1376
28749 minimize/1, 1319
28750 minimize/3, 1535
28763 min_list/2, 1378
28764 min_member/2, 1375
28765 minimize/1, 1318
28766 minimize/3, 1534
2875128767 mod/2, 492
28752 module, 1625
28753 contex, 1625
28754 module transparent, 1625
28768 module, 1624
28769 contex, 1624
28770 module transparent, 1624
2875528771 module/1, 41, 110, 288, 736, 737,
2875628772 825
2875728773 module/2, 134, 464, 465, 725--727,
2875928775 module/3, 727
2876028776 module_property/2, 758, 759
2876128777 module_transparent/1, 297, 732,
28762 735, 753, 760, 1091, 1625
28778 735, 753, 760, 1091, 1624
2876328779 msb/1, 552
2876428780 msort/2, 564
2876528781 multifile/1, 41, 114, 283, 286,
28766 297, 1262, 1609, 1625
28767 must_be/2, 1517
28782 297, 1262, 1608, 1624
28783 must_be/2, 1516
2876828784 mutex_create/1, 854, 857, 858
2876928785 mutex_create/2, 855, 862
2877028786 mutex_destroy/1, 856
2877428790 mutex_trylock/1, 859
2877528791 mutex_unlock/1, 860
2877628792 mutex_unlock_all/0, 861
28777 my_compare/3, 1624
28793 my_compare/3, 1623
2877828794 mypred/1, 738
2877928795 name/1, 731
2878028796 name/2, 422, 429
2878428800 nb_getval/2, 790
2878528801 nb_linkarg/3, 418--420
2878628802 nb_linkval/2, 419, 420, 791, 794
28787 nb_set _l_i_b_r_a_r_y, 1387
28788 nb_set_to_list/2, 1393
28789 nb_setarg/3, 108, 417--420, 1387,
28790 1517
28803 nb_set _l_i_b_r_a_r_y, 1386
28804 nb_set_to_list/2, 1392
28805 nb_setarg/3, 108, 417--420, 1386,
28806 1516
2879128807 nb_setval/2, 418, 420, 786, 789,
28792 791, 794, 1607
28793 neck, 1625
28794 neighbors/3, 1560
28795 neighbours/3, 1559, 1560
28796 nextto/3, 1363
28808 791, 794, 1606
28809 neck, 1624
28810 neighbors/3, 1559
28811 neighbours/3, 1558, 1559
28812 nextto/3, 1362
2879728813 nl/0, 343
2879828814 nl/1, 344
2879928815 nl/[0
2880028816 1], 577
28801 nodebug/0, 675, 676, 1599
28802 nodebug/1, 1343
28817 nodebug/0, 675, 676, 1598
28818 nodebug/1, 1342
2880328819 noguitracer/0, 95, 97, 106, 671
2880428820 nonvar/1, 175
2880528821 noprofile/1, 696
2880628822 noprotocol/0, 664
2880728823 normalize_space/2, 453
28808 nospy/1, 32, 44, 679, 874, 1610
28809 nospyall/0, 44, 680, 1610
28810 not/1, 225, 1638
28824 nospy/1, 32, 44, 679, 874, 1609
28825 nospyall/0, 44, 680, 1609
28826 not/1, 225, 1637
2881128827 notrace/0, 669, 811, 812
2881228828 notrace/1, 674
28813 nth0/3, 1365
28814 nth0/4, 1367
28815 nth1/3, 1366
28816 nth1/4, 1368
28817 nth_clause/3, 297, 301, 302, 1591
28829 nth0/3, 1364
28830 nth0/4, 1366
28831 nth1/3, 1365
28832 nth1/4, 1367
28833 nth_clause/3, 297, 301, 302, 1590
2881828834 number
2881928835 rational, 483
2882028836 number/1, 180
2882228838 number_codes/2, 109, 422, 427--429
2882328839 number_to_chars/2, 1252
2882428840 number_to_chars/3, 1253
28825 numbervars/1, 1583
28841 numbervars/1, 1582
2882628842 numbervars/3, 384, 410--412
2882728843 numbervars/4, 387, 410, 411
2882828844 numbervars/[3
2882928845 4], 59
28830 numlist/3, 1380
28831
28832 objective/2, 1536
28846 numlist/3, 1379
28847
28848 objective/2, 1535
2883328849 occurs_check, 202
2883428850 on_signal/3, 250, 251
2883528851 once/1, 226, 227, 229, 335, 655,
2883628852 674, 691, 692, 857, 1096
28837 online_help _l_i_b_r_a_r_y, 1638
28853 online_help _l_i_b_r_a_r_y, 1637
2883828854 op/3, 283, 384, 465, 466, 741
2883928855 open/3, 41, 303, 305, 307
2884028856 open/4, 64, 65, 109, 306, 307, 311,
28841 317, 318, 378, 444, 1515,
28842 1516
28857 317, 318, 378, 444, 1514,
28858 1515
2884328859 open_chars_stream/2, 1256
2884428860 open_dde_conversation/3, 708
2884528861 open_null_stream/1, 308, 317
2884728863 open_shared_object/2, 41, 608, 895,
2884828864 907, 908
2884928865 open_shared_object/3, 907, 908
28850 operand, 1625
28851 operator, 1625
28866 operand, 1624
28867 operator, 1624
2885228868 and modules, 464
28853 opt_arguments/3, 1405
28854 opt_help/2, 1408
28855 opt_parse/4, 1406
28856 opt_parse/5, 1407
28857 option _l_i_b_r_a_r_y, 1517
28858 option/2, 1398
28859 option/3, 1397
28860 ord_add_element/3, 1420
28861 ord_del_element/3, 1421
28862 ord_disjoint/2, 1415
28863 ord_empty/1, 1411
28864 ord_intersect/2, 1414
28865 ord_intersect/3, 1416
28866 ord_intersection/2, 1417
28867 ord_intersection/3, 1418
28868 ord_intersection/4, 1419
28869 opt_arguments/3, 1404
28870 opt_help/2, 1407
28871 opt_parse/4, 1405
28872 opt_parse/5, 1406
28873 option _l_i_b_r_a_r_y, 1516
28874 option/2, 1397
28875 option/3, 1396
28876 ord_add_element/3, 1419
28877 ord_del_element/3, 1420
28878 ord_disjoint/2, 1414
28879 ord_empty/1, 1410
28880 ord_intersect/2, 1413
28881 ord_intersect/3, 1415
28882 ord_intersection/2, 1416
28883 ord_intersection/3, 1417
28884 ord_intersection/4, 1418
2886928885 ord_list_to_assoc/2, 1233
28870 ord_memberchk/2, 1423
28871 ord_selectchk/3, 1422
28872 ord_seteq/2, 1412
28873 ord_subset/2, 1424
28874 ord_subtract/3, 1425
28875 ord_symdiff/3, 1429
28876 ord_union/2, 1426
28877 ord_union/3, 1427
28878 ord_union/4, 1428
28879
28880 pack_info/1, 1465
28881 pack_install/1, 1468
28882 pack_install/2, 1469
28883 pack_list/1, 1467
28884 pack_list_installed/0, 1464
28885 pack_property/2, 1475
28886 pack_rebuild/0, 1471
28887 pack_rebuild/1, 1470
28888 pack_remove/1, 1474
28889 pack_search/1, 1466
28890 pack_upgrade/1, 1473
28886 ord_memberchk/2, 1422
28887 ord_selectchk/3, 1421
28888 ord_seteq/2, 1411
28889 ord_subset/2, 1423
28890 ord_subtract/3, 1424
28891 ord_symdiff/3, 1428
28892 ord_union/2, 1425
28893 ord_union/3, 1426
28894 ord_union/4, 1427
28895
28896 pack_info/1, 1464
28897 pack_install/1, 1467
28898 pack_install/2, 1468
28899 pack_list/1, 1466
28900 pack_list_installed/0, 1463
28901 pack_property/2, 1474
28902 pack_rebuild/0, 1470
28903 pack_rebuild/1, 1469
28904 pack_remove/1, 1473
28905 pack_search/1, 1465
28906 pack_upgrade/1, 1472
2889128907 pairs _l_i_b_r_a_r_y, 565
28892 pairs_keys/2, 1433
28893 pairs_keys_values/3, 1431
28894 pairs_values/2, 1432
28908 pairs_keys/2, 1432
28909 pairs_keys_values/3, 1430
28910 pairs_values/2, 1431
2889528911 parse_time/2, 619
2889628912 parse_time/3, 619, 620
28897 parse_url/2, 1572
28898 parse_url/3, 1573
28899 parse_url_search/2, 1579
28913 parse_url/2, 1571
28914 parse_url/3, 1572
28915 parse_url_search/2, 1578
2890028916 partition/4, 1206
2890128917 partition/5, 1207
2890228918 pce_dispatch/1, 888, 891
2891528931 peek_code/[1
2891628932 2], 109
2891728933 permission_error/3, 1065
28918 permutation/2, 1373
28934 permutation/2, 1372
2891928935 phrase/2, 253, 254
2892028936 phrase/3, 253, 255, 732
28921 phrase_from_file/2, 1439
28922 phrase_from_file/3, 1440
28923 phrase_from_quasi_quotation/2, 1489
28924 phrase_from_stream/2, 1441
28937 phrase_from_file/2, 1438
28938 phrase_from_file/3, 1439
28939 phrase_from_quasi_quotation/2, 1488
28940 phrase_from_stream/2, 1440
2892528941 pi/0, 547
2892628942 PL_abort_hook(), 1145
2892728943 PL_abort_unhook(), 1146
2903229048 PL_is_pair(), 954
2903329049 PL_is_string(), 947
2903429050 PL_is_variable(), 944
29035 PL_license(), 1634
29051 PL_license(), 1633
2903629052 PL_LIST, 1001
2903729053 PL_malloc(), 1167
2903829054 PL_malloc_atomic(), 1171
2909829114 PL_retry(), 925
2909929115 PL_retry_address(), 926
2910029116
29101 1673
29117 1672
192192 predicate(clause,3,'Get clauses of a predicate',6787,6792).
193193 predicate(nth_clause,3,'N-th clause of a predicate',6794,6813).
194194 predicate(clause_property,2,'Get properties of a clause',6815,6853).
195 predicate(open,4,'Open a file (creating a stream)',6931,7029).
196 predicate(open,3,'Open a file (creating a stream)',7031,7033).
197 predicate(open_null_stream,1,'Open a stream to discard output',7035,7053).
198 predicate(close,1,'Close stream',7055,7063).
199 predicate(close,2,'Close stream (forced)',7065,7069).
200 predicate(stream_property,2,'Get stream properties',7071,7184).
201 predicate(current_stream,3,'Examine open streams',7186,7193).
202 predicate(is_stream,1,'Type check for a stream handle',7195,7199).
203 predicate(stream_pair,3,'Create/examine a bi-directional stream',7201,7208).
204 predicate(set_stream_position,2,'Seek stream to position',7210,7214).
205 predicate(stream_position_data,3,'Access fields from stream position',7216,7222).
206 predicate(seek,4,'Modify the current position in a stream',7224,7252).
207 predicate(set_stream,2,'Set stream attribute',7254,7349).
208 predicate(set_prolog_IO,3,'Prepare streams for interactive session',7351,7362).
209 predicate(see,1,'Change the current input stream',7441,7446).
210 predicate(tell,1,'Change current output stream',7448,7453).
211 predicate(append,1,'Append to a file',7455,7459).
212 predicate(seeing,1,'Query the current input stream',7461,7466).
213 predicate(telling,1,'Query current output stream',7468,7473).
214 predicate(seen,0,'Close the current input stream',7475,7478).
215 predicate(told,0,'Close current output',7480,7483).
216 predicate(set_input,1,'Set current input stream from a stream',7491,7495).
217 predicate(set_output,1,'Set current output stream from a stream',7497,7500).
218 predicate(current_input,1,'Get current input stream',7502,7505).
219 predicate(current_output,1,'Get the current output stream',7507,7509).
220 predicate(with_output_to,2,'Write to strings and more',7514,7564).
221 predicate(wait_for_input,3,'Wait for input with optional timeout',7569,7611).
222 predicate(byte_count,2,'Byte-position in a stream',7613,7618).
223 predicate(character_count,2,'Get character index on a stream',7620,7625).
224 predicate(line_count,2,'Line number on stream',7627,7630).
225 predicate(line_position,2,'Character position in line on stream',7632,7637).
226 predicate(nl,0,'Generate a newline',7644,7647).
227 predicate(nl,1,'Generate a newline on a stream',7649,7651).
228 predicate(put,1,'Write a character',7653,7658).
229 predicate(put,2,'Write a character on a stream',7660,7662).
230 predicate(put_byte,1,'Write a byte',7664,7667).
231 predicate(put_byte,2,'Write a byte on a stream',7669,7672).
232 predicate(put_char,1,'Write a character',7674,7679).
233 predicate(put_char,2,'Write a character on a stream',7681,7685).
234 predicate(put_code,1,'Write a character-code',7687,7691).
235 predicate(put_code,2,'Write a character-code on a stream',7693,7695).
236 predicate(tab,1,'Output number of spaces',7697,7701).
237 predicate(tab,2,'Output number of spaces on a stream',7703,7705).
238 predicate(flush_output,0,'Output pending characters on current stream',7707,7711).
239 predicate(flush_output,1,'Output pending characters on specified stream',7713,7716).
240 predicate(ttyflush,0,'Flush output on terminal',7718,7720).
241 predicate(get_byte,1,'Read next byte (ISO)',7722,7726).
242 predicate(get_byte,2,'Read next byte from a stream (ISO)',7728,7731).
243 predicate(get_code,1,'Read next character (ISO)',7733,7737).
244 predicate(get_code,2,'Read next character from a stream (ISO)',7739,7741).
245 predicate(get_char,1,'Read next character as an atom (ISO)',7743,7747).
246 predicate(get_char,2,'Read next character from a stream (ISO)',7749,7752).
247 predicate(get0,1,'Read next character',7754,7759).
248 predicate(get0,2,'Read next character from a stream',7761,7764).
249 predicate(get,1,'Read first non-blank character',7766,7770).
250 predicate(get,2,'Read first non-blank character from a stream',7772,7775).
251 predicate(peek_byte,1,'Read byte without removing',7777,7778).
252 predicate(peek_byte,2,'Read byte without removing',7780,7781).
253 predicate(peek_code,1,'Read character-code without removing',7783,7784).
254 predicate(peek_code,2,'Read character-code without removing',7786,7787).
255 predicate(peek_char,1,'Read character without removing',7789,7790).
256 predicate(peek_char,2,'Read character without removing',7792,7799).
257 predicate(skip,1,'Skip to character in current input',7801,7805).
258 predicate(skip,2,'Skip to character on stream',7807,7809).
259 predicate(get_single_char,1,'Read next character from the terminal',7811,7820).
260 predicate(at_end_of_stream,0,'Test for end of file on input',7822,7826).
261 predicate(at_end_of_stream,1,'Test for end of file on stream',7828,7833).
262 predicate(set_end_of_stream,1,'Set physical end of an open file',7835,7839).
263 predicate(copy_stream_data,3,'Copy n bytes from stream to stream',7841,7846).
264 predicate(copy_stream_data,2,'Copy all data from stream to stream',7848,7850).
265 predicate(read_pending_input,3,'Fetch buffered input from a stream',7852,7878).
266 predicate(write_term,2,'Write term with options',7892,8033).
267 predicate(write_term,3,'Write term with options to stream',8035,8038).
268 predicate(write_length,3,'Dermine #characters to output a term',8040,8049).
269 predicate(write_canonical,1,'Write a term with quotes, ignore operators',8051,8065).
270 predicate(write_canonical,2,'Write a term with quotes, ignore operators on a stream',8067,8069).
271 predicate(write,1,'Write term',8071,8074).
272 predicate(write,2,'Write term to stream',8076,8078).
273 predicate(writeq,1,'Write term, insert quotes',8080,8085).
274 predicate(writeq,2,'Write term, insert quotes on stream',8087,8089).
275 predicate(writeln,1,'Write term, followed by a newline',8091,8093).
276 predicate(print,1,'Print a term',8095,8101).
277 predicate(print,2,'Print a term on a stream',8103,8105).
278 predicate(portray,1,'Hook (user) Modify behaviour of print/1',8107,8114).
279 predicate(read,1,'Read Prolog term',8116,8121).
280 predicate(read,2,'Read Prolog term from stream',8123,8125).
281 predicate(read_clause,3,'Read clause from stream',8127,8157).
282 predicate(read_term,2,'Read term with options',8159,8276).
283 predicate(read_term,3,'Read term with options from stream',8278,8280).
284 predicate(read_term_from_atom,3,'Read term with options from atom',8282,8287).
285 predicate(read_history,6,'Read using history substitution',8289,8304).
286 predicate(prompt,2,'Change the prompt used by read/1',8306,8314).
287 predicate(prompt1,1,'Change prompt for 1 line',8316,8319).
288 predicate(functor,3,'Get name and arity of a term or construct a term ',8324,8331).
289 predicate(arg,3,'Access argument of a term',8333,8342).
290 predicate(=..,2,'``Univ.\'\' Term to list conversion',8344,8359).
291 predicate(numbervars,3,'Number unbound variables of a term',8361,8375).
292 predicate(numbervars,4,'Number unbound variables of a term',8377,8396).
293 predicate(var_number,2,'Check that var is numbered by numbervars',8398,8404).
294 predicate(term_variables,2,'Find unbound variables in a term',8406,8416).
295 predicate(term_variables,3,'Find unbound variables in a term',8418,8421).
296 predicate(copy_term,2,'Make a copy of a term',8423,8432).
297 predicate(setarg,3,'Destructive assignment on term',8444,8460).
298 predicate(nb_setarg,3,'Non-backtrackable assignment to term',8462,8492).
299 predicate(nb_linkarg,3,'Non-backtrackable assignment to term',8494,8498).
300 predicate(duplicate_term,2,'Create a copy of a term',8500,8505).
301 predicate(same_term,2,'Test terms to be at the same address',8507,8512).
302 predicate(atom_codes,2,'Convert between atom and list of characters codes',8535,8541).
303 predicate(atom_chars,2,'Convert between atom and list of characters',8543,8551).
304 predicate(char_code,2,'Convert between character and character code',8553,8556).
305 predicate(number_chars,2,'Convert between number and one-char atoms',8558,8565).
306 predicate(number_codes,2,'Convert between number and character codes',8567,8571).
307 predicate(atom_number,2,'Convert between atom and number',8573,8580).
308 predicate(name,2,'Convert between atom and list of character codes',8582,8599).
309 predicate(term_to_atom,2,'Convert between term and atom',8601,8607).
310 predicate(atom_to_term,3,'Convert between atom and term',8609,8616).
311 predicate(atom_concat,3,'Append two atoms',8618,8625).
312 predicate(atomic_concat,3,'Concatenate two atomic values to an atom',8627,8635).
313 predicate(atomic_list_concat,2,'Append a list of atoms',8637,8641).
314 predicate(atomic_list_concat,3,'Append a list of atoms with separator',8643,8664).
315 predicate(atom_length,2,'Determine length of an atom',8666,8672).
316 predicate(atom_prefix,2,'Test for start of atom',8674,8677).
317 predicate(sub_atom,5,'Take a substring from an atom',8679,8693).
318 predicate(sub_atom_icasechk,3,'Case insensitive substring match',8695,8701).
319 predicate(locale_create,3,'Create a new locale object',8731,8765).
320 predicate(locale_destroy,1,'Destroy a locale object',8767,8771).
321 predicate(locale_property,2,'Query properties of locale objects',8773,8776).
322 predicate(set_locale,1,'Set the default local',8778,8784).
323 predicate(current_locale,1,'Get the current locale',8786,8788).
324 predicate(char_type,2,'Classify characters',8803,8911).
325 predicate(code_type,2,'Classify a character-code',8913,8920).
326 predicate(downcase_atom,2,'Convert atom to lower-case',8930,8935).
327 predicate(upcase_atom,2,'Convert atom to upper-case',8937,8939).
328 predicate(normalize_space,2,'Normalize white space',8944,8949).
329 predicate(collation_key,2,'Sort key for locale dependent ordering',8957,8970).
330 predicate(locale_sort,2,'Language dependent sort of atoms',8972,8977).
331 predicate(atom_string,2,'Conversion between atom and string',9023,9027).
332 predicate(string_codes,2,'Conversion between string and list of character codes',9029,9032).
333 predicate(string_length,2,'Determine length of a string',9034,9038).
334 predicate(string_code,3,'Get or find a character code in a string',9040,9049).
335 predicate(string_concat,3,'atom_concat/3 for strings',9051,9060).
336 predicate(sub_string,5,'Take a substring from a string',9062,9066).
337 predicate(op,3,'Declare an operator',9104,9169).
338 predicate(current_op,3,'Examine current operator declarations',9171,9174).
339 predicate(char_conversion,2,'Provide mapping of input characters',9182,9188).
340 predicate(current_char_conversion,2,'Query input character mapping',9190,9193).
341 predicate(between,3,'Integer range checking/generating',9213,9220).
342 predicate(succ,2,'Logical integer successor relation',9222,9228).
343 predicate(plus,3,'Logical integer addition',9230,9233).
344 predicate(>,2,'Arithmetic larger',9244,9246).
345 predicate(<,2,'Arithmetic smaller',9248,9250).
346 predicate(=<,2,'Arithmetic smaller or equal',9252,9255).
347 predicate(>=,2,'Arithmetic larger or equal',9257,9260).
348 predicate(=\=,2,'Arithmetic not equal',9262,9264).
349 predicate(=:=,2,'Arithmetic equal',9266,9268).
350 predicate(is,2,'Evaluate arithmetic expression',9270,9279).
351 predicate(-,1,'Unary minus',9395,9397).
352 predicate(+,1,'Unary plus (No-op)',9399,9402).
353 predicate(+,2,'Addition',9404,9406).
354 predicate(-,2,'Subtraction',9408,9410).
355 predicate(*,2,'Multiplication',9412,9414).
356 predicate(/,2,'Division',9416,9424).
357 predicate(mod,2,'Remainder of division',9426,9429).
358 predicate(rem,2,'Remainder of division',9431,9434).
359 predicate(//,2,'Integer division',9436,9441).
360 predicate(div,2,'Integer division',9443,9456).
361 predicate(rdiv,2,'Ration number division',9458,9462).
362 predicate(gcd,2,'Greatest common divisor',9464,9466).
363 predicate(abs,1,'Absolute value',9468,9470).
364 predicate(sign,1,'Extract sign of value',9472,9477).
365 predicate(copysign,2,'Apply sign of N2 to N1',9479,9490).
366 predicate(max,2,'Maximum of two numbers',9492,9497).
367 predicate(min,2,'Minimum of two numbers',9499,9502).
368 predicate('.',2,'Consult. Also list constructor',9504,9513).
369 predicate(random,1,'Binds R to a new random float in the _open_ interval (0.0,1.0).',9515,9527).
370 predicate(random_float,0,'Generate random number',9529,9535).
371 predicate(round,1,'Round to nearest integer',9537,9539).
372 predicate(integer,1,'Type check for integer',9541,9543).
373 predicate(float,1,'Type check for a floating point number',9545,9550).
374 predicate(rational,1,'Type check for a rational number',9552,9570).
375 predicate(rationalize,1,'Convert to rational number',9572,9586).
376 predicate(float_fractional_part,1,'Fractional part of a float',9588,9593).
377 predicate(float_integer_part,1,'Integer part of a float',9595,9598).
378 predicate(truncate,1,'Truncate float to integer',9600,9604).
379 predicate(floor,1,'Largest integer below argument',9606,9609).
380 predicate(ceiling,1,'Smallest integer larger than arg',9611,9614).
381 predicate(ceil,1,'Smallest integer larger than arg',9616,9618).
382 predicate(>>,2,'Bitwise right shift',9620,9625).
383 predicate(<<,2,'Bitwise left shift',9627,9629).
384 predicate(\/,2,'Bitwise or',9631,9633).
385 predicate(/\,2,'Bitwise and',9635,9637).
386 predicate(xor,2,'Bitwise exclusive or',9639,9641).
387 predicate(\,1,'Bitwise negation',9643,9646).
388 predicate(sqrt,1,'Square root',9648,9650).
389 predicate(sin,1,'Sine',9652,9654).
390 predicate(cos,1,'Cosine',9656,9658).
391 predicate(tan,1,'Tangent',9660,9662).
392 predicate(asin,1,'Inverse (arc) sine',9664,9666).
393 predicate(acos,1,'Inverse (arc) cosine',9668,9670).
394 predicate(atan,1,'Inverse hyperbolic sine',9672,9674).
395 predicate(atan2,2,'Rectangular to polar conversion',9676,9680).
396 predicate(atan,2,'Rectangular to polar conversion',9682,9684).
397 predicate(sinh,1,'Hyperbolic sine',9686,9689).
398 predicate(cosh,1,'Hyperbolic cosine',9691,9694).
399 predicate(tanh,1,'Hyperbolic tangent',9696,9699).
400 predicate(asinh,1,'Inverse (arc) sine',9701,9703).
401 predicate(acosh,1,'Inverse hyperbolic cosine',9705,9707).
402 predicate(atanh,1,'Inverse hyperbolic tangent',9709,9711).
403 predicate(log,1,'Natural logarithm',9713,9715).
404 predicate(log10,1,'10 base logarithm',9717,9719).
405 predicate(exp,1,'Exponent (base $e$)',9721,9723).
406 predicate(**,2,'Power function',9725,9740).
407 predicate(^,2,'Existential quantification (bagof/3, setof/3)',9742,9760).
408 predicate(powm,3,'Integer exponent and modulo',9762,9767).
409 predicate(lgamma,1,'',9769,9772).
410 predicate(erf,1,'',9774,9779).
411 predicate(erfc,1,'',9781,9783).
412 predicate(pi,0,'Mathematical constant',9785,9787).
413 predicate(e,0,'Mathematical constant',9789,9791).
414 predicate(epsilon,0,'Floating point precision',9793,9796).
415 predicate(cputime,0,'Get CPU time',9798,9802).
416 predicate(eval,1,'Evaluate term as expression',9804,9816).
417 predicate(msb,1,'Most significant bit',9818,9823).
418 predicate(lsb,1,'Least significant bit',9825,9830).
419 predicate(popcount,1,'Count 1s in a bitvector',9832,9835).
420 predicate(set_random,1,'Control random number generation',9840,9862).
421 predicate(random_property,1,'Query properties of random generation',9864,9876).
422 predicate(current_arithmetic_function,1,'Examine evaluable functions',9878,9885).
423 predicate(is_list,1,'Type check for a list',9894,9908).
424 predicate(memberchk,2,'Deterministic member/2',9910,9918).
425 predicate(length,2,'Length of a list',9920,9937).
426 predicate(sort,2,'Sort elements in a list',9939,9945).
427 predicate(msort,2,'Sort, do not remove duplicates',9947,9950).
428 predicate(keysort,2,'Sort, using a key',9952,9974).
429 predicate(predsort,3,'Sort, using a predicate to determine the order',9976,9981).
430 predicate(findall,3,'Find all solutions to a goal',9986,9993).
431 predicate(findall,4,'Difference list version of findall/3',9995,10003).
432 predicate(bagof,3,'Find all solutions to a goal',10005,10037).
433 predicate(setof,3,'Find all unique solutions to a goal',10039,10042).
434 predicate(forall,2,'Prove goal for all solutions of another goal',10047,10088).
435 predicate(writef,1,'Formatted write',10103,10105).
436 predicate(writef,2,'Formatted write on stream',10107,10166).
437 predicate(swritef,3,'Formatted write on a string',10168,10176).
438 predicate(swritef,2,'Formatted write on a string',10178,10180).
439 predicate(format,1,'Formatted output',10188,10191).
440 predicate(format,2,'Formatted output with arguments',10193,10364).
441 predicate(format,3,'Formatted output on a stream',10366,10376).
442 predicate(format_predicate,2,'Program format/[1,2]',10381,10410).
443 predicate(current_format_predicate,2,'Enumerate user-defined format codes',10412,10415).
444 predicate(tty_get_capability,3,'Get terminal parameter',10425,10433).
445 predicate(tty_goto,2,'Goto position on screen',10435,10439).
446 predicate(tty_put,2,'Write control string to terminal',10441,10447).
447 predicate(tty_size,2,'Get row/column size of the terminal',10449,10463).
448 predicate(shell,2,'Execute OS command',10468,10497).
449 predicate(shell,1,'Execute OS command',10499,10501).
450 predicate(shell,0,'Execute interactive subshell',10503,10507).
451 predicate(getenv,2,'Get shell environment variable',10509,10513).
452 predicate(setenv,2,'Set shell environment variable',10515,10524).
453 predicate(unsetenv,1,'Delete shell environment variable',10526,10530).
454 predicate(setlocale,3,'Set/query C-library regional information',10532,10544).
455 predicate(unix,1,'OS interaction',10546,10587).
456 predicate(win_exec,2,'Win32: spawn Windows task',10598,10605).
457 predicate(win_shell,3,'Win32: open document through Shell',10607,10616).
458 predicate(win_shell,2,'Win32: open document through Shell',10618,10620).
459 predicate(win_registry_get_value,3,'Win32: get registry value',10622,10643).
460 predicate(win_folder,2,'Win32: get special folder by CSIDL',10645,10658).
461 predicate(win_add_dll_directory,1,'Add directory to DLL search path',10660,10669).
462 predicate(win_add_dll_directory,2,'Add directory to DLL search path',10671,10694).
463 predicate(win_remove_dll_directory,1,'',10696,10699).
464 predicate(get_time,1,'Get current time',10773,10776).
465 predicate(stamp_date_time,3,'Convert time-stamp to date structure',10778,10784).
466 predicate(date_time_stamp,2,'Convert sate structure to time-stamp',10786,10837).
467 predicate(date_time_value,3,'Extract info from a date structure',10839,10856).
468 predicate(format_time,3,'C strftime() like date/time formatter',10858,11020).
469 predicate(format_time,4,'date/time formatter with explicit locale',11022,11031).
470 predicate(parse_time,2,'Parse text to a time-stamp',11033,11035).
471 predicate(parse_time,3,'Parse text to a time-stamp',11037,11056).
472 predicate(day_of_the_week,2,'Determine ordinal-day from date',11058,11063).
473 predicate(window_title,2,'Win32: change title of window',11074,11077).
474 predicate(win_window_pos,1,'Win32: change size and position of window',11079,11102).
475 predicate(win_has_menu,0,'Win32: true if console menu is available',11104,11106).
476 predicate(win_insert_menu,2,'swipl-win.exe: add menu',11108,11119).
477 predicate(win_insert_menu_item,4,'swipl-win.exe: add item to menu',11121,11125).
478 predicate(access_file,2,'Check access permissions of a file',11130,11140).
479 predicate(exists_file,1,'Check existence of file',11142,11145).
480 predicate(file_directory_name,2,'Get directory part of path',11147,11164).
481 predicate(file_base_name,2,'Get file part of path',11166,11170).
482 predicate(same_file,2,'Succeeds if arguments refer to same file',11172,11181).
483 predicate(exists_directory,1,'Check existence of directory',11183,11186).
484 predicate(delete_file,1,'Remove a file from the file system',11188,11190).
485 predicate(rename_file,2,'Change name of file',11192,11198).
486 predicate(size_file,2,'Get size of a file in characters',11200,11202).
487 predicate(time_file,2,'Get last modification time of file',11204,11208).
488 predicate(absolute_file_name,2,'Get absolute path name',11210,11218).
489 predicate(absolute_file_name,3,'Get absolute path name with options',11220,11277).
490 predicate(is_absolute_file_name,1,'True if arg defines an absolute path',11279,11285).
491 predicate(file_name_extension,3,'Add, remove or test file extensions',11287,11295).
492 predicate(directory_files,2,'Get entries of a directory/folder',11297,11303).
493 predicate(expand_file_name,2,'Wildcard expansion of file names',11305,11322).
494 predicate(prolog_to_os_filename,2,'Convert between Prolog and OS filenames',11324,11330).
495 predicate(read_link,3,'Read a symbolic link',11332,11338).
496 predicate(tmp_file,2,'Create a temporary filename',11340,11350).
497 predicate(tmp_file_stream,3,'Create a temporary file and open it',11352,11379).
498 predicate(make_directory,1,'Create a folder on the file system',11381,11385).
499 predicate(delete_directory,1,'Remove a folder from the file system',11387,11391).
500 predicate(working_directory,2,'Query/change CWD',11393,11399).
501 predicate(chdir,1,'Compatibility: change working directory',11401,11403).
502 predicate(break,0,'Start interactive top level',11408,11416).
503 predicate(abort,0,'Abort execution, return to top level',11418,11435).
504 predicate(halt,0,'Exit from Prolog',11437,11440).
505 predicate(halt,1,'Exit from Prolog with status',11442,11471).
506 predicate(prolog,0,'Run interactive top level',11473,11482).
507 predicate(expand_query,4,'Expanded entered query',11484,11492).
508 predicate(expand_answer,2,'Expand answer of query',11494,11499).
509 predicate(protocol,1,'Make a log of the user interaction',11508,11511).
510 predicate(protocola,1,'Append log of the user interaction to file',11513,11516).
511 predicate(noprotocol,0,'Disable logging of user interaction',11518,11521).
512 predicate(protocolling,1,'On what file is user interaction logged',11523,11526).
513 predicate(trace,0,'Start the tracer',11537,11541).
514 predicate(tracing,0,'Query status of the tracer',11543,11546).
515 predicate(notrace,0,'Stop tracing',11548,11550).
516 predicate(guitracer,0,'Install hooks for the graphical debugger',11552,11557).
517 predicate(noguitracer,0,'Disable the graphical debugger',11559,11561).
518 predicate(trace,1,'Set trace point on predicate',11563,11565).
519 predicate(trace,2,'Set/Clear trace point on ports',11567,11587).
520 predicate(notrace,1,'Do not debug argument goal',11589,11594).
521 predicate(debug,0,'Test for debugging mode',11596,11610).
522 predicate(nodebug,0,'Disable debugging',11612,11615).
523 predicate(debugging,0,'Show debugger status',11617,11620).
524 predicate(spy,1,'Force tracer on specified predicate',11622,11625).
525 predicate(nospy,1,'Remove spy point',11627,11630).
526 predicate(nospyall,0,'Remove all spy points',11632,11634).
527 predicate(leash,1,'Change ports visited by the tracer',11636,11644).
528 predicate(visible,1,'Ports that are visible in the tracer',11646,11649).
529 predicate(unknown,2,'Trap undefined predicates',11651,11656).
530 predicate(style_check,1,'Change level of warnings',11658,11742).
531 predicate(statistics,2,'Obtain collected statistics',11747,11834).
532 predicate(statistics,0,'Show execution statistics',11836,11838).
533 predicate(time,1,'Determine time needed to execute goal',11840,11848).
534 predicate(profile,1,'Obtain execution statistics',11866,11870).
535 predicate(profile,2,'Obtain execution statistics',11872,11885).
536 predicate(show_profile,1,'Show results of the profiler',11887,11899).
537 predicate(profiler,2,'Obtain/change status of the profiler',11901,11915).
538 predicate(reset_profiler,0,'Clear statistics obtained by the profiler',11917,11919).
539 predicate(noprofile,1,'Hide (meta-) predicate for the profiler',11921,11927).
540 predicate(garbage_collect,0,'Invoke the garbage collector',12030,12037).
541 predicate(garbage_collect_atoms,0,'Invoke the atom garbage collector',12039,12047).
542 predicate(trim_stacks,0,'Release unused memory resources',12049,12067).
543 predicate(set_prolog_stack,2,'Modify stack characteristics',12069,12108).
544 predicate(prolog_stack_property,2,'Query properties of the stacks',12110,12113).
545 predicate(open_dde_conversation,3,'Win32: Open DDE channel',12159,12164).
546 predicate(close_dde_conversation,1,'Win32: Close DDE channel',12166,12171).
547 predicate(dde_request,3,'Win32: Make a DDE request',12173,12177).
548 predicate(dde_execute,2,'Win32: Execute command on DDE server',12179,12183).
549 predicate(dde_poke,3,'Win32: POKE operation on DDE server',12185,12188).
550 predicate(dde_register_service,2,'Win32: Become a DDE server',12199,12236).
551 predicate(dde_unregister_service,1,'Win32: Terminate a DDE service',12238,12241).
552 predicate(dde_current_service,2,'Win32: Examine DDE services provided',12243,12245).
553 predicate(dde_current_connection,2,'Win32: Examine open DDE connections',12247,12249).
554 predicate(dwim_match,2,'Atoms match in ``Do What I Mean\'\' sense',12254,12272).
555 predicate(dwim_match,3,'Atoms match in ``Do What I Mean\'\' sense',12274,12279).
556 predicate(wildcard_match,2,'Csh(1) style wildcard match',12281,12297).
557 predicate(sleep,1,'Suspend execution for specified time',12299,12309).
558 predicate(module,2,'Declare a module',12390,12403).
559 predicate(module,3,'Declare a module with language options',12405,12414).
560 predicate(use_module,1,'Import a module',12430,12474).
561 predicate(use_module,2,'Import predicates from a module',12476,12502).
562 predicate(meta_predicate,1,'Declare access to other predicates',12555,12632).
563 predicate(@,2,'Call using calling context',12676,12691).
564 predicate(module,1,'Query/set current type-in module',12709,12721).
565 predicate(reexport,1,'Load files and re-export the imported predicates',12744,12748).
566 predicate(reexport,2,'Load predicates from a file and re-export it',12750,12754).
567 predicate(import_module,2,'Query import modules',12809,12814).
568 predicate(default_module,2,'Query module inheritance',12816,12821).
569 predicate(add_import_module,3,'Add module to the auto-import list',12823,12827).
570 predicate(delete_import_module,2,'Remove module from import list',12829,12836).
571 predicate(export,1,'Export a predicate from a module',12865,12871).
572 predicate(import,1,'Import a predicate from a module',12873,12880).
573 predicate(module_transparent,1,'Indicate module based meta-predicate',12991,12995).
574 predicate(context_module,1,'Get context module of current goal',12997,13000).
575 predicate(strip_module,3,'Extract context module and term',13002,13008).
576 predicate(current_module,1,'Examine existing modules',13016,13021).
577 predicate(module_property,2,'Find properties of a module',13023,13061).
578 predicate(set_module,1,'Set properties of a module',13063,13073).
579 predicate(attvar,1,'Type test for attributed variable',13266,13270).
580 predicate(put_attr,3,'Put attribute on a variable',13272,13280).
581 predicate(get_attr,3,'Fetch named attribute from a variable',13282,13287).
582 predicate(del_attr,2,'Delete attribute from variable',13289,13295).
583 predicate(attr_unify_hook,2,'Attributed variable unification hook',13304,13315).
584 predicate(attr_portray_hook,2,'Attributed variable print hook',13317,13324).
585 predicate(attribute_goals,3,'Project attributes to goals',13326,13331).
586 predicate(copy_term,3,'Copy a term and obtain attribute-goals',13336,13348).
587 predicate(copy_term_nat,2,'Make a copy of a term without attributes',13350,13353).
588 predicate(term_attvars,2,'Find attributed variables in a term',13355,13362).
589 predicate(get_attrs,2,'Fetch all attributes of a variable',13372,13376).
590 predicate(put_attrs,2,'Set/replace all attributes on a variable',13378,13381).
591 predicate(del_attrs,1,'Delete all attributes from variable',13383,13386).
592 predicate(freeze,2,'Delay execution until variable is bound',13406,13413).
593 predicate(frozen,2,'Query delayed goals on var',13415,13418).
594 predicate(when,2,'Execute goal when condition becomes true',13420,13429).
595 predicate(dif,2,'Constrain two terms to be different',13431,13443).
596 predicate(call_residue_vars,2,'Find residual attributed variables',13445,13463).
597 predicate(b_setval,2,'Assign backtrackable global variable',13504,13510).
598 predicate(b_getval,2,'Fetch backtrackable global variable',13512,13519).
599 predicate(nb_setval,2,'Assign non-backtrackable global variable',13521,13525).
600 predicate(nb_getval,2,'Fetch non-backtrackable global variable',13527,13533).
601 predicate(nb_linkval,2,'Assign non-backtrackable global variable',13535,13556).
602 predicate(nb_current,2,'Enumerate non-backtrackable global variables',13558,13561).
603 predicate(nb_delete,1,'Delete a non-backtrackable global variable',13563,13565).
604 predicate(chr_option,2,'Specify CHR compilation options',13773,13811).
605 predicate(chr_constraint,1,'CHR Constraint declaration',13826,13901).
606 predicate(chr_type,1,'CHR Type declaration',13903,14032).
607 predicate(chr_trace,0,'Start CHR tracer',14169,14173).
608 predicate(chr_notrace,0,'Stop CHR tracer',14175,14179).
609 predicate(chr_leash,1,'Define CHR leashed ports',14181,14188).
610 predicate(chr_show_store,1,'List suspended CHR constraints',14190,14197).
611 predicate(find_chr_constraint,1,'Returns a constraint from the store',14199,14202).
612 predicate(thread_create,3,'Create a new Prolog task',14500,14581).
613 predicate(thread_self,1,'Get identifier of current thread',14583,14586).
614 predicate(thread_join,2,'Wait for Prolog task-completion',14588,14614).
615 predicate(thread_detach,1,'Make thread cleanup after completion',14616,14628).
616 predicate(thread_exit,1,'Terminate Prolog task with value',14630,14641).
617 predicate(thread_initialization,1,'Run action at start of thread',14643,14652).
618 predicate(thread_at_exit,1,'Register goal to be called at exit',14654,14669).
619 predicate(thread_setconcurrency,2,'Number of active threads',14671,14678).
620 predicate(thread_property,2,'Examine Prolog threads',14693,14734).
621 predicate(thread_statistics,3,'Get statistics of another thread',14736,14741).
622 predicate(mutex_statistics,0,'Print statistics on mutex usage',14743,14750).
623 predicate(thread_send_message,2,'Send message to another thread',14767,14783).
624 predicate(thread_get_message,1,'Wait for message',14785,14805).
625 predicate(thread_peek_message,1,'Test for message',14807,14814).
626 predicate(message_queue_create,1,'Create queue for thread communication',14816,14821).
627 predicate(message_queue_create,2,'Create queue for thread communication',14823,14836).
628 predicate(message_queue_destroy,1,'Destroy queue for thread communication',14838,14843).
629 predicate(thread_get_message,2,'Wait for message in a queue',14845,14851).
630 predicate(thread_get_message,3,'Wait for message in a queue',14853,14875).
631 predicate(thread_peek_message,2,'Test for message in a queue',14877,14882).
632 predicate(message_queue_property,2,'Query message queue properties',14884,14943).
633 predicate(thread_signal,2,'Execute goal in another thread',14958,14976).
634 predicate(thread_local,1,'Declare thread-specific clauses for a predicate',14996,15025).
635 predicate(mutex_create,1,'Create a thread-synchronisation device',15059,15063).
636 predicate(mutex_create,2,'Create a thread-synchronisation device',15065,15071).
637 predicate(mutex_destroy,1,'Destroy a mutex',15073,15076).
638 predicate(with_mutex,2,'Run goal while holding mutex',15078,15089).
639 predicate(mutex_lock,1,'Become owner of a mutex',15091,15109).
640 predicate(mutex_trylock,1,'Become owner of a mutex (non-blocking)',15111,15114).
641 predicate(mutex_unlock,1,'Release ownership of mutex',15116,15120).
642 predicate(mutex_unlock_all,0,'Release ownership of all mutexes',15122,15126).
643 predicate(mutex_property,2,'Query mutex properties',15128,15142).
644 predicate(threads,0,'List running threads',15151,15153).
645 predicate(join_threads,0,'Join all terminated threads interactively',15155,15162).
646 predicate(interactor,0,'Start new thread with console and top level',15164,15168).
647 predicate(attach_console,0,'Attach I/O console to thread',15182,15197).
648 predicate(tdebug,1,'Switch a thread into debug mode',15199,15207).
649 predicate(tdebug,0,'Switch all threads into debug mode',15209,15211).
650 predicate(tnodebug,1,'Switch off debug mode in a thread',15213,15215).
651 predicate(tnodebug,0,'Switch off debug mode in all threads',15217,15219).
652 predicate(tspy,2,'Set spy point and enable debugging in a thread',15221,15227).
653 predicate(tspy,1,'Set spy point and enable debugging in all threads',15229,15234).
654 predicate(tprofile,1,'Profile a thread for some period',15245,15249).
655 predicate(in_pce_thread,1,'Run goal in XPCE thread',15445,15452).
656 predicate(in_pce_thread_sync,1,'Run goal in XPCE thread',15454,15467).
657 predicate(pce_dispatch,1,'Run XPCE GUI in separate thread',15469,15476).
658 predicate(load_foreign_library,1,'library(shlib) Load shared library (.so file)',15620,15621).
659 predicate(load_foreign_library,2,'library(shlib) Load shared library (.so file)',15623,15649).
660 predicate(use_foreign_library,1,'Load DLL/shared object (directive)',15651,15652).
661 predicate(use_foreign_library,2,'Load DLL/shared object (directive)',15654,15667).
662 predicate(unload_foreign_library,1,'library(shlib) Detach shared library (.so file)',15669,15670).
663 predicate(unload_foreign_library,2,'library(shlib) Detach shared library (.so file)',15672,15677).
664 predicate(current_foreign_library,2,'library(shlib) Examine loaded shared libraries (.so files)',15679,15681).
665 predicate(reload_foreign_libraries,0,'Reload DLLs/shared objects',15683,15686).
666 predicate(open_shared_object,2,'UNIX: Open shared library (.so file)',15698,15707).
667 predicate(open_shared_object,3,'UNIX: Open shared library (.so file)',15709,15718).
668 predicate(close_shared_object,1,'UNIX: Close shared library (.so file)',15720,15722).
669 predicate(call_shared_object_function,2,'UNIX: Call C-function in shared (.so) file',15724,15729).
670 predicate(qsave_program,2,'Create runtime application',19530,19595).
671 predicate(qsave_program,1,'Create runtime application',19597,19599).
672 predicate(autoload,0,'Autoload all predicates now',19601,19650).
673 predicate(volatile,1,'Predicates that are not saved',19652,19657).
674 predicate(resource,3,'Declare a program resource',19781,19815).
675 predicate(open_resource,3,'Open a program resource as a stream',19817,19836).
676 predicate(aggregate,3,'Aggregate bindings in Goal according to Template.',20027,20030).
677 predicate(aggregate,4,'Aggregate bindings in Goal according to Template.',20032,20035).
678 predicate(aggregate_all,3,'Aggregate bindings in Goal according to Template.',20037,20040).
679 predicate(aggregate_all,4,'Aggregate bindings in Goal according to Template.',20042,20046).
680 predicate(foreach,2,'True if conjunction of results is true.',20048,20070).
681 predicate(free_variables,4,'Find free variables in bagof/setof template.',20072,20096).
682 predicate(safe_meta,2,'Declare the aggregate meta-calls safe.',20098,20101).
683 predicate(include,3,'Filter elements for which Goal succeeds.',20116,20122).
684 predicate(exclude,3,'Filter elements for which Goal fails.',20124,20127).
685 predicate(partition,4,'Filter elements of List according to Pred.',20129,20133).
686 predicate(partition,5,'Filter List according to Pred in three sets.',20135,20140).
687 predicate(maplist,2,'True if Goal can successfully be applied on all elements of List.',20142,20146).
688 predicate(maplist,3,'As maplist/2, operating on pairs of elements from two lists.',20148,20150).
689 predicate(maplist,4,'As maplist/2, operating on triples of elements from three lists.',20152,20154).
690 predicate(maplist,5,'As maplist/2, operating on quadruples of elements from four lists.',20156,20158).
691 predicate(foldl,4,'Fold a list, using arguments of the list as left argument.',20160,20161).
692 predicate(foldl,5,'Fold a list, using arguments of the list as left argument.',20163,20164).
693 predicate(foldl,6,'Fold a list, using arguments of the list as left argument.',20166,20167).
694 predicate(foldl,7,'Fold a list, using arguments of the list as left argument.',20169,20179).
695 predicate(scanl,4,'Left scan of list.',20181,20182).
696 predicate(scanl,5,'Left scan of list.',20184,20185).
697 predicate(scanl,6,'Left scan of list.',20187,20188).
698 predicate(scanl,7,'Left scan of list.',20190,20201).
699 predicate(assoc_to_list,2,'Convert association tree to list',20216,20219).
700 predicate(assoc_to_keys,2,'Translate assoc into a key list',20221,20224).
701 predicate(assoc_to_values,2,'Translate assoc into a value list',20226,20229).
702 predicate(empty_assoc,1,'Create/test empty association tree',20231,20233).
703 predicate(gen_assoc,3,'Enumerate members of association tree',20235,20238).
704 predicate(get_assoc,3,'Fetch key from association tree',20240,20243).
705 predicate(get_assoc,5,'Fetch key from association tree',20245,20248).
706 predicate(list_to_assoc,2,'Create association tree from list',20250,20253).
707 predicate(map_assoc,2,'Map association tree',20255,20257).
708 predicate(map_assoc,3,'Map association tree',20259,20262).
709 predicate(max_assoc,3,'Highest key in association tree',20264,20267).
710 predicate(min_assoc,3,'Lowest key in association tree',20269,20272).
711 predicate(ord_list_to_assoc,2,'Convert ordered list to assoc',20274,20277).
712 predicate(put_assoc,4,'Add Key-Value to association tree',20279,20283).
713 predicate(is_assoc,1,'Verify association list',20285,20288).
714 predicate(broadcast,1,'Send event notification',20312,20318).
715 predicate(broadcast_request,1,'Request all agents',20320,20334).
716 predicate(listen,2,'Listen to event notifications',20336,20348).
717 predicate(listen,3,'Listen to event notifications',20350,20385).
718 predicate(unlisten,1,'Stop listening to event notifications',20387,20389).
719 predicate(unlisten,2,'Stop listening to event notifications',20391,20394).
720 predicate(unlisten,3,'Stop listening to event notifications',20396,20399).
721 predicate(listening,3,'Who is listening to event notifications?',20401,20404).
722 predicate(format_to_chars,3,'Use format/2 to write to a list of character codes.',20419,20421).
723 predicate(format_to_chars,4,'Use format/2 to write to a difference list of character codes.',20423,20425).
724 predicate(write_to_chars,2,'Write a term to a code list.',20427,20430).
725 predicate(write_to_chars,3,'Write a term to a code list.',20432,20435).
726 predicate(atom_to_chars,2,'Convert Atom into a list of character codes.',20437,20441).
727 predicate(atom_to_chars,3,'Convert Atom into a difference list of character codes.',20443,20445).
728 predicate(number_to_chars,2,'Convert Atom into a list of character codes.',20447,20451).
729 predicate(number_to_chars,3,'Convert Number into a difference list of character codes.',20453,20455).
730 predicate(read_from_chars,2,'Read Codes into Term.',20457,20462).
731 predicate(read_term_from_chars,3,'Read Codes into Term.',20464,20468).
732 predicate(open_chars_stream,2,'Open Codes as an input stream.',20470,20477).
733 predicate(with_output_to_chars,2,'Run Goal as with once/1.',20479,20482).
734 predicate(with_output_to_chars,3,'Run Goal as with once/1.',20484,20487).
735 predicate(with_output_to_chars,4,'Same as with_output_to_chars/3 using an explicit stream.',20489,20493).
736 predicate(check,0,'Program completeness and consistency',20501,20509).
737 predicate(list_undefined,0,'List undefined predicates',20511,20539).
738 predicate(list_autoload,0,'List predicates that require autoload',20541,20545).
739 predicate(list_redefined,0,'List locally redefined predicates',20547,20551).
740 predicate(in,2,'Var is an element of Domain.',20855,20869).
741 predicate(ins,2,'The variables in the list Vars are elements of Domain.',20871,20873).
742 predicate(indomain,1,'Bind Var to all feasible values of its domain on backtracking.',20875,20878).
743 predicate(label,1,'Equivalent to labeling([], Vars).',20880,20882).
744 predicate(labeling,2,'Assign a value to each variable in Vars.',20884,20969).
745 predicate(all_different,1,'Vars are pairwise distinct.',20971,20973).
746 predicate(all_distinct,1,'Like all_different/1, with stronger propagation.',20975,20986).
747 predicate(sum,3,'The sum of elements of the list Vars is in relation Rel to Expr.',20988,20999).
748 predicate(scalar_product,4,'Cs is a list of integers, Vs is a list of variables and integers.',21001,21005).
749 predicate(#>=,2,'X is greater than or equal to Y.',21007,21009).
750 predicate(#=<,2,'X is less than or equal to Y.',21011,21013).
751 predicate(#=,2,'X equals Y.',21015,21017).
752 predicate(#\=,2,'X is not Y.',21019,21021).
753 predicate(#>,2,'X is greater than Y.',21023,21025).
754 predicate(#<,2,'X is less than Y.',21027,21042).
755 predicate(#\,1,'The reifiable constraint Q does _not_ hold.',21044,21052).
756 predicate(#<==>,2,'P and Q are equivalent.',21054,21093).
757 predicate(#==>,2,'P implies Q.',21095,21097).
758 predicate(#<==,2,'Q implies P.',21099,21101).
759 predicate(#/\,2,'P and Q hold.',21103,21105).
760 predicate(#\/,2,'P or Q holds.',21107,21119).
761 predicate(lex_chain,1,'Lists are lexicographically non-decreasing.',21121,21123).
762 predicate(tuples_in,2,'Relation must be a list of lists of integers.',21125,21169).
763 predicate(serialized,2,'Describes a set of non-overlapping tasks.',21171,21190).
764 predicate(element,3,'The N-th element of the list of finite domain variables Vs is V.',21192,21195).
765 predicate(global_cardinality,2,'Global Cardinality constraint.',21197,21207).
766 predicate(global_cardinality,3,'Global Cardinality constraint.',21209,21226).
767 predicate(circuit,1,'True if the list Vs of finite domain variables induces a Hamiltonian circuit.',21228,21242).
768 predicate(cumulative,1,'Equivalent to cumulative(Tasks, [limit(1)]).',21244,21246).
769 predicate(cumulative,2,'Tasks is a list of tasks, each of the form task(S_i, D_i, E_i, C_i, T_i).',21248,21281).
770 predicate(automaton,3,'Describes a list of finite domain variables with a finite automaton.',21283,21309).
771 predicate(automaton,8,'Describes a list of finite domain variables with a finite automaton.',21311,21377).
772 predicate(transpose,2,'Invert the direction of all edges',21379,21439).
773 predicate(zcompare,3,'Analogous to compare/3, with finite domain variables A and B.',21441,21466).
774 predicate(chain,2,'Zs form a chain with respect to Relation.',21468,21479).
775 predicate(fd_var,1,'True iff Var is a CLP(FD) variable.',21481,21483).
776 predicate(fd_inf,2,'Inf is the infimum of the current domain of Var.',21485,21487).
777 predicate(fd_sup,2,'Sup is the supremum of the current domain of Var.',21489,21491).
778 predicate(fd_size,2,'Determine the size of a variable\'s domain.',21493,21497).
779 predicate(fd_dom,2,'Dom is the current domain (see in/2) of Var.',21499,21505).
780 predicate({},1,'DCG escape; constraints',21546,21548).
781 predicate(entailed,1,'Check if constraint is entailed',21550,21554).
782 predicate(inf,2,'Find the infimum of an expression',21556,21560).
783 predicate(sup,2,'Find the supremum of an expression',21562,21566).
784 predicate(minimize,1,'Minimizes an expression',21568,21572).
785 predicate(maximize,1,'Maximizes an expression',21574,21578).
786 predicate(bb_inf,5,'Infimum of expression for mixed-integer problems',21580,21589).
787 predicate(bb_inf,4,'Infimum of expression for mixed-integer problems',21591,21594).
788 predicate(bb_inf,3,'Infimum of expression for mixed-integer problems',21596,21599).
789 predicate(dump,3,'Dump constraints on variables',21601,21611).
790 predicate(csv_read_file,2,'Read a CSV file into a list of rows.',21746,21747).
791 predicate(csv_read_file,3,'Read a CSV file into a list of rows.',21749,21765).
792 predicate(csv,3,'Prolog DCG to `read/write\' CSV data.',21767,21768).
793 predicate(csv,4,'Prolog DCG to `read/write\' CSV data.',21770,21803).
794 predicate(csv_read_file_row,3,'True when Row is a row in File.',21805,21825).
795 predicate(csv_write_file,2,'Write a list of Prolog terms to a CSV file.',21827,21828).
796 predicate(csv_write_file,3,'Write a list of Prolog terms to a CSV file.',21830,21835).
797 predicate(csv_write_stream,3,'Write the rows in Data to Stream.',21837,21851).
798 predicate(debugging,1,'Test where we are debugging topic',21873,21874).
799 predicate(debugging,1,'Test where we are debugging topic',21876,21877).
800 predicate(debugging,2,'Examine debug topics.',21879,21893).
801 predicate(debug,1,'Select topic for debugging',21895,21896).
802 predicate(nodebug,1,'Disable debug-topic',21898,21907).
803 predicate(list_debug_topics,0,'List registered topics for debugging',21909,21911).
804 predicate(debug_message_context,1,'Specify additional context for debug messages.',21913,21919).
805 predicate(debug,3,'Print debugging message on topic',21921,21934).
806 predicate(debug_print_hook,3,'Hook called by debug/3.',21936,21942).
807 predicate(assertion,1,'Make assertions about your program',21944,21957).
808 predicate(assertion_failed,2,'This hook is called if the Goal of assertion/1 fails.',21959,21965).
809 predicate(gensym,2,'Generate unique atoms from a base',21980,21985).
810 predicate(reset_gensym,1,'Reset a gensym key',21987,21991).
811 predicate(reset_gensym,0,'Reset all gensym keys',21993,21998).
812 predicate(member,2,'True if Elem is a member of List.',22018,22028).
813 predicate(append,3,'List1AndList2 is the concatenation of List1 and List2.',22030,22032).
814 predicate(append,2,'Concatenate a list of lists.',22034,22040).
815 predicate(prefix,2,'True iff Part is a leading substring of Whole.',22042,22045).
816 predicate(select,3,'Is true when List1, with Elem removed, results in List2.',22047,22049).
817 predicate(selectchk,3,'Semi-deterministic removal of first element in List that unifies with Elem.',22051,22054).
818 predicate(select,4,'True if XList is unifiable with YList apart a single element at the same position that is unified with X in XList and with Y in YList.',22056,22071).
819 predicate(selectchk,4,'Semi-deterministic version of select/4.',22073,22075).
820 predicate(nextto,3,'True if Y follows X in List.',22077,22079).
821 predicate(delete,3,'Delete matching elements from a list.',22081,22093).
822 predicate(nth0,3,'True when Elem is the Index\'th element of List.',22095,22103).
823 predicate(nth1,3,'Is true when Elem is the Index\'th element of List.',22105,22110).
824 predicate(nth0,4,'Select/insert element at index.',22112,22129).
825 predicate(nth1,4,'As nth0/4, but counting starts at 1.',22131,22133).
826 predicate(last,2,'Last element of a list',22135,22143).
827 predicate(proper_length,2,'True when Length is the number of elements in the proper list List.',22145,22154).
828 predicate(same_length,2,'Is true when List1 and List2 are lists with the same number of elements.',22156,22163).
829 predicate(reverse,2,'Is true when the elements of List2 are in reverse order compared to List1.',22165,22168).
830 predicate(permutation,2,'True when Xs is a permutation of Ys.',22170,22201).
831 predicate(flatten,2,'Is true if List2 is a non-nested version of List1.',22203,22213).
832 predicate(max_member,2,'True when Max is the largest member in the standard order of terms.',22215,22222).
833 predicate(min_member,2,'True when Min is the smallest member in the standard order of terms.',22224,22231).
834 predicate(sum_list,2,'Sum is the result of adding all numbers in List.',22233,22235).
835 predicate(max_list,2,'True if Max is the largest number in List.',22237,22241).
836 predicate(min_list,2,'True if Min is the smallest number in List.',22243,22248).
837 predicate(numlist,3,'List is a list [Low, Low+1, ... High].',22250,22256).
838 predicate(is_set,1,'True if Set is a proper list without duplicates.',22258,22263).
839 predicate(list_to_set,2,'Remove duplicates from a list',22265,22284).
840 predicate(intersection,3,'True if Set3 unifies with the intersection of Set1 and Set2.',22286,22291).
841 predicate(union,3,'True if Set3 unifies with the union of Set1 and Set2.',22293,22298).
842 predicate(subset,2,'True if all elements of SubSet belong to Set as well.',22300,22305).
843 predicate(subtract,3,'Delete all elements in Delete from Set.',22307,22312).
844 predicate(empty_nb_set,1,'Test/create an empty non-backtrackable set',22341,22343).
845 predicate(add_nb_set,2,'Add term to a non-backtrackable set',22345,22348).
846 predicate(add_nb_set,3,'Add term to a non-backtrackable set',22350,22358).
847 predicate(gen_nb_set,2,'Generate members of non-backtrackable set',22360,22363).
848 predicate(size_nb_set,2,'Determine size of non-backtrackable set',22365,22367).
849 predicate(nb_set_to_list,2,'Convert non-backtrackable set to list',22369,22372).
850 predicate(www_open_url,1,'Open a web-page in a browser',22380,22400).
851 predicate(option,3,'Get an Option Qfrom OptionList.',22455,22461).
852 predicate(option,2,'Get an Option from OptionList.',22463,22470).
853 predicate(select_option,3,'Get and remove Option from an option list.',22472,22476).
854 predicate(select_option,4,'Get and remove Option with default value.',22478,22482).
855 predicate(merge_options,3,'Merge two option lists.',22484,22491).
856 predicate(meta_options,3,'Perform meta-expansion on options that are module-sensitive.',22493,22510).
857 predicate(opt_arguments,3,'Extract commandline options according to a specification.',22814,22830).
858 predicate(opt_parse,4,'Equivalent to opt_parse(OptsSpec, ApplArgs, Opts, PositionalArgs, []).',22832,22834).
859 predicate(opt_parse,5,'Parse the arguments Args (as list of atoms) according to OptsSpec.',22836,22871).
860 predicate(opt_help,2,'True when Help is a help string synthesized from OptsSpec.',22873,22875).
861 predicate(is_ordset,1,'True if Term is an ordered set.',22906,22911).
862 predicate(ord_empty,1,'True when List is the empty ordered set.',22913,22916).
863 predicate(ord_seteq,2,'True if Set1 and Set2 have the same elements.',22918,22923).
864 predicate(list_to_ord_set,2,'Transform a list into an ordered set.',22925,22928).
865 predicate(ord_intersect,2,'True if both ordered sets have a non-empty intersection.',22930,22932).
866 predicate(ord_disjoint,2,'True if Set1 and Set2 have no common elements.',22934,22937).
867 predicate(ord_intersect,3,'Intersection holds the common elements of Set1 and Set2.',22939,22943).
868 predicate(ord_intersection,2,'Intersection of a powerset.',22945,22950).
869 predicate(ord_intersection,3,'Intersection holds the common elements of Set1 and Set2.',22952,22954).
870 predicate(ord_intersection,4,'Intersection and difference between two ordered sets.',22956,22962).
871 predicate(ord_add_element,3,'Insert an element into the set.',22964,22967).
872 predicate(ord_del_element,3,'Delete an element from an ordered set.',22969,22972).
873 predicate(ord_selectchk,3,'Is true when select(Item, Set1, Set2) and Set1, Set2 are both sorted lists without duplicates.',22974,22983).
874 predicate(ord_memberchk,2,'True if Element is a member of OrdSet, compared using ==.',22985,22996).
875 predicate(ord_subset,2,'Is true if all elements of Sub are in Super.',22998,23000).
876 predicate(ord_subtract,3,'Diff is the set holding all elements of InOSet that are not in NotInOSet.',23002,23005).
877 predicate(ord_union,2,'True if Union is the union of all elements in the superset SetOfSets.',23007,23014).
878 predicate(ord_union,3,'Union is the union of Set1 and Set2.',23016,23018).
879 predicate(ord_union,4,'True iff ord_union(Set1, Set2, Union) and ord_subtract(Set2, Set1, New).',23020,23023).
880 predicate(ord_symdiff,3,'Is true when Difference is the symmetric difference of Set1 and Set2.',23025,23043).
881 predicate(pairs_keys_values,3,'True if Keys holds the keys of Pairs and Values the values.',23060,23068).
882 predicate(pairs_values,2,'Remove the keys from a list of Key-Value pairs.',23070,23073).
883 predicate(pairs_keys,2,'Remove the values from a list of Key-Value pairs.',23075,23078).
884 predicate(group_pairs_by_key,2,'Group values with the same key.',23080,23096).
885 predicate(transpose_pairs,2,'Swap Key-Value to Value-Key.',23098,23101).
886 predicate(map_list_to_pairs,3,'Create a Key-Value list by mapping each element of List.',23103,23110).
887 predicate(phrase_from_file,2,'Process the content of File using the DCG rule Grammar.',23142,23166).
888 predicate(phrase_from_file,3,'As phrase_from_file/2, providing additional Options.',23168,23174).
889 predicate(phrase_from_stream,2,'Helper for phrase_from_file/3.',23176,23179).
890 predicate(syntax_error,3,'Throw the syntax error Error at the current location of the input.',23181,23187).
891 predicate(lazy_list_location,3,'True when Location is an (error) location term that represents the current location in the DCG list.',23189,23203).
892 predicate(lazy_list_character_count,3,'True when CharCount is the current character count in the Lazy list.',23205,23216).
893 predicate(stream_to_lazy_list,2,'Create a lazy list representing the character codes in Stream.',23218,23230).
894 predicate(predicate_options,3,'Declare that the predicate PI processes options on Arg.',23372,23406).
895 predicate(assert_predicate_options,4,'As predicate_options(:PI, +Arg, +Options).',23408,23416).
896 predicate(current_predicate_option,3,'True when Arg of PI processes Option.',23418,23429).
897 predicate(check_predicate_option,3,'Verify predicate options at runtime.',23431,23446).
898 predicate(current_option_arg,2,'True when Arg of PI processes predicate options.',23448,23451).
899 predicate(current_predicate_options,3,'True when Options is the current active option declaration for PI on Arg.',23453,23461).
900 predicate(check_predicate_options,0,'Analyse loaded program for erroneous options.',23463,23479).
901 predicate(derive_predicate_options,0,'Derive new predicate option declarations.',23481,23490).
902 predicate(retractall_predicate_options,0,'Remove all dynamically (derived) predicate options.',23492,23494).
903 predicate(derived_predicate_options,3,'Derive option arguments using static analysis.',23496,23499).
904 predicate(derived_predicate_options,1,'Derive predicate option declarations for a module.',23501,23504).
905 predicate(pack_list_installed,0,'List currently installed packages.',23524,23530).
906 predicate(pack_info,1,'Print more detailed information about Pack.',23532,23534).
907 predicate(pack_search,1,'Query package server and installed packages and display results.',23536,23537).
908 predicate(pack_list,1,'Query package server and installed packages and display results.',23539,23571).
909 predicate(pack_install,1,'Install a package.',23573,23591).
910 predicate(pack_install,2,'Install package Name.',23593,23605).
911 predicate(pack_rebuild,1,'Rebuilt possible foreign components of Pack.',23607,23609).
912 predicate(pack_rebuild,0,'Rebuild foreign components of all packages.',23611,23613).
913 predicate(environment,2,'Hook to define the environment for building packs.',23615,23631).
914 predicate(pack_upgrade,1,'Try to upgrade the package Pack.',23633,23638).
915 predicate(pack_remove,1,'Remove the indicated package.',23640,23642).
916 predicate(pack_property,2,'True when Property is a property of Pack.',23644,23669).
917 predicate(xref_source,1,'Cross-reference analysis of source',23704,23709).
918 predicate(xref_current_source,1,'Examine cross-referenced sources',23711,23713).
919 predicate(xref_clean,1,'Remove analysis of source',23715,23717).
920 predicate(xref_defined,3,'Examine defined predicates',23719,23730).
921 predicate(xref_called,3,'Examine called predicates',23732,23734).
922 predicate(xref_exported,2,'Examine exported predicates',23736,23738).
923 predicate(xref_module,2,'Module defined by source',23740,23742).
924 predicate(xref_built_in,1,'Examine defined built-ins',23744,23749).
925 predicate(called_by,2,'Hook (prolog) Extend cross-referencer',23757,23770).
926 predicate(with_quasi_quotation_input,3,'',23850,23870).
927 predicate(phrase_from_quasi_quotation,2,'',23872,23878).
928 predicate(quasi_quotation_syntax,1,'',23880,23883).
929 predicate(quasi_quotation_syntax_error,1,'',23885,23890).
930 predicate(random,1,'Binds R to a new random float in the _open_ interval (0.0,1.0).',23904,23912).
931 predicate(random_between,3,'Binds R to a random integer in [L,U] (i.e., including both L and U).',23914,23917).
932 predicate(random,3,'Generate a random integer or float in a range.',23919,23920).
933 predicate(random,3,'Generate a random integer or float in a range.',23922,23932).
934 predicate(setrand,1,'Query/set the state of the random generator.',23934,23935).
935 predicate(getrand,1,'Query/set the state of the random generator.',23937,23956).
936 predicate(maybe,0,'Succeed/fail with equal probability (variant of maybe/1).',23958,23960).
937 predicate(maybe,1,'Succeed with probability P, fail with probability 1-P.',23962,23964).
938 predicate(maybe,2,'Succeed with probability K/N (variant of maybe/1).',23966,23968).
939 predicate(random_perm2,4,'Does X=A,Y=B or X=B,Y=A with equal probability.',23970,23972).
940 predicate(random_member,2,'X is a random member of List.',23974,23979).
941 predicate(random_select,3,'Randomly select or insert an element.',23981,23982).
942 predicate(random_select,3,'Randomly select or insert an element.',23984,23989).
943 predicate(randset,3,'S is a sorted list of K unique random integers in the range 1..N.',23991,24006).
944 predicate(randseq,3,'S is a list of K unique random integers in the range 1..N.',24008,24019).
945 predicate(random_permutation,2,'Permutation is a random permutation of List.',24021,24022).
946 predicate(random_permutation,2,'Permutation is a random permutation of List.',24024,24030).
947 predicate(read_line_to_codes,2,'Read line from a stream',24043,24051).
948 predicate(read_line_to_codes,3,'Read line from a stream',24053,24074).
949 predicate(read_stream_to_codes,2,'Read contents of stream',24076,24078).
950 predicate(read_stream_to_codes,3,'Read contents of stream',24080,24082).
951 predicate(read_file_to_codes,3,'Read contents of file',24084,24090).
952 predicate(read_file_to_terms,3,'Read contents of file to Prolog terms',24092,24098).
953 predicate(record,1,'Define named fields in a term',24192,24197).
954 predicate(registry_get_key,2,'Get principal value of key',24216,24219).
955 predicate(registry_get_key,3,'Get associated value of key',24221,24223).
956 predicate(registry_set_key,2,'Set principal value of key',24225,24228).
957 predicate(registry_set_key,3,'Set associated value of key',24230,24233).
958 predicate(registry_delete_key,1,'Remove a key',24235,24237).
959 predicate(shell_register_file_type,4,'Register a file-type',24239,24245).
960 predicate(shell_register_dde,6,'Register DDE action',24247,24254).
961 predicate(shell_register_prolog,1,'Register Prolog',24256,24275).
962 predicate(assignment,2,'Solve assignment problem',24300,24306).
963 predicate(constraint,3,'Add linear constraint to state',24308,24318).
964 predicate(constraint,4,'Add named linear constraint to state',24320,24323).
965 predicate(constraint_add,4,'Extend a named constraint',24325,24329).
966 predicate(gen_state,1,'Create empty linear program',24331,24334).
967 predicate(maximize,3,'Maximize objective function in to linear constraints',24336,24341).
968 predicate(minimize,3,'Minimize objective function in to linear constraints',24343,24345).
969 predicate(objective,2,'Fetch value of objective function',24347,24350).
970 predicate(shadow_price,3,'Fetch shadow price in solved state',24352,24356).
971 predicate(transportation,4,'Solve transportation problem',24358,24366).
972 predicate(variable_value,3,'Fetch value of variable in solved state',24368,24377).
973 predicate(thread_pool_create,3,'Create a pool of threads.',24551,24568).
974 predicate(thread_pool_destroy,1,'Destroy the thread pool named Name.',24570,24574).
975 predicate(current_thread_pool,1,'True if Name refers to a defined thread pool.',24576,24578).
976 predicate(thread_pool_property,2,'True if Property is a property of thread pool Name.',24580,24601).
977 predicate(thread_create_in_pool,4,'Create a thread in Pool.',24603,24617).
978 predicate(create_pool,1,'This hook is called if thread_create_in_pool/4 discovers that the thread pool does not exist.',24619,24632).
979 predicate(vertices_edges_to_ugraph,3,'Create unweighted graph',24663,24681).
980 predicate(vertices,2,'Find vertices in graph',24683,24689).
981 predicate(edges,2,'Find edges in graph',24691,24698).
982 predicate(add_vertices,3,'Add vertices to graph',24700,24708).
983 predicate(del_vertices,3,'Delete vertices from graph',24710,24722).
984 predicate(add_edges,3,'Add edges to graph',24724,24736).
985 predicate(del_edges,3,'Delete edges from graph',24738,24748).
986 predicate(transpose,2,'Invert the direction of all edges',24750,24761).
987 predicate(neighbours,3,'Find neighbors of vertice',24763,24772).
988 predicate(neighbors,3,'Find neighbors of vertice',24774,24776).
989 predicate(complement,2,'Inverse presense of edges',24778,24788).
990 predicate(compose,3,'',24790,24798).
991 predicate(ugraph_union,3,'Union of two graphs',24800,24807).
992 predicate(top_sort,2,'Sort graph topologically',24809,24819).
993 predicate(top_sort,3,'Sort graph topologically',24821,24824).
994 predicate(transitive_closure,2,'Create transitive closure of graph',24826,24834).
995 predicate(reachable,3,'Find all reachable vertices',24836,24844).
996 predicate(global_url,3,'Translate a possibly relative URL into an absolute one.',24867,24871).
997 predicate(is_absolute_url,1,'True if URL is an absolute URL.',24873,24876).
998 predicate(http_location,2,'Construct or analyze an HTTP location.',24878,24889).
999 predicate(parse_url,2,'Construct or analyse a URL.',24891,24948).
1000 predicate(parse_url,3,'Similar to parse_url/2 for relative URLs.',24950,24953).
1001 predicate(www_form_encode,2,'En/decode to/from application/x-www-form-encoded.',24955,24956).
1002 predicate(www_form_encode,2,'En/decode to/from application/x-www-form-encoded.',24958,24969).
1003 predicate(set_url_encoding,2,'Query and set the encoding for URLs.',24971,24978).
1004 predicate(url_iri,2,'Convert between a URL, encoding in US-ASCII and an IRI.',24980,24981).
1005 predicate(url_iri,2,'Convert between a URL, encoding in US-ASCII and an IRI.',24983,24987).
1006 predicate(parse_url_search,2,'Construct or analyze an HTTP search specification.',24989,24993).
1007 predicate(file_name_to_url,2,'Translate between a filename and a file:Sidiv{} URL.',24995,24996).
1008 predicate(file_name_to_url,2,'Translate between a filename and a file:Sidiv{} URL.',24998,25003).
1009 predicate(numbervars,1,'Number variables in Term using $VAR(N).',25029,25034).
1010 predicate(varnumbers,2,'Inverse of numbervars/1.',25036,25038).
1011 predicate(varnumbers,3,'Inverse of numbervars/3.',25040,25051).
1012 predicate(max_var_number,3,'True when Max is the max of Start and the highest numbered $VAR(N) term.',25053,25060).
1013 predicate(prolog_current_frame,1,'Reference to goal\'s environment stack',25075,25081).
1014 predicate(prolog_current_choice,1,'Reference to most recent choice point',25083,25087).
1015 predicate(prolog_frame_attribute,3,'Obtain information on a goal environment',25089,25172).
1016 predicate(prolog_choice_attribute,3,'Examine the choice point stack',25174,25196).
1017 predicate(deterministic,1,'Test deterministicy of current clause',25198,25205).
1018 predicate(prolog_cut_to,1,'Realise global cuts',25210,25216).
1019 predicate(prolog_trace_interception,4,'library(user) Intercept the Prolog tracer',25309,25418).
1020 predicate(prolog_skip_frame,1,'Perform `skip\' on a frame',25420,25427).
1021 predicate(prolog_skip_level,2,'Indicate deepest recursion to trace',25429,25436).
1022 predicate(break_hook,6,'',25448,25525).
1023 predicate(prolog_exception_hook,4,'Rewrite exceptions',25535,25578).
1024 predicate(exception,3,'Hook (user) Handle runtime exceptions',25593,25619).
1025 predicate(prolog_list_goal,1,'Hook (user) Intercept tracer \'L\' command',25631,25637).
1026 predicate(debug_control_hook,1,'Hook (prolog) Extend spy/1, etc.',25639,25665).
1027 predicate(help_hook,1,'Hook (prolog) User-hook in the help-system',25667,25682).
1028 predicate(prolog_load_file,2,'Hook (user) Program load_files/2',25691,25702).
1029 predicate(comment_hook,3,'Hook (prolog) handle comments in sources',25704,25723).
1030 predicate(rl_read_init_file,1,'Read readline(3) init file',25733,25737).
1031 predicate(rl_add_history,1,'Add line to readline(3) history',25739,25742).
1032 predicate(rl_write_history,1,'Write readline(3) history',25744,25747).
1033 predicate(rl_read_history,1,'Read readline(3) history',25749,25751).
1034 predicate(expects_dialect,1,'For which Prolog dialect is this code written?',25794,25820).
1035 predicate(exists_source,1,'Check existence of a Prolog source',25822,25826).
1036 predicate(source_exports,2,'Check whether source exports a predicate',25828,25831).
1037 predicate(eval_license,0,'Evaluate licenses of loaded modules',26331,26337).
1038 predicate(license,2,'Define license for named module',26339,26391).
1039 predicate(license,1,'Define license for current file',26393,26396).
195 predicate(open,4,'Open a file (creating a stream)',6931,7039).
196 predicate(open,3,'Open a file (creating a stream)',7041,7043).
197 predicate(open_null_stream,1,'Open a stream to discard output',7045,7063).
198 predicate(close,1,'Close stream',7065,7073).
199 predicate(close,2,'Close stream (forced)',7075,7079).
200 predicate(stream_property,2,'Get stream properties',7081,7194).
201 predicate(current_stream,3,'Examine open streams',7196,7203).
202 predicate(is_stream,1,'Type check for a stream handle',7205,7209).
203 predicate(stream_pair,3,'Create/examine a bi-directional stream',7211,7218).
204 predicate(set_stream_position,2,'Seek stream to position',7220,7224).
205 predicate(stream_position_data,3,'Access fields from stream position',7226,7232).
206 predicate(seek,4,'Modify the current position in a stream',7234,7262).
207 predicate(set_stream,2,'Set stream attribute',7264,7359).
208 predicate(set_prolog_IO,3,'Prepare streams for interactive session',7361,7372).
209 predicate(see,1,'Change the current input stream',7451,7456).
210 predicate(tell,1,'Change current output stream',7458,7463).
211 predicate(append,1,'Append to a file',7465,7469).
212 predicate(seeing,1,'Query the current input stream',7471,7476).
213 predicate(telling,1,'Query current output stream',7478,7483).
214 predicate(seen,0,'Close the current input stream',7485,7488).
215 predicate(told,0,'Close current output',7490,7493).
216 predicate(set_input,1,'Set current input stream from a stream',7501,7505).
217 predicate(set_output,1,'Set current output stream from a stream',7507,7510).
218 predicate(current_input,1,'Get current input stream',7512,7515).
219 predicate(current_output,1,'Get the current output stream',7517,7519).
220 predicate(with_output_to,2,'Write to strings and more',7524,7574).
221 predicate(wait_for_input,3,'Wait for input with optional timeout',7579,7621).
222 predicate(byte_count,2,'Byte-position in a stream',7623,7628).
223 predicate(character_count,2,'Get character index on a stream',7630,7635).
224 predicate(line_count,2,'Line number on stream',7637,7640).
225 predicate(line_position,2,'Character position in line on stream',7642,7647).
226 predicate(nl,0,'Generate a newline',7654,7657).
227 predicate(nl,1,'Generate a newline on a stream',7659,7661).
228 predicate(put,1,'Write a character',7663,7668).
229 predicate(put,2,'Write a character on a stream',7670,7672).
230 predicate(put_byte,1,'Write a byte',7674,7677).
231 predicate(put_byte,2,'Write a byte on a stream',7679,7682).
232 predicate(put_char,1,'Write a character',7684,7689).
233 predicate(put_char,2,'Write a character on a stream',7691,7695).
234 predicate(put_code,1,'Write a character-code',7697,7701).
235 predicate(put_code,2,'Write a character-code on a stream',7703,7705).
236 predicate(tab,1,'Output number of spaces',7707,7711).
237 predicate(tab,2,'Output number of spaces on a stream',7713,7715).
238 predicate(flush_output,0,'Output pending characters on current stream',7717,7721).
239 predicate(flush_output,1,'Output pending characters on specified stream',7723,7726).
240 predicate(ttyflush,0,'Flush output on terminal',7728,7730).
241 predicate(get_byte,1,'Read next byte (ISO)',7732,7736).
242 predicate(get_byte,2,'Read next byte from a stream (ISO)',7738,7741).
243 predicate(get_code,1,'Read next character (ISO)',7743,7747).
244 predicate(get_code,2,'Read next character from a stream (ISO)',7749,7751).
245 predicate(get_char,1,'Read next character as an atom (ISO)',7753,7757).
246 predicate(get_char,2,'Read next character from a stream (ISO)',7759,7762).
247 predicate(get0,1,'Read next character',7764,7769).
248 predicate(get0,2,'Read next character from a stream',7771,7774).
249 predicate(get,1,'Read first non-blank character',7776,7780).
250 predicate(get,2,'Read first non-blank character from a stream',7782,7785).
251 predicate(peek_byte,1,'Read byte without removing',7787,7788).
252 predicate(peek_byte,2,'Read byte without removing',7790,7791).
253 predicate(peek_code,1,'Read character-code without removing',7793,7794).
254 predicate(peek_code,2,'Read character-code without removing',7796,7797).
255 predicate(peek_char,1,'Read character without removing',7799,7800).
256 predicate(peek_char,2,'Read character without removing',7802,7809).
257 predicate(skip,1,'Skip to character in current input',7811,7815).
258 predicate(skip,2,'Skip to character on stream',7817,7819).
259 predicate(get_single_char,1,'Read next character from the terminal',7821,7830).
260 predicate(at_end_of_stream,0,'Test for end of file on input',7832,7836).
261 predicate(at_end_of_stream,1,'Test for end of file on stream',7838,7843).
262 predicate(set_end_of_stream,1,'Set physical end of an open file',7845,7849).
263 predicate(copy_stream_data,3,'Copy n bytes from stream to stream',7851,7856).
264 predicate(copy_stream_data,2,'Copy all data from stream to stream',7858,7860).
265 predicate(read_pending_input,3,'Fetch buffered input from a stream',7862,7888).
266 predicate(write_term,2,'Write term with options',7902,8043).
267 predicate(write_term,3,'Write term with options to stream',8045,8048).
268 predicate(write_length,3,'Dermine #characters to output a term',8050,8059).
269 predicate(write_canonical,1,'Write a term with quotes, ignore operators',8061,8075).
270 predicate(write_canonical,2,'Write a term with quotes, ignore operators on a stream',8077,8079).
271 predicate(write,1,'Write term',8081,8084).
272 predicate(write,2,'Write term to stream',8086,8088).
273 predicate(writeq,1,'Write term, insert quotes',8090,8095).
274 predicate(writeq,2,'Write term, insert quotes on stream',8097,8099).
275 predicate(writeln,1,'Write term, followed by a newline',8101,8103).
276 predicate(print,1,'Print a term',8105,8111).
277 predicate(print,2,'Print a term on a stream',8113,8115).
278 predicate(portray,1,'Hook (user) Modify behaviour of print/1',8117,8124).
279 predicate(read,1,'Read Prolog term',8126,8131).
280 predicate(read,2,'Read Prolog term from stream',8133,8135).
281 predicate(read_clause,3,'Read clause from stream',8137,8167).
282 predicate(read_term,2,'Read term with options',8169,8286).
283 predicate(read_term,3,'Read term with options from stream',8288,8290).
284 predicate(read_term_from_atom,3,'Read term with options from atom',8292,8297).
285 predicate(read_history,6,'Read using history substitution',8299,8314).
286 predicate(prompt,2,'Change the prompt used by read/1',8316,8324).
287 predicate(prompt1,1,'Change prompt for 1 line',8326,8329).
288 predicate(functor,3,'Get name and arity of a term or construct a term ',8334,8341).
289 predicate(arg,3,'Access argument of a term',8343,8352).
290 predicate(=..,2,'``Univ.\'\' Term to list conversion',8354,8369).
291 predicate(numbervars,3,'Number unbound variables of a term',8371,8385).
292 predicate(numbervars,4,'Number unbound variables of a term',8387,8406).
293 predicate(var_number,2,'Check that var is numbered by numbervars',8408,8414).
294 predicate(term_variables,2,'Find unbound variables in a term',8416,8426).
295 predicate(term_variables,3,'Find unbound variables in a term',8428,8431).
296 predicate(copy_term,2,'Make a copy of a term',8433,8442).
297 predicate(setarg,3,'Destructive assignment on term',8454,8470).
298 predicate(nb_setarg,3,'Non-backtrackable assignment to term',8472,8502).
299 predicate(nb_linkarg,3,'Non-backtrackable assignment to term',8504,8508).
300 predicate(duplicate_term,2,'Create a copy of a term',8510,8515).
301 predicate(same_term,2,'Test terms to be at the same address',8517,8522).
302 predicate(atom_codes,2,'Convert between atom and list of characters codes',8545,8551).
303 predicate(atom_chars,2,'Convert between atom and list of characters',8553,8561).
304 predicate(char_code,2,'Convert between character and character code',8563,8566).
305 predicate(number_chars,2,'Convert between number and one-char atoms',8568,8575).
306 predicate(number_codes,2,'Convert between number and character codes',8577,8581).
307 predicate(atom_number,2,'Convert between atom and number',8583,8590).
308 predicate(name,2,'Convert between atom and list of character codes',8592,8609).
309 predicate(term_to_atom,2,'Convert between term and atom',8611,8617).
310 predicate(atom_to_term,3,'Convert between atom and term',8619,8626).
311 predicate(atom_concat,3,'Append two atoms',8628,8635).
312 predicate(atomic_concat,3,'Concatenate two atomic values to an atom',8637,8645).
313 predicate(atomic_list_concat,2,'Append a list of atoms',8647,8651).
314 predicate(atomic_list_concat,3,'Append a list of atoms with separator',8653,8674).
315 predicate(atom_length,2,'Determine length of an atom',8676,8682).
316 predicate(atom_prefix,2,'Test for start of atom',8684,8687).
317 predicate(sub_atom,5,'Take a substring from an atom',8689,8703).
318 predicate(sub_atom_icasechk,3,'Case insensitive substring match',8705,8711).
319 predicate(locale_create,3,'Create a new locale object',8741,8775).
320 predicate(locale_destroy,1,'Destroy a locale object',8777,8781).
321 predicate(locale_property,2,'Query properties of locale objects',8783,8786).
322 predicate(set_locale,1,'Set the default local',8788,8794).
323 predicate(current_locale,1,'Get the current locale',8796,8798).
324 predicate(char_type,2,'Classify characters',8813,8921).
325 predicate(code_type,2,'Classify a character-code',8923,8930).
326 predicate(downcase_atom,2,'Convert atom to lower-case',8940,8945).
327 predicate(upcase_atom,2,'Convert atom to upper-case',8947,8949).
328 predicate(normalize_space,2,'Normalize white space',8954,8959).
329 predicate(collation_key,2,'Sort key for locale dependent ordering',8967,8980).
330 predicate(locale_sort,2,'Language dependent sort of atoms',8982,8987).
331 predicate(atom_string,2,'Conversion between atom and string',9033,9037).
332 predicate(string_codes,2,'Conversion between string and list of character codes',9039,9042).
333 predicate(string_length,2,'Determine length of a string',9044,9048).
334 predicate(string_code,3,'Get or find a character code in a string',9050,9059).
335 predicate(string_concat,3,'atom_concat/3 for strings',9061,9070).
336 predicate(sub_string,5,'Take a substring from a string',9072,9076).
337 predicate(op,3,'Declare an operator',9114,9179).
338 predicate(current_op,3,'Examine current operator declarations',9181,9184).
339 predicate(char_conversion,2,'Provide mapping of input characters',9192,9198).
340 predicate(current_char_conversion,2,'Query input character mapping',9200,9203).
341 predicate(between,3,'Integer range checking/generating',9223,9230).
342 predicate(succ,2,'Logical integer successor relation',9232,9238).
343 predicate(plus,3,'Logical integer addition',9240,9243).
344 predicate(>,2,'Arithmetic larger',9254,9256).
345 predicate(<,2,'Arithmetic smaller',9258,9260).
346 predicate(=<,2,'Arithmetic smaller or equal',9262,9265).
347 predicate(>=,2,'Arithmetic larger or equal',9267,9270).
348 predicate(=\=,2,'Arithmetic not equal',9272,9274).
349 predicate(=:=,2,'Arithmetic equal',9276,9278).
350 predicate(is,2,'Evaluate arithmetic expression',9280,9289).
351 predicate(-,1,'Unary minus',9405,9407).
352 predicate(+,1,'Unary plus (No-op)',9409,9412).
353 predicate(+,2,'Addition',9414,9416).
354 predicate(-,2,'Subtraction',9418,9420).
355 predicate(*,2,'Multiplication',9422,9424).
356 predicate(/,2,'Division',9426,9434).
357 predicate(mod,2,'Remainder of division',9436,9439).
358 predicate(rem,2,'Remainder of division',9441,9444).
359 predicate(//,2,'Integer division',9446,9451).
360 predicate(div,2,'Integer division',9453,9466).
361 predicate(rdiv,2,'Ration number division',9468,9472).
362 predicate(gcd,2,'Greatest common divisor',9474,9476).
363 predicate(abs,1,'Absolute value',9478,9480).
364 predicate(sign,1,'Extract sign of value',9482,9487).
365 predicate(copysign,2,'Apply sign of N2 to N1',9489,9500).
366 predicate(max,2,'Maximum of two numbers',9502,9507).
367 predicate(min,2,'Minimum of two numbers',9509,9512).
368 predicate('.',2,'Consult. Also list constructor',9514,9523).
369 predicate(random,1,'Binds R to a new random float in the _open_ interval (0.0,1.0).',9525,9537).
370 predicate(random_float,0,'Generate random number',9539,9545).
371 predicate(round,1,'Round to nearest integer',9547,9549).
372 predicate(integer,1,'Type check for integer',9551,9553).
373 predicate(float,1,'Type check for a floating point number',9555,9560).
374 predicate(rational,1,'Type check for a rational number',9562,9580).
375 predicate(rationalize,1,'Convert to rational number',9582,9596).
376 predicate(float_fractional_part,1,'Fractional part of a float',9598,9603).
377 predicate(float_integer_part,1,'Integer part of a float',9605,9608).
378 predicate(truncate,1,'Truncate float to integer',9610,9614).
379 predicate(floor,1,'Largest integer below argument',9616,9619).
380 predicate(ceiling,1,'Smallest integer larger than arg',9621,9624).
381 predicate(ceil,1,'Smallest integer larger than arg',9626,9628).
382 predicate(>>,2,'Bitwise right shift',9630,9635).
383 predicate(<<,2,'Bitwise left shift',9637,9639).
384 predicate(\/,2,'Bitwise or',9641,9643).
385 predicate(/\,2,'Bitwise and',9645,9647).
386 predicate(xor,2,'Bitwise exclusive or',9649,9651).
387 predicate(\,1,'Bitwise negation',9653,9656).
388 predicate(sqrt,1,'Square root',9658,9660).
389 predicate(sin,1,'Sine',9662,9664).
390 predicate(cos,1,'Cosine',9666,9668).
391 predicate(tan,1,'Tangent',9670,9672).
392 predicate(asin,1,'Inverse (arc) sine',9674,9676).
393 predicate(acos,1,'Inverse (arc) cosine',9678,9680).
394 predicate(atan,1,'Inverse hyperbolic sine',9682,9684).
395 predicate(atan2,2,'Rectangular to polar conversion',9686,9690).
396 predicate(atan,2,'Rectangular to polar conversion',9692,9694).
397 predicate(sinh,1,'Hyperbolic sine',9696,9699).
398 predicate(cosh,1,'Hyperbolic cosine',9701,9704).
399 predicate(tanh,1,'Hyperbolic tangent',9706,9709).
400 predicate(asinh,1,'Inverse (arc) sine',9711,9713).
401 predicate(acosh,1,'Inverse hyperbolic cosine',9715,9717).
402 predicate(atanh,1,'Inverse hyperbolic tangent',9719,9721).
403 predicate(log,1,'Natural logarithm',9723,9725).
404 predicate(log10,1,'10 base logarithm',9727,9729).
405 predicate(exp,1,'Exponent (base $e$)',9731,9733).
406 predicate(**,2,'Power function',9735,9750).
407 predicate(^,2,'Existential quantification (bagof/3, setof/3)',9752,9770).
408 predicate(powm,3,'Integer exponent and modulo',9772,9777).
409 predicate(lgamma,1,'',9779,9782).
410 predicate(erf,1,'',9784,9789).
411 predicate(erfc,1,'',9791,9793).
412 predicate(pi,0,'Mathematical constant',9795,9797).
413 predicate(e,0,'Mathematical constant',9799,9801).
414 predicate(epsilon,0,'Floating point precision',9803,9806).
415 predicate(cputime,0,'Get CPU time',9808,9812).
416 predicate(eval,1,'Evaluate term as expression',9814,9826).
417 predicate(msb,1,'Most significant bit',9828,9833).
418 predicate(lsb,1,'Least significant bit',9835,9840).
419 predicate(popcount,1,'Count 1s in a bitvector',9842,9845).
420 predicate(set_random,1,'Control random number generation',9850,9872).
421 predicate(random_property,1,'Query properties of random generation',9874,9886).
422 predicate(current_arithmetic_function,1,'Examine evaluable functions',9888,9895).
423 predicate(is_list,1,'Type check for a list',9904,9918).
424 predicate(memberchk,2,'Deterministic member/2',9920,9928).
425 predicate(length,2,'Length of a list',9930,9947).
426 predicate(sort,2,'Sort elements in a list',9949,9955).
427 predicate(msort,2,'Sort, do not remove duplicates',9957,9960).
428 predicate(keysort,2,'Sort, using a key',9962,9984).
429 predicate(predsort,3,'Sort, using a predicate to determine the order',9986,9991).
430 predicate(findall,3,'Find all solutions to a goal',9996,10003).
431 predicate(findall,4,'Difference list version of findall/3',10005,10013).
432 predicate(bagof,3,'Find all solutions to a goal',10015,10047).
433 predicate(setof,3,'Find all unique solutions to a goal',10049,10052).
434 predicate(forall,2,'Prove goal for all solutions of another goal',10057,10098).
435 predicate(writef,1,'Formatted write',10113,10115).
436 predicate(writef,2,'Formatted write on stream',10117,10176).
437 predicate(swritef,3,'Formatted write on a string',10178,10186).
438 predicate(swritef,2,'Formatted write on a string',10188,10190).
439 predicate(format,1,'Formatted output',10198,10201).
440 predicate(format,2,'Formatted output with arguments',10203,10374).
441 predicate(format,3,'Formatted output on a stream',10376,10386).
442 predicate(format_predicate,2,'Program format/[1,2]',10391,10420).
443 predicate(current_format_predicate,2,'Enumerate user-defined format codes',10422,10425).
444 predicate(tty_get_capability,3,'Get terminal parameter',10435,10443).
445 predicate(tty_goto,2,'Goto position on screen',10445,10449).
446 predicate(tty_put,2,'Write control string to terminal',10451,10457).
447 predicate(tty_size,2,'Get row/column size of the terminal',10459,10473).
448 predicate(shell,2,'Execute OS command',10478,10507).
449 predicate(shell,1,'Execute OS command',10509,10511).
450 predicate(shell,0,'Execute interactive subshell',10513,10517).
451 predicate(getenv,2,'Get shell environment variable',10519,10523).
452 predicate(setenv,2,'Set shell environment variable',10525,10534).
453 predicate(unsetenv,1,'Delete shell environment variable',10536,10540).
454 predicate(setlocale,3,'Set/query C-library regional information',10542,10554).
455 predicate(unix,1,'OS interaction',10556,10597).
456 predicate(win_exec,2,'Win32: spawn Windows task',10608,10615).
457 predicate(win_shell,3,'Win32: open document through Shell',10617,10626).
458 predicate(win_shell,2,'Win32: open document through Shell',10628,10630).
459 predicate(win_registry_get_value,3,'Win32: get registry value',10632,10653).
460 predicate(win_folder,2,'Win32: get special folder by CSIDL',10655,10668).
461 predicate(win_add_dll_directory,1,'Add directory to DLL search path',10670,10679).
462 predicate(win_add_dll_directory,2,'Add directory to DLL search path',10681,10704).
463 predicate(win_remove_dll_directory,1,'',10706,10709).
464 predicate(get_time,1,'Get current time',10783,10786).
465 predicate(stamp_date_time,3,'Convert time-stamp to date structure',10788,10794).
466 predicate(date_time_stamp,2,'Convert sate structure to time-stamp',10796,10847).
467 predicate(date_time_value,3,'Extract info from a date structure',10849,10866).
468 predicate(format_time,3,'C strftime() like date/time formatter',10868,11030).
469 predicate(format_time,4,'date/time formatter with explicit locale',11032,11041).
470 predicate(parse_time,2,'Parse text to a time-stamp',11043,11045).
471 predicate(parse_time,3,'Parse text to a time-stamp',11047,11066).
472 predicate(day_of_the_week,2,'Determine ordinal-day from date',11068,11073).
473 predicate(window_title,2,'Win32: change title of window',11084,11087).
474 predicate(win_window_pos,1,'Win32: change size and position of window',11089,11112).
475 predicate(win_has_menu,0,'Win32: true if console menu is available',11114,11116).
476 predicate(win_insert_menu,2,'swipl-win.exe: add menu',11118,11129).
477 predicate(win_insert_menu_item,4,'swipl-win.exe: add item to menu',11131,11135).
478 predicate(access_file,2,'Check access permissions of a file',11140,11150).
479 predicate(exists_file,1,'Check existence of file',11152,11155).
480 predicate(file_directory_name,2,'Get directory part of path',11157,11174).
481 predicate(file_base_name,2,'Get file part of path',11176,11180).
482 predicate(same_file,2,'Succeeds if arguments refer to same file',11182,11191).
483 predicate(exists_directory,1,'Check existence of directory',11193,11196).
484 predicate(delete_file,1,'Remove a file from the file system',11198,11200).
485 predicate(rename_file,2,'Change name of file',11202,11208).
486 predicate(size_file,2,'Get size of a file in characters',11210,11212).
487 predicate(time_file,2,'Get last modification time of file',11214,11218).
488 predicate(absolute_file_name,2,'Get absolute path name',11220,11228).
489 predicate(absolute_file_name,3,'Get absolute path name with options',11230,11287).
490 predicate(is_absolute_file_name,1,'True if arg defines an absolute path',11289,11295).
491 predicate(file_name_extension,3,'Add, remove or test file extensions',11297,11305).
492 predicate(directory_files,2,'Get entries of a directory/folder',11307,11313).
493 predicate(expand_file_name,2,'Wildcard expansion of file names',11315,11332).
494 predicate(prolog_to_os_filename,2,'Convert between Prolog and OS filenames',11334,11340).
495 predicate(read_link,3,'Read a symbolic link',11342,11348).
496 predicate(tmp_file,2,'Create a temporary filename',11350,11360).
497 predicate(tmp_file_stream,3,'Create a temporary file and open it',11362,11389).
498 predicate(make_directory,1,'Create a folder on the file system',11391,11395).
499 predicate(delete_directory,1,'Remove a folder from the file system',11397,11401).
500 predicate(working_directory,2,'Query/change CWD',11403,11409).
501 predicate(chdir,1,'Compatibility: change working directory',11411,11413).
502 predicate(break,0,'Start interactive top level',11418,11426).
503 predicate(abort,0,'Abort execution, return to top level',11428,11445).
504 predicate(halt,0,'Exit from Prolog',11447,11450).
505 predicate(halt,1,'Exit from Prolog with status',11452,11481).
506 predicate(prolog,0,'Run interactive top level',11483,11492).
507 predicate(expand_query,4,'Expanded entered query',11494,11502).
508 predicate(expand_answer,2,'Expand answer of query',11504,11509).
509 predicate(protocol,1,'Make a log of the user interaction',11518,11521).
510 predicate(protocola,1,'Append log of the user interaction to file',11523,11526).
511 predicate(noprotocol,0,'Disable logging of user interaction',11528,11531).
512 predicate(protocolling,1,'On what file is user interaction logged',11533,11536).
513 predicate(trace,0,'Start the tracer',11547,11551).
514 predicate(tracing,0,'Query status of the tracer',11553,11556).
515 predicate(notrace,0,'Stop tracing',11558,11560).
516 predicate(guitracer,0,'Install hooks for the graphical debugger',11562,11567).
517 predicate(noguitracer,0,'Disable the graphical debugger',11569,11571).
518 predicate(trace,1,'Set trace point on predicate',11573,11575).
519 predicate(trace,2,'Set/Clear trace point on ports',11577,11597).
520 predicate(notrace,1,'Do not debug argument goal',11599,11604).
521 predicate(debug,0,'Test for debugging mode',11606,11620).
522 predicate(nodebug,0,'Disable debugging',11622,11625).
523 predicate(debugging,0,'Show debugger status',11627,11630).
524 predicate(spy,1,'Force tracer on specified predicate',11632,11635).
525 predicate(nospy,1,'Remove spy point',11637,11640).
526 predicate(nospyall,0,'Remove all spy points',11642,11644).
527 predicate(leash,1,'Change ports visited by the tracer',11646,11654).
528 predicate(visible,1,'Ports that are visible in the tracer',11656,11659).
529 predicate(unknown,2,'Trap undefined predicates',11661,11666).
530 predicate(style_check,1,'Change level of warnings',11668,11752).
531 predicate(statistics,2,'Obtain collected statistics',11757,11844).
532 predicate(statistics,0,'Show execution statistics',11846,11848).
533 predicate(time,1,'Determine time needed to execute goal',11850,11858).
534 predicate(profile,1,'Obtain execution statistics',11876,11880).
535 predicate(profile,2,'Obtain execution statistics',11882,11895).
536 predicate(show_profile,1,'Show results of the profiler',11897,11909).
537 predicate(profiler,2,'Obtain/change status of the profiler',11911,11925).
538 predicate(reset_profiler,0,'Clear statistics obtained by the profiler',11927,11929).
539 predicate(noprofile,1,'Hide (meta-) predicate for the profiler',11931,11937).
540 predicate(garbage_collect,0,'Invoke the garbage collector',12040,12047).
541 predicate(garbage_collect_atoms,0,'Invoke the atom garbage collector',12049,12057).
542 predicate(trim_stacks,0,'Release unused memory resources',12059,12077).
543 predicate(set_prolog_stack,2,'Modify stack characteristics',12079,12118).
544 predicate(prolog_stack_property,2,'Query properties of the stacks',12120,12123).
545 predicate(open_dde_conversation,3,'Win32: Open DDE channel',12169,12174).
546 predicate(close_dde_conversation,1,'Win32: Close DDE channel',12176,12181).
547 predicate(dde_request,3,'Win32: Make a DDE request',12183,12187).
548 predicate(dde_execute,2,'Win32: Execute command on DDE server',12189,12193).
549 predicate(dde_poke,3,'Win32: POKE operation on DDE server',12195,12198).
550 predicate(dde_register_service,2,'Win32: Become a DDE server',12209,12246).
551 predicate(dde_unregister_service,1,'Win32: Terminate a DDE service',12248,12251).
552 predicate(dde_current_service,2,'Win32: Examine DDE services provided',12253,12255).
553 predicate(dde_current_connection,2,'Win32: Examine open DDE connections',12257,12259).
554 predicate(dwim_match,2,'Atoms match in ``Do What I Mean\'\' sense',12264,12282).
555 predicate(dwim_match,3,'Atoms match in ``Do What I Mean\'\' sense',12284,12289).
556 predicate(wildcard_match,2,'Csh(1) style wildcard match',12291,12307).
557 predicate(sleep,1,'Suspend execution for specified time',12309,12319).
558 predicate(module,2,'Declare a module',12400,12413).
559 predicate(module,3,'Declare a module with language options',12415,12424).
560 predicate(use_module,1,'Import a module',12440,12484).
561 predicate(use_module,2,'Import predicates from a module',12486,12512).
562 predicate(meta_predicate,1,'Declare access to other predicates',12565,12642).
563 predicate(@,2,'Call using calling context',12686,12701).
564 predicate(module,1,'Query/set current type-in module',12719,12731).
565 predicate(reexport,1,'Load files and re-export the imported predicates',12754,12758).
566 predicate(reexport,2,'Load predicates from a file and re-export it',12760,12764).
567 predicate(import_module,2,'Query import modules',12819,12824).
568 predicate(default_module,2,'Query module inheritance',12826,12831).
569 predicate(add_import_module,3,'Add module to the auto-import list',12833,12837).
570 predicate(delete_import_module,2,'Remove module from import list',12839,12846).
571 predicate(export,1,'Export a predicate from a module',12875,12881).
572 predicate(import,1,'Import a predicate from a module',12883,12890).
573 predicate(module_transparent,1,'Indicate module based meta-predicate',13001,13005).
574 predicate(context_module,1,'Get context module of current goal',13007,13010).
575 predicate(strip_module,3,'Extract context module and term',13012,13018).
576 predicate(current_module,1,'Examine existing modules',13026,13031).
577 predicate(module_property,2,'Find properties of a module',13033,13071).
578 predicate(set_module,1,'Set properties of a module',13073,13083).
579 predicate(attvar,1,'Type test for attributed variable',13276,13280).
580 predicate(put_attr,3,'Put attribute on a variable',13282,13290).
581 predicate(get_attr,3,'Fetch named attribute from a variable',13292,13297).
582 predicate(del_attr,2,'Delete attribute from variable',13299,13305).
583 predicate(attr_unify_hook,2,'Attributed variable unification hook',13314,13325).
584 predicate(attr_portray_hook,2,'Attributed variable print hook',13327,13334).
585 predicate(attribute_goals,3,'Project attributes to goals',13336,13341).
586 predicate(copy_term,3,'Copy a term and obtain attribute-goals',13346,13358).
587 predicate(copy_term_nat,2,'Make a copy of a term without attributes',13360,13363).
588 predicate(term_attvars,2,'Find attributed variables in a term',13365,13372).
589 predicate(get_attrs,2,'Fetch all attributes of a variable',13382,13386).
590 predicate(put_attrs,2,'Set/replace all attributes on a variable',13388,13391).
591 predicate(del_attrs,1,'Delete all attributes from variable',13393,13396).
592 predicate(freeze,2,'Delay execution until variable is bound',13416,13423).
593 predicate(frozen,2,'Query delayed goals on var',13425,13428).
594 predicate(when,2,'Execute goal when condition becomes true',13430,13439).
595 predicate(dif,2,'Constrain two terms to be different',13441,13453).
596 predicate(call_residue_vars,2,'Find residual attributed variables',13455,13473).
597 predicate(b_setval,2,'Assign backtrackable global variable',13514,13520).
598 predicate(b_getval,2,'Fetch backtrackable global variable',13522,13529).
599 predicate(nb_setval,2,'Assign non-backtrackable global variable',13531,13535).
600 predicate(nb_getval,2,'Fetch non-backtrackable global variable',13537,13543).
601 predicate(nb_linkval,2,'Assign non-backtrackable global variable',13545,13566).
602 predicate(nb_current,2,'Enumerate non-backtrackable global variables',13568,13571).
603 predicate(nb_delete,1,'Delete a non-backtrackable global variable',13573,13575).
604 predicate(chr_option,2,'Specify CHR compilation options',13783,13821).
605 predicate(chr_constraint,1,'CHR Constraint declaration',13836,13911).
606 predicate(chr_type,1,'CHR Type declaration',13913,14042).
607 predicate(chr_trace,0,'Start CHR tracer',14179,14183).
608 predicate(chr_notrace,0,'Stop CHR tracer',14185,14189).
609 predicate(chr_leash,1,'Define CHR leashed ports',14191,14198).
610 predicate(chr_show_store,1,'List suspended CHR constraints',14200,14207).
611 predicate(find_chr_constraint,1,'Returns a constraint from the store',14209,14212).
612 predicate(thread_create,3,'Create a new Prolog task',14510,14591).
613 predicate(thread_self,1,'Get identifier of current thread',14593,14596).
614 predicate(thread_join,2,'Wait for Prolog task-completion',14598,14624).
615 predicate(thread_detach,1,'Make thread cleanup after completion',14626,14638).
616 predicate(thread_exit,1,'Terminate Prolog task with value',14640,14651).
617 predicate(thread_initialization,1,'Run action at start of thread',14653,14662).
618 predicate(thread_at_exit,1,'Register goal to be called at exit',14664,14679).
619 predicate(thread_setconcurrency,2,'Number of active threads',14681,14688).
620 predicate(thread_property,2,'Examine Prolog threads',14703,14744).
621 predicate(thread_statistics,3,'Get statistics of another thread',14746,14751).
622 predicate(mutex_statistics,0,'Print statistics on mutex usage',14753,14760).
623 predicate(thread_send_message,2,'Send message to another thread',14777,14793).
624 predicate(thread_get_message,1,'Wait for message',14795,14815).
625 predicate(thread_peek_message,1,'Test for message',14817,14824).
626 predicate(message_queue_create,1,'Create queue for thread communication',14826,14831).
627 predicate(message_queue_create,2,'Create queue for thread communication',14833,14846).
628 predicate(message_queue_destroy,1,'Destroy queue for thread communication',14848,14853).
629 predicate(thread_get_message,2,'Wait for message in a queue',14855,14861).
630 predicate(thread_get_message,3,'Wait for message in a queue',14863,14885).
631 predicate(thread_peek_message,2,'Test for message in a queue',14887,14892).
632 predicate(message_queue_property,2,'Query message queue properties',14894,14953).
633 predicate(thread_signal,2,'Execute goal in another thread',14968,14986).
634 predicate(thread_local,1,'Declare thread-specific clauses for a predicate',15006,15035).
635 predicate(mutex_create,1,'Create a thread-synchronisation device',15069,15073).
636 predicate(mutex_create,2,'Create a thread-synchronisation device',15075,15081).
637 predicate(mutex_destroy,1,'Destroy a mutex',15083,15086).
638 predicate(with_mutex,2,'Run goal while holding mutex',15088,15099).
639 predicate(mutex_lock,1,'Become owner of a mutex',15101,15119).
640 predicate(mutex_trylock,1,'Become owner of a mutex (non-blocking)',15121,15124).
641 predicate(mutex_unlock,1,'Release ownership of mutex',15126,15130).
642 predicate(mutex_unlock_all,0,'Release ownership of all mutexes',15132,15136).
643 predicate(mutex_property,2,'Query mutex properties',15138,15152).
644 predicate(threads,0,'List running threads',15161,15163).
645 predicate(join_threads,0,'Join all terminated threads interactively',15165,15172).
646 predicate(interactor,0,'Start new thread with console and top level',15174,15178).
647 predicate(attach_console,0,'Attach I/O console to thread',15192,15207).
648 predicate(tdebug,1,'Switch a thread into debug mode',15209,15217).
649 predicate(tdebug,0,'Switch all threads into debug mode',15219,15221).
650 predicate(tnodebug,1,'Switch off debug mode in a thread',15223,15225).
651 predicate(tnodebug,0,'Switch off debug mode in all threads',15227,15229).
652 predicate(tspy,2,'Set spy point and enable debugging in a thread',15231,15237).
653 predicate(tspy,1,'Set spy point and enable debugging in all threads',15239,15244).
654 predicate(tprofile,1,'Profile a thread for some period',15255,15259).
655 predicate(in_pce_thread,1,'Run goal in XPCE thread',15455,15462).
656 predicate(in_pce_thread_sync,1,'Run goal in XPCE thread',15464,15477).
657 predicate(pce_dispatch,1,'Run XPCE GUI in separate thread',15479,15486).
658 predicate(load_foreign_library,1,'library(shlib) Load shared library (.so file)',15630,15631).
659 predicate(load_foreign_library,2,'library(shlib) Load shared library (.so file)',15633,15659).
660 predicate(use_foreign_library,1,'Load DLL/shared object (directive)',15661,15662).
661 predicate(use_foreign_library,2,'Load DLL/shared object (directive)',15664,15677).
662 predicate(unload_foreign_library,1,'library(shlib) Detach shared library (.so file)',15679,15680).
663 predicate(unload_foreign_library,2,'library(shlib) Detach shared library (.so file)',15682,15687).
664 predicate(current_foreign_library,2,'library(shlib) Examine loaded shared libraries (.so files)',15689,15691).
665 predicate(reload_foreign_libraries,0,'Reload DLLs/shared objects',15693,15696).
666 predicate(open_shared_object,2,'UNIX: Open shared library (.so file)',15708,15717).
667 predicate(open_shared_object,3,'UNIX: Open shared library (.so file)',15719,15728).
668 predicate(close_shared_object,1,'UNIX: Close shared library (.so file)',15730,15732).
669 predicate(call_shared_object_function,2,'UNIX: Call C-function in shared (.so) file',15734,15739).
670 predicate(qsave_program,2,'Create runtime application',19540,19605).
671 predicate(qsave_program,1,'Create runtime application',19607,19609).
672 predicate(autoload,0,'Autoload all predicates now',19611,19660).
673 predicate(volatile,1,'Predicates that are not saved',19662,19667).
674 predicate(resource,3,'Declare a program resource',19791,19825).
675 predicate(open_resource,3,'Open a program resource as a stream',19827,19846).
676 predicate(aggregate,3,'Aggregate bindings in Goal according to Template.',20037,20040).
677 predicate(aggregate,4,'Aggregate bindings in Goal according to Template.',20042,20045).
678 predicate(aggregate_all,3,'Aggregate bindings in Goal according to Template.',20047,20050).
679 predicate(aggregate_all,4,'Aggregate bindings in Goal according to Template.',20052,20056).
680 predicate(foreach,2,'True if conjunction of results is true.',20058,20080).
681 predicate(free_variables,4,'Find free variables in bagof/setof template.',20082,20106).
682 predicate(safe_meta,2,'Declare the aggregate meta-calls safe.',20108,20111).
683 predicate(include,3,'Filter elements for which Goal succeeds.',20126,20132).
684 predicate(exclude,3,'Filter elements for which Goal fails.',20134,20137).
685 predicate(partition,4,'Filter elements of List according to Pred.',20139,20143).
686 predicate(partition,5,'Filter List according to Pred in three sets.',20145,20150).
687 predicate(maplist,2,'True if Goal can successfully be applied on all elements of List.',20152,20156).
688 predicate(maplist,3,'As maplist/2, operating on pairs of elements from two lists.',20158,20160).
689 predicate(maplist,4,'As maplist/2, operating on triples of elements from three lists.',20162,20164).
690 predicate(maplist,5,'As maplist/2, operating on quadruples of elements from four lists.',20166,20168).
691 predicate(foldl,4,'Fold a list, using arguments of the list as left argument.',20170,20171).
692 predicate(foldl,5,'Fold a list, using arguments of the list as left argument.',20173,20174).
693 predicate(foldl,6,'Fold a list, using arguments of the list as left argument.',20176,20177).
694 predicate(foldl,7,'Fold a list, using arguments of the list as left argument.',20179,20189).
695 predicate(scanl,4,'Left scan of list.',20191,20192).
696 predicate(scanl,5,'Left scan of list.',20194,20195).
697 predicate(scanl,6,'Left scan of list.',20197,20198).
698 predicate(scanl,7,'Left scan of list.',20200,20211).
699 predicate(assoc_to_list,2,'Convert association tree to list',20226,20229).
700 predicate(assoc_to_keys,2,'Translate assoc into a key list',20231,20234).
701 predicate(assoc_to_values,2,'Translate assoc into a value list',20236,20239).
702 predicate(empty_assoc,1,'Create/test empty association tree',20241,20243).
703 predicate(gen_assoc,3,'Enumerate members of association tree',20245,20248).
704 predicate(get_assoc,3,'Fetch key from association tree',20250,20253).
705 predicate(get_assoc,5,'Fetch key from association tree',20255,20258).
706 predicate(list_to_assoc,2,'Create association tree from list',20260,20263).
707 predicate(map_assoc,2,'Map association tree',20265,20267).
708 predicate(map_assoc,3,'Map association tree',20269,20272).
709 predicate(max_assoc,3,'Highest key in association tree',20274,20277).
710 predicate(min_assoc,3,'Lowest key in association tree',20279,20282).
711 predicate(ord_list_to_assoc,2,'Convert ordered list to assoc',20284,20287).
712 predicate(put_assoc,4,'Add Key-Value to association tree',20289,20293).
713 predicate(is_assoc,1,'Verify association list',20295,20298).
714 predicate(broadcast,1,'Send event notification',20322,20328).
715 predicate(broadcast_request,1,'Request all agents',20330,20344).
716 predicate(listen,2,'Listen to event notifications',20346,20358).
717 predicate(listen,3,'Listen to event notifications',20360,20395).
718 predicate(unlisten,1,'Stop listening to event notifications',20397,20399).
719 predicate(unlisten,2,'Stop listening to event notifications',20401,20404).
720 predicate(unlisten,3,'Stop listening to event notifications',20406,20409).
721 predicate(listening,3,'Who is listening to event notifications?',20411,20414).
722 predicate(format_to_chars,3,'Use format/2 to write to a list of character codes.',20429,20431).
723 predicate(format_to_chars,4,'Use format/2 to write to a difference list of character codes.',20433,20435).
724 predicate(write_to_chars,2,'Write a term to a code list.',20437,20440).
725 predicate(write_to_chars,3,'Write a term to a code list.',20442,20445).
726 predicate(atom_to_chars,2,'Convert Atom into a list of character codes.',20447,20451).
727 predicate(atom_to_chars,3,'Convert Atom into a difference list of character codes.',20453,20455).
728 predicate(number_to_chars,2,'Convert Atom into a list of character codes.',20457,20461).
729 predicate(number_to_chars,3,'Convert Number into a difference list of character codes.',20463,20465).
730 predicate(read_from_chars,2,'Read Codes into Term.',20467,20472).
731 predicate(read_term_from_chars,3,'Read Codes into Term.',20474,20478).
732 predicate(open_chars_stream,2,'Open Codes as an input stream.',20480,20487).
733 predicate(with_output_to_chars,2,'Run Goal as with once/1.',20489,20492).
734 predicate(with_output_to_chars,3,'Run Goal as with once/1.',20494,20497).
735 predicate(with_output_to_chars,4,'Same as with_output_to_chars/3 using an explicit stream.',20499,20503).
736 predicate(check,0,'Program completeness and consistency',20511,20519).
737 predicate(list_undefined,0,'List undefined predicates',20521,20549).
738 predicate(list_autoload,0,'List predicates that require autoload',20551,20555).
739 predicate(list_redefined,0,'List locally redefined predicates',20557,20561).
740 predicate(in,2,'Var is an element of Domain.',20864,20878).
741 predicate(ins,2,'The variables in the list Vars are elements of Domain.',20880,20882).
742 predicate(indomain,1,'Bind Var to all feasible values of its domain on backtracking.',20884,20887).
743 predicate(label,1,'Equivalent to labeling([], Vars).',20889,20891).
744 predicate(labeling,2,'Assign a value to each variable in Vars.',20893,20978).
745 predicate(all_different,1,'Vars are pairwise distinct.',20980,20982).
746 predicate(all_distinct,1,'Like all_different/1, with stronger propagation.',20984,20995).
747 predicate(sum,3,'The sum of elements of the list Vars is in relation Rel to Expr.',20997,21008).
748 predicate(scalar_product,4,'Cs is a list of integers, Vs is a list of variables and integers.',21010,21014).
749 predicate(#>=,2,'X is greater than or equal to Y.',21016,21018).
750 predicate(#=<,2,'X is less than or equal to Y.',21020,21022).
751 predicate(#=,2,'X equals Y.',21024,21026).
752 predicate(#\=,2,'X is not Y.',21028,21030).
753 predicate(#>,2,'X is greater than Y.',21032,21034).
754 predicate(#<,2,'X is less than Y.',21036,21051).
755 predicate(#\,1,'The reifiable constraint Q does _not_ hold.',21053,21061).
756 predicate(#<==>,2,'P and Q are equivalent.',21063,21102).
757 predicate(#==>,2,'P implies Q.',21104,21106).
758 predicate(#<==,2,'Q implies P.',21108,21110).
759 predicate(#/\,2,'P and Q hold.',21112,21114).
760 predicate(#\/,2,'P or Q holds.',21116,21128).
761 predicate(lex_chain,1,'Lists are lexicographically non-decreasing.',21130,21132).
762 predicate(tuples_in,2,'Relation must be a list of lists of integers.',21134,21178).
763 predicate(serialized,2,'Describes a set of non-overlapping tasks.',21180,21199).
764 predicate(element,3,'The N-th element of the list of finite domain variables Vs is V.',21201,21204).
765 predicate(global_cardinality,2,'Global Cardinality constraint.',21206,21216).
766 predicate(global_cardinality,3,'Global Cardinality constraint.',21218,21235).
767 predicate(circuit,1,'True if the list Vs of finite domain variables induces a Hamiltonian circuit.',21237,21251).
768 predicate(cumulative,1,'Equivalent to cumulative(Tasks, [limit(1)]).',21253,21255).
769 predicate(cumulative,2,'Tasks is a list of tasks, each of the form task(S_i, D_i, E_i, C_i, T_i).',21257,21290).
770 predicate(automaton,3,'Describes a list of finite domain variables with a finite automaton.',21292,21318).
771 predicate(automaton,8,'Describes a list of finite domain variables with a finite automaton.',21320,21386).
772 predicate(transpose,2,'Invert the direction of all edges',21388,21448).
773 predicate(zcompare,3,'Analogous to compare/3, with finite domain variables A and B.',21450,21475).
774 predicate(chain,2,'Zs form a chain with respect to Relation.',21477,21488).
775 predicate(fd_var,1,'True iff Var is a CLP(FD) variable.',21490,21492).
776 predicate(fd_inf,2,'Inf is the infimum of the current domain of Var.',21494,21496).
777 predicate(fd_sup,2,'Sup is the supremum of the current domain of Var.',21498,21500).
778 predicate(fd_size,2,'Determine the size of a variable\'s domain.',21502,21506).
779 predicate(fd_dom,2,'Dom is the current domain (see in/2) of Var.',21508,21514).
780 predicate({},1,'DCG escape; constraints',21555,21557).
781 predicate(entailed,1,'Check if constraint is entailed',21559,21563).
782 predicate(inf,2,'Find the infimum of an expression',21565,21569).
783 predicate(sup,2,'Find the supremum of an expression',21571,21575).
784 predicate(minimize,1,'Minimizes an expression',21577,21581).
785 predicate(maximize,1,'Maximizes an expression',21583,21587).
786 predicate(bb_inf,5,'Infimum of expression for mixed-integer problems',21589,21598).
787 predicate(bb_inf,4,'Infimum of expression for mixed-integer problems',21600,21603).
788 predicate(bb_inf,3,'Infimum of expression for mixed-integer problems',21605,21608).
789 predicate(dump,3,'Dump constraints on variables',21610,21620).
790 predicate(csv_read_file,2,'Read a CSV file into a list of rows.',21755,21756).
791 predicate(csv_read_file,3,'Read a CSV file into a list of rows.',21758,21774).
792 predicate(csv,3,'Prolog DCG to `read/write\' CSV data.',21776,21777).
793 predicate(csv,4,'Prolog DCG to `read/write\' CSV data.',21779,21812).
794 predicate(csv_read_file_row,3,'True when Row is a row in File.',21814,21834).
795 predicate(csv_write_file,2,'Write a list of Prolog terms to a CSV file.',21836,21837).
796 predicate(csv_write_file,3,'Write a list of Prolog terms to a CSV file.',21839,21844).
797 predicate(csv_write_stream,3,'Write the rows in Data to Stream.',21846,21860).
798 predicate(debugging,1,'Test where we are debugging topic',21882,21883).
799 predicate(debugging,1,'Test where we are debugging topic',21885,21886).
800 predicate(debugging,2,'Examine debug topics.',21888,21902).
801 predicate(debug,1,'Select topic for debugging',21904,21905).
802 predicate(nodebug,1,'Disable debug-topic',21907,21916).
803 predicate(list_debug_topics,0,'List registered topics for debugging',21918,21920).
804 predicate(debug_message_context,1,'Specify additional context for debug messages.',21922,21928).
805 predicate(debug,3,'Print debugging message on topic',21930,21943).
806 predicate(debug_print_hook,3,'Hook called by debug/3.',21945,21951).
807 predicate(assertion,1,'Make assertions about your program',21953,21966).
808 predicate(assertion_failed,2,'This hook is called if the Goal of assertion/1 fails.',21968,21974).
809 predicate(gensym,2,'Generate unique atoms from a base',21989,21994).
810 predicate(reset_gensym,1,'Reset a gensym key',21996,22000).
811 predicate(reset_gensym,0,'Reset all gensym keys',22002,22007).
812 predicate(member,2,'True if Elem is a member of List.',22027,22037).
813 predicate(append,3,'List1AndList2 is the concatenation of List1 and List2.',22039,22041).
814 predicate(append,2,'Concatenate a list of lists.',22043,22049).
815 predicate(prefix,2,'True iff Part is a leading substring of Whole.',22051,22054).
816 predicate(select,3,'Is true when List1, with Elem removed, results in List2.',22056,22058).
817 predicate(selectchk,3,'Semi-deterministic removal of first element in List that unifies with Elem.',22060,22063).
818 predicate(select,4,'Select from two lists at the same positon.',22065,22081).
819 predicate(selectchk,4,'Semi-deterministic version of select/4.',22083,22085).
820 predicate(nextto,3,'True if Y follows X in List.',22087,22089).
821 predicate(delete,3,'Delete matching elements from a list.',22091,22103).
822 predicate(nth0,3,'True when Elem is the Index\'th element of List.',22105,22113).
823 predicate(nth1,3,'Is true when Elem is the Index\'th element of List.',22115,22120).
824 predicate(nth0,4,'Select/insert element at index.',22122,22139).
825 predicate(nth1,4,'As nth0/4, but counting starts at 1.',22141,22143).
826 predicate(last,2,'Last element of a list',22145,22153).
827 predicate(proper_length,2,'True when Length is the number of elements in the proper list List.',22155,22164).
828 predicate(same_length,2,'Is true when List1 and List2 are lists with the same number of elements.',22166,22173).
829 predicate(reverse,2,'Is true when the elements of List2 are in reverse order compared to List1.',22175,22178).
830 predicate(permutation,2,'True when Xs is a permutation of Ys.',22180,22211).
831 predicate(flatten,2,'Is true if List2 is a non-nested version of List1.',22213,22223).
832 predicate(max_member,2,'True when Max is the largest member in the standard order of terms.',22225,22232).
833 predicate(min_member,2,'True when Min is the smallest member in the standard order of terms.',22234,22241).
834 predicate(sum_list,2,'Sum is the result of adding all numbers in List.',22243,22245).
835 predicate(max_list,2,'True if Max is the largest number in List.',22247,22251).
836 predicate(min_list,2,'True if Min is the smallest number in List.',22253,22258).
837 predicate(numlist,3,'List is a list [Low, Low+1, ... High].',22260,22266).
838 predicate(is_set,1,'True if Set is a proper list without duplicates.',22268,22273).
839 predicate(list_to_set,2,'Remove duplicates from a list',22275,22294).
840 predicate(intersection,3,'True if Set3 unifies with the intersection of Set1 and Set2.',22296,22301).
841 predicate(union,3,'True if Set3 unifies with the union of Set1 and Set2.',22303,22308).
842 predicate(subset,2,'True if all elements of SubSet belong to Set as well.',22310,22315).
843 predicate(subtract,3,'Delete all elements in Delete from Set.',22317,22322).
844 predicate(empty_nb_set,1,'Test/create an empty non-backtrackable set',22351,22353).
845 predicate(add_nb_set,2,'Add term to a non-backtrackable set',22355,22358).
846 predicate(add_nb_set,3,'Add term to a non-backtrackable set',22360,22368).
847 predicate(gen_nb_set,2,'Generate members of non-backtrackable set',22370,22373).
848 predicate(size_nb_set,2,'Determine size of non-backtrackable set',22375,22377).
849 predicate(nb_set_to_list,2,'Convert non-backtrackable set to list',22379,22382).
850 predicate(www_open_url,1,'Open a web-page in a browser',22390,22410).
851 predicate(option,3,'Get an Option Qfrom OptionList.',22465,22471).
852 predicate(option,2,'Get an Option from OptionList.',22473,22480).
853 predicate(select_option,3,'Get and remove Option from an option list.',22482,22486).
854 predicate(select_option,4,'Get and remove Option with default value.',22488,22492).
855 predicate(merge_options,3,'Merge two option lists.',22494,22501).
856 predicate(meta_options,3,'Perform meta-expansion on options that are module-sensitive.',22503,22520).
857 predicate(opt_arguments,3,'Extract commandline options according to a specification.',22827,22843).
858 predicate(opt_parse,4,'Equivalent to opt_parse(OptsSpec, ApplArgs, Opts, PositionalArgs, []).',22845,22847).
859 predicate(opt_parse,5,'Parse the arguments Args (as list of atoms) according to OptsSpec.',22849,22884).
860 predicate(opt_help,2,'True when Help is a help string synthesized from OptsSpec.',22886,22888).
861 predicate(is_ordset,1,'True if Term is an ordered set.',22919,22924).
862 predicate(ord_empty,1,'True when List is the empty ordered set.',22926,22929).
863 predicate(ord_seteq,2,'True if Set1 and Set2 have the same elements.',22931,22936).
864 predicate(list_to_ord_set,2,'Transform a list into an ordered set.',22938,22941).
865 predicate(ord_intersect,2,'True if both ordered sets have a non-empty intersection.',22943,22945).
866 predicate(ord_disjoint,2,'True if Set1 and Set2 have no common elements.',22947,22950).
867 predicate(ord_intersect,3,'Intersection holds the common elements of Set1 and Set2.',22952,22956).
868 predicate(ord_intersection,2,'Intersection of a powerset.',22958,22963).
869 predicate(ord_intersection,3,'Intersection holds the common elements of Set1 and Set2.',22965,22967).
870 predicate(ord_intersection,4,'Intersection and difference between two ordered sets.',22969,22975).
871 predicate(ord_add_element,3,'Insert an element into the set.',22977,22980).
872 predicate(ord_del_element,3,'Delete an element from an ordered set.',22982,22985).
873 predicate(ord_selectchk,3,'Selectchk/3, specialised for ordered sets.',22987,22997).
874 predicate(ord_memberchk,2,'True if Element is a member of OrdSet, compared using ==.',22999,23010).
875 predicate(ord_subset,2,'Is true if all elements of Sub are in Super.',23012,23014).
876 predicate(ord_subtract,3,'Diff is the set holding all elements of InOSet that are not in NotInOSet.',23016,23019).
877 predicate(ord_union,2,'True if Union is the union of all elements in the superset SetOfSets.',23021,23028).
878 predicate(ord_union,3,'Union is the union of Set1 and Set2.',23030,23032).
879 predicate(ord_union,4,'True iff ord_union(Set1, Set2, Union) and ord_subtract(Set2, Set1, New).',23034,23037).
880 predicate(ord_symdiff,3,'Is true when Difference is the symmetric difference of Set1 and Set2.',23039,23057).
881 predicate(pairs_keys_values,3,'True if Keys holds the keys of Pairs and Values the values.',23074,23082).
882 predicate(pairs_values,2,'Remove the keys from a list of Key-Value pairs.',23084,23087).
883 predicate(pairs_keys,2,'Remove the values from a list of Key-Value pairs.',23089,23092).
884 predicate(group_pairs_by_key,2,'Group values with the same key.',23094,23110).
885 predicate(transpose_pairs,2,'Swap Key-Value to Value-Key.',23112,23115).
886 predicate(map_list_to_pairs,3,'Create a Key-Value list by mapping each element of List.',23117,23124).
887 predicate(phrase_from_file,2,'Process the content of File using the DCG rule Grammar.',23156,23180).
888 predicate(phrase_from_file,3,'As phrase_from_file/2, providing additional Options.',23182,23188).
889 predicate(phrase_from_stream,2,'Helper for phrase_from_file/3.',23190,23193).
890 predicate(syntax_error,3,'Throw the syntax error Error at the current location of the input.',23195,23201).
891 predicate(lazy_list_location,3,'Determine current (error) location in a lazy list.',23203,23218).
892 predicate(lazy_list_character_count,3,'True when CharCount is the current character count in the Lazy list.',23220,23231).
893 predicate(stream_to_lazy_list,2,'Create a lazy list representing the character codes in Stream.',23233,23245).
894 predicate(predicate_options,3,'Declare that the predicate PI processes options on Arg.',23387,23421).
895 predicate(assert_predicate_options,4,'As predicate_options(:PI, +Arg, +Options).',23423,23431).
896 predicate(current_predicate_option,3,'True when Arg of PI processes Option.',23433,23444).
897 predicate(check_predicate_option,3,'Verify predicate options at runtime.',23446,23461).
898 predicate(current_option_arg,2,'True when Arg of PI processes predicate options.',23463,23466).
899 predicate(current_predicate_options,3,'True when Options is the current active option declaration for PI on Arg.',23468,23476).
900 predicate(check_predicate_options,0,'Analyse loaded program for erroneous options.',23478,23494).
901 predicate(derive_predicate_options,0,'Derive new predicate option declarations.',23496,23505).
902 predicate(retractall_predicate_options,0,'Remove all dynamically (derived) predicate options.',23507,23509).
903 predicate(derived_predicate_options,3,'Derive option arguments using static analysis.',23511,23514).
904 predicate(derived_predicate_options,1,'Derive predicate option declarations for a module.',23516,23519).
905 predicate(pack_list_installed,0,'List currently installed packages.',23539,23545).
906 predicate(pack_info,1,'Print more detailed information about Pack.',23547,23549).
907 predicate(pack_search,1,'Query package server and installed packages and display results.',23551,23552).
908 predicate(pack_list,1,'Query package server and installed packages and display results.',23554,23586).
909 predicate(pack_install,1,'Install a package.',23588,23606).
910 predicate(pack_install,2,'Install package Name.',23608,23620).
911 predicate(pack_rebuild,1,'Rebuilt possible foreign components of Pack.',23622,23624).
912 predicate(pack_rebuild,0,'Rebuild foreign components of all packages.',23626,23628).
913 predicate(environment,2,'Hook to define the environment for building packs.',23630,23646).
914 predicate(pack_upgrade,1,'Try to upgrade the package Pack.',23648,23653).
915 predicate(pack_remove,1,'Remove the indicated package.',23655,23657).
916 predicate(pack_property,2,'True when Property is a property of Pack.',23659,23684).
917 predicate(xref_source,1,'Cross-reference analysis of source',23719,23724).
918 predicate(xref_current_source,1,'Examine cross-referenced sources',23726,23728).
919 predicate(xref_clean,1,'Remove analysis of source',23730,23732).
920 predicate(xref_defined,3,'Examine defined predicates',23734,23745).
921 predicate(xref_called,3,'Examine called predicates',23747,23749).
922 predicate(xref_exported,2,'Examine exported predicates',23751,23753).
923 predicate(xref_module,2,'Module defined by source',23755,23757).
924 predicate(xref_built_in,1,'Examine defined built-ins',23759,23764).
925 predicate(called_by,2,'Hook (prolog) Extend cross-referencer',23772,23785).
926 predicate(with_quasi_quotation_input,3,'',23865,23885).
927 predicate(phrase_from_quasi_quotation,2,'',23887,23893).
928 predicate(quasi_quotation_syntax,1,'',23895,23898).
929 predicate(quasi_quotation_syntax_error,1,'',23900,23905).
930 predicate(random,1,'Binds R to a new random float in the _open_ interval (0.0,1.0).',23919,23927).
931 predicate(random_between,3,'Binds R to a random integer in [L,U] (i.e., including both L and U).',23929,23932).
932 predicate(random,3,'Generate a random integer or float in a range.',23934,23935).
933 predicate(random,3,'Generate a random integer or float in a range.',23937,23947).
934 predicate(setrand,1,'Query/set the state of the random generator.',23949,23950).
935 predicate(getrand,1,'Query/set the state of the random generator.',23952,23971).
936 predicate(maybe,0,'Succeed/fail with equal probability (variant of maybe/1).',23973,23975).
937 predicate(maybe,1,'Succeed with probability P, fail with probability 1-P.',23977,23979).
938 predicate(maybe,2,'Succeed with probability K/N (variant of maybe/1).',23981,23983).
939 predicate(random_perm2,4,'Does X=A,Y=B or X=B,Y=A with equal probability.',23985,23987).
940 predicate(random_member,2,'X is a random member of List.',23989,23994).
941 predicate(random_select,3,'Randomly select or insert an element.',23996,23997).
942 predicate(random_select,3,'Randomly select or insert an element.',23999,24004).
943 predicate(randset,3,'S is a sorted list of K unique random integers in the range 1..N.',24006,24021).
944 predicate(randseq,3,'S is a list of K unique random integers in the range 1..N.',24023,24034).
945 predicate(random_permutation,2,'Permutation is a random permutation of List.',24036,24037).
946 predicate(random_permutation,2,'Permutation is a random permutation of List.',24039,24045).
947 predicate(read_line_to_codes,2,'Read line from a stream',24058,24066).
948 predicate(read_line_to_codes,3,'Read line from a stream',24068,24089).
949 predicate(read_stream_to_codes,2,'Read contents of stream',24091,24093).
950 predicate(read_stream_to_codes,3,'Read contents of stream',24095,24097).
951 predicate(read_file_to_codes,3,'Read contents of file',24099,24105).
952 predicate(read_file_to_terms,3,'Read contents of file to Prolog terms',24107,24113).
953 predicate(record,1,'Define named fields in a term',24207,24212).
954 predicate(registry_get_key,2,'Get principal value of key',24231,24234).
955 predicate(registry_get_key,3,'Get associated value of key',24236,24238).
956 predicate(registry_set_key,2,'Set principal value of key',24240,24243).
957 predicate(registry_set_key,3,'Set associated value of key',24245,24248).
958 predicate(registry_delete_key,1,'Remove a key',24250,24252).
959 predicate(shell_register_file_type,4,'Register a file-type',24254,24260).
960 predicate(shell_register_dde,6,'Register DDE action',24262,24269).
961 predicate(shell_register_prolog,1,'Register Prolog',24271,24290).
962 predicate(assignment,2,'Solve assignment problem',24315,24321).
963 predicate(constraint,3,'Add linear constraint to state',24323,24333).
964 predicate(constraint,4,'Add named linear constraint to state',24335,24338).
965 predicate(constraint_add,4,'Extend a named constraint',24340,24344).
966 predicate(gen_state,1,'Create empty linear program',24346,24349).
967 predicate(maximize,3,'Maximize objective function in to linear constraints',24351,24356).
968 predicate(minimize,3,'Minimize objective function in to linear constraints',24358,24360).
969 predicate(objective,2,'Fetch value of objective function',24362,24365).
970 predicate(shadow_price,3,'Fetch shadow price in solved state',24367,24371).
971 predicate(transportation,4,'Solve transportation problem',24373,24381).
972 predicate(variable_value,3,'Fetch value of variable in solved state',24383,24392).
973 predicate(thread_pool_create,3,'Create a pool of threads.',24566,24583).
974 predicate(thread_pool_destroy,1,'Destroy the thread pool named Name.',24585,24589).
975 predicate(current_thread_pool,1,'True if Name refers to a defined thread pool.',24591,24593).
976 predicate(thread_pool_property,2,'True if Property is a property of thread pool Name.',24595,24616).
977 predicate(thread_create_in_pool,4,'Create a thread in Pool.',24618,24632).
978 predicate(create_pool,1,'Hook to create a thread pool lazily.',24634,24648).
979 predicate(vertices_edges_to_ugraph,3,'Create unweighted graph',24679,24697).
980 predicate(vertices,2,'Find vertices in graph',24699,24705).
981 predicate(edges,2,'Find edges in graph',24707,24714).
982 predicate(add_vertices,3,'Add vertices to graph',24716,24724).
983 predicate(del_vertices,3,'Delete vertices from graph',24726,24738).
984 predicate(add_edges,3,'Add edges to graph',24740,24752).
985 predicate(del_edges,3,'Delete edges from graph',24754,24764).
986 predicate(transpose,2,'Invert the direction of all edges',24766,24777).
987 predicate(neighbours,3,'Find neighbors of vertice',24779,24788).
988 predicate(neighbors,3,'Find neighbors of vertice',24790,24792).
989 predicate(complement,2,'Inverse presense of edges',24794,24804).
990 predicate(compose,3,'',24806,24814).
991 predicate(ugraph_union,3,'Union of two graphs',24816,24823).
992 predicate(top_sort,2,'Sort graph topologically',24825,24835).
993 predicate(top_sort,3,'Sort graph topologically',24837,24840).
994 predicate(transitive_closure,2,'Create transitive closure of graph',24842,24850).
995 predicate(reachable,3,'Find all reachable vertices',24852,24860).
996 predicate(global_url,3,'Translate a possibly relative URL into an absolute one.',24883,24887).
997 predicate(is_absolute_url,1,'True if URL is an absolute URL.',24889,24892).
998 predicate(http_location,2,'Construct or analyze an HTTP location.',24894,24905).
999 predicate(parse_url,2,'Construct or analyse a URL.',24907,24964).
1000 predicate(parse_url,3,'Similar to parse_url/2 for relative URLs.',24966,24969).
1001 predicate(www_form_encode,2,'En/decode to/from application/x-www-form-encoded.',24971,24972).
1002 predicate(www_form_encode,2,'En/decode to/from application/x-www-form-encoded.',24974,24985).
1003 predicate(set_url_encoding,2,'Query and set the encoding for URLs.',24987,24994).
1004 predicate(url_iri,2,'Convert between a URL, encoding in US-ASCII and an IRI.',24996,24997).
1005 predicate(url_iri,2,'Convert between a URL, encoding in US-ASCII and an IRI.',24999,25003).
1006 predicate(parse_url_search,2,'Construct or analyze an HTTP search specification.',25005,25009).
1007 predicate(file_name_to_url,2,'Translate between a filename and a file:Sidiv{} URL.',25011,25012).
1008 predicate(file_name_to_url,2,'Translate between a filename and a file:Sidiv{} URL.',25014,25019).
1009 predicate(numbervars,1,'Number variables in Term using $VAR(N).',25045,25050).
1010 predicate(varnumbers,2,'Inverse of numbervars/1.',25052,25054).
1011 predicate(varnumbers,3,'Inverse of numbervars/3.',25056,25067).
1012 predicate(max_var_number,3,'True when Max is the max of Start and the highest numbered $VAR(N) term.',25069,25076).
1013 predicate(prolog_current_frame,1,'Reference to goal\'s environment stack',25091,25097).
1014 predicate(prolog_current_choice,1,'Reference to most recent choice point',25099,25103).
1015 predicate(prolog_frame_attribute,3,'Obtain information on a goal environment',25105,25188).
1016 predicate(prolog_choice_attribute,3,'Examine the choice point stack',25190,25212).
1017 predicate(deterministic,1,'Test deterministicy of current clause',25214,25221).
1018 predicate(prolog_cut_to,1,'Realise global cuts',25226,25232).
1019 predicate(prolog_trace_interception,4,'library(user) Intercept the Prolog tracer',25325,25434).
1020 predicate(prolog_skip_frame,1,'Perform `skip\' on a frame',25436,25443).
1021 predicate(prolog_skip_level,2,'Indicate deepest recursion to trace',25445,25452).
1022 predicate(break_hook,6,'',25464,25541).
1023 predicate(prolog_exception_hook,4,'Rewrite exceptions',25551,25594).
1024 predicate(exception,3,'Hook (user) Handle runtime exceptions',25609,25635).
1025 predicate(prolog_list_goal,1,'Hook (user) Intercept tracer \'L\' command',25647,25653).
1026 predicate(debug_control_hook,1,'Hook (prolog) Extend spy/1, etc.',25655,25681).
1027 predicate(help_hook,1,'Hook (prolog) User-hook in the help-system',25683,25698).
1028 predicate(prolog_load_file,2,'Hook (user) Program load_files/2',25707,25718).
1029 predicate(comment_hook,3,'Hook (prolog) handle comments in sources',25720,25739).
1030 predicate(rl_read_init_file,1,'Read readline(3) init file',25749,25753).
1031 predicate(rl_add_history,1,'Add line to readline(3) history',25755,25758).
1032 predicate(rl_write_history,1,'Write readline(3) history',25760,25763).
1033 predicate(rl_read_history,1,'Read readline(3) history',25765,25767).
1034 predicate(expects_dialect,1,'For which Prolog dialect is this code written?',25810,25836).
1035 predicate(exists_source,1,'Check existence of a Prolog source',25838,25842).
1036 predicate(source_exports,2,'Check whether source exports a predicate',25844,25847).
1037 predicate(eval_license,0,'Evaluate licenses of loaded modules',26347,26353).
1038 predicate(license,2,'Define license for named module',26355,26407).
1039 predicate(license,1,'Define license for current file',26409,26412).
10401040
10411041
10421042 % Predicate section/4
11281128 section([3,7],'Cross-referencer',3569,3650).
11291129 section([3,8],'Accessing the IDE from your program',3652,3689).
11301130 section([3,9],'Summary of the IDE',3691,3727).
1131 section([4],'BUILT-IN PREDICATES',3729,12309).
1131 section([4],'BUILT-IN PREDICATES',3729,12319).
11321132 section([4,1],'Notation of Predicate Descriptions',3732,3775).
11331133 section([4,2],'Character representation',3777,3832).
11341134 section([4,3],'Loading Prolog source files',3834,4848).
11621162 section([4,13,2],'Indexing databases',6428,6488).
11631163 section([4,14],'Declaring predicate properties',6490,6549).
11641164 section([4,15],'Examining the program',6551,6853).
1165 section([4,16],'Input and output',6855,7564).
1165 section([4,16],'Input and output',6855,7574).
11661166 section([4,16,1],'Predefined stream aliases',6869,6905).
1167 section([4,16,2],'ISO Input and Output Streams',6907,7362).
1168 section([4,16,3],'Edinburgh-style I/O',7364,7483).
1169 section([],'Compatibility notes',7412,29102).
1170 section([4,16,4],'Switching between Edinburgh and ISO I/O',7485,7509).
1171 section([4,16,5],'Write onto atoms, code-lists, etc.',7511,7564).
1172 section([4,17],'Status of streams',7566,7637).
1173 section([4,18],'Primitive character I/O',7639,7878).
1174 section([4,19],'Term reading and writing',7880,8319).
1175 section([4,20],'Analysing and Constructing Terms',8321,8512).
1176 section([4,20,1],'Non-logical operations on terms',8434,8512).
1177 section([4,21],'Analysing and Constructing Atoms',8514,8701).
1178 section([4,22],'Localization (locale) support',8703,8788).
1179 section([4,23],'Character properties',8790,8977).
1180 section([4,23,1],'Case conversion',8922,8939).
1181 section([4,23,2],'White space normalization',8941,8949).
1182 section([4,23,3],'Language-specific comparison',8951,8977).
1183 section([4,24],'Representing text in strings',8979,9066).
1184 section([4,25],'Operators',9068,9174).
1185 section([4,26],'Character Conversion',9176,9193).
1186 section([4,27],'Arithmetic',9195,9835).
1187 section([4,27,1],'Special purpose integer arithmetic',9205,9233).
1188 section([4,27,2],'General purpose arithmetic',9235,9835).
1189 section([4,27,2,1],'Arithmetic types',9281,9333).
1190 section([4,27,2,2],'Rational number examples',9335,9366).
1191 section([4,27,2,3],'Arithmetic Functions',9368,9835).
1192 section([4,28],'Misc arithmetic support predicates',9837,9885).
1193 section([4,29],'Built-in list operations',9887,9981).
1194 section([4,30],'Finding all Solutions to a Goal',9983,10042).
1195 section([4,31],'Forall',10044,10088).
1196 section([4,32],'Formatted Write',10090,10415).
1197 section([4,32,1],'Writef',10100,10180).
1198 section([4,32,2],'Format',10182,10376).
1199 section([4,32,3],'Programming Format',10378,10415).
1200 section([4,33],'Terminal Control',10417,10463).
1201 section([4,34],'Operating System Interaction',10465,11125).
1202 section([4,34,1],'Windows-specific Operating System Interaction',10589,10699).
1203 section([4,34,2],'Dealing with time and date',10701,11063).
1204 section([4,34,2,1],'Time and date data structures',10740,10768).
1205 section([4,34,2,2],'Time and date predicates',10770,11063).
1206 section([4,34,3],'Controlling the swipl-win.exe console window',11065,11125).
1207 section([4,35],'File System Interaction',11127,11403).
1208 section([4,36],'User Top-level Manipulation',11405,11499).
1209 section([4,37],'Creating a Protocol of the User Interaction',11501,11526).
1210 section([4,38],'Debugging and Tracing Programs',11528,11742).
1211 section([4,39],'Obtaining Runtime Statistics',11744,11848).
1212 section([4,40],'Execution profiling',11850,12025).
1213 section([4,40,1],'Profiling predicates',11861,11927).
1214 section([4,40,2],'Visualizing profiling data',11929,11976).
1215 section([4,40,3],'Information gathering',11978,12025).
1216 section([4,40,3,1],'Profiling in the Windows Implementation',12010,12025).
1217 section([4,41],'Memory Management',12027,12113).
1218 section([4,42],'Windows DDE interface',12115,12249).
1219 section([4,42,1],'DDE client interface',12131,12188).
1220 section([4,42,2],'DDE server mode',12190,12249).
1221 section([4,43],'Miscellaneous',12251,12309).
1222 section([5],'MODULES',12311,13130).
1223 section([5,1],'Why Use Modules?',12338,12358).
1224 section([5,2],'Defining a Module',12360,12414).
1225 section([5,3],'Importing Predicates into a Module',12416,12502).
1226 section([5,4],'Defining a meta-predicate',12504,12632).
1227 section([5,5],'Overruling Module Boundaries',12634,12691).
1228 section([5,5,1],'Explicit manipulation of the calling context',12666,12691).
1229 section([5,6],'Interacting with modules from the top level',12693,12721).
1230 section([5,7],'Composing modules from other modules',12723,12754).
1231 section([5,8],'Operators and modules',12756,12786).
1232 section([5,9],'Dynamic importing using import modules',12788,12836).
1233 section([5,10],'Reserved Modules and using the `user\' module',12838,12853).
1234 section([5,11],'An alternative import/export interface',12855,12880).
1235 section([5,12],'Dynamic Modules',12882,12915).
1236 section([5,13],'Transparent predicates: definition and context module',12917,13008).
1237 section([5,14],'Module properties',13010,13073).
1238 section([5,15],'Compatibility of the Module System',13075,13130).
1239 section([6],'SPECIAL VARIABLES AND COROUTINING',13132,13580).
1240 section([6,1],'Attributed variables',13179,13386).
1241 section([6,1,1],'Attribute manipulation predicates',13263,13295).
1242 section([6,1,2],'Attributed variable hooks',13297,13331).
1243 section([6,1,3],'Operations on terms with attributed variables',13333,13362).
1244 section([6,1,4],'Special purpose predicates for attributes',13364,13386).
1245 section([6,2],'Coroutining',13388,13463).
1246 section([6,3],'Global variables',13465,13580).
1247 section([6,3,1],'Compatibility of SWI-Prolog Global Variables',13567,13580).
1248 section([7],'CHR: CONSTRAINT HANDLING RULES',13582,14459).
1249 section([7,1],'Introduction',13604,13632).
1250 section([7,2],'Syntax and Semantics',13634,13811).
1251 section([7,2,1],'Syntax of CHR rules',13637,13689).
1252 section([7,2,2],'Semantics',13691,13811).
1253 section([7,3],'CHR in SWI-Prolog Programs',13813,14059).
1254 section([7,3,1],'Embedding in Prolog Programs',13816,13821).
1255 section([7,3,2],'Constraint declaration',13823,14032).
1256 section([7,3,3],'Compilation',14034,14059).
1257 section([7,4],'Debugging',14061,14202).
1258 section([7,4,1],'Ports',14071,14112).
1259 section([7,4,2],'Tracing',14114,14161).
1260 section([7,4,3],'CHR Debugging Predicates',14163,14202).
1261 section([7,5],'Examples',14204,14263).
1262 section([7,6],'Backwards Compatibility',14265,14343).
1263 section([7,6,1],'The Old SICStus CHR implemenation',14268,14311).
1264 section([7,6,2],'The Old ECLiPSe CHR implemenation',14313,14343).
1265 section([7,7],'Programming Tips and Tricks',14345,14388).
1266 section([7,8],'Compiler Errors and Warnings',14390,14459).
1267 section([7,8,1],'CHR Compiler Errors',14396,14459).
1268 section([8],'MULTITHREADED APPLICATIONS',14461,15476).
1269 section([8,1],'Creating and destroying Prolog threads',14497,14678).
1270 section([8,2],'Monitoring threads',14680,14750).
1271 section([8,3],'Thread communication',14752,15025).
1272 section([8,3,1],'Message queues',14755,14943).
1273 section([8,3,2],'Signalling threads',14945,14976).
1274 section([8,3,3],'Threads and dynamic predicates',14978,15025).
1275 section([8,4],'Thread synchronisation',15027,15142).
1276 section([8,5],'Thread support library(threadutil)',15144,15249).
1277 section([8,5,1],'Debugging threads',15170,15234).
1278 section([8,5,2],'Profiling threads',15236,15249).
1279 section([8,6],'Multithreaded mixed C and Prolog applications',15251,15420).
1280 section([8,6,1],'A Prolog thread for each native thread (one-to-one)',15273,15353).
1281 section([8,6,2],'Pooling Prolog engines (many-to-many)',15355,15420).
1282 section([8,7],'Multithreading and the XPCE graphics system',15422,15476).
1283 section([9],'FOREIGN LANGUAGE INTERFACE',15478,19506).
1284 section([9,1],'Overview of the Interface',15497,15522).
1285 section([9,2],'Linking Foreign Modules',15524,15791).
1286 section([9,2,1],'What linking is provided?',15535,15543).
1287 section([9,2,2],'What kind of loading should I be using?',15545,15561).
1288 section([9,2,3],'library(shlib): Utility library for loading foreign objects',15563,15686).
1289 section([9,2,4],'Low-level operations on shared libraries',15688,15729).
1290 section([9,2,5],'Static Linking',15731,15791).
1291 section([9,3],'Interface Data Types',15793,15959).
1292 section([9,3,1],'Type term_t: a reference to a Prolog term',15796,15910).
1293 section([9,3,1,1],'Interaction with the garbage collector and stack-shifter',15899,15910).
1294 section([9,3,2],'Other foreign interface types',15912,15959).
1295 section([9,4],'The Foreign Include File',15961,19037).
1296 section([9,4,1],'Argument Passing and Control',15964,16103).
1297 section([9,4,1,1],'Non-deterministic Foreign Predicates',15983,16103).
1298 section([9,4,2],'Atoms and functors',16105,16191).
1299 section([9,4,2,1],'Atoms and atom garbage collection',16157,16191).
1300 section([9,4,3],'Analysing Terms via the Foreign Interface',16193,16748).
1301 section([9,4,3,1],'Testing the type of a term',16206,16314).
1302 section([9,4,3,2],'Reading data from a term',16316,16507).
1303 section([9,4,3,3],'Exchanging text using length and string',16509,16573).
1304 section([9,4,3,4],'Wide-character versions',16575,16622).
1305 section([9,4,3,5],'Reading a list',16624,16694).
1306 section([9,4,3,6],'An example: defining write/1 in C',16696,16748).
1307 section([9,4,4],'Constructing Terms',16750,16890).
1308 section([9,4,5],'Unifying data',16892,17282).
1309 section([9,4,6],'Convenient functions to generate Prolog exceptions',17284,17435).
1310 section([9,4,7],'BLOBS: Using atoms to store arbitrary binary data',17437,17586).
1311 section([9,4,7,1],'Defining a BLOB type',17459,17546).
1312 section([9,4,7,2],'Accessing blobs',17548,17586).
1313 section([9,4,8],'Exchanging GMP numbers',17588,17672).
1314 section([9,4,9],'Calling Prolog from C',17674,17823).
1315 section([9,4,9,1],'Predicate references',17687,17714).
1316 section([9,4,9,2],'Initiating a query from C',17716,17823).
1317 section([9,4,10],'Discarding Data',17825,17885).
1318 section([9,4,11],'Foreign Code and Modules',17887,17926).
1319 section([9,4,12],'Prolog exceptions in foreign code',17928,18055).
1320 section([9,4,13],'Catching Signals (Software Interrupts)',18057,18130).
1321 section([9,4,14],'Miscellaneous',18132,18292).
1322 section([9,4,14,1],'Term Comparison',18135,18146).
1323 section([9,4,14,2],'Recorded database',18148,18241).
1324 section([9,4,14,3],'Getting file names',18243,18292).
1325 section([9,4,15],'Errors and warnings',18294,18307).
1326 section([9,4,16],'Environment Control from Foreign Code',18309,18390).
1327 section([9,4,17],'Querying Prolog',18392,18429).
1328 section([9,4,18],'Registering Foreign Predicates',18431,18555).
1329 section([9,4,19],'Foreign Code Hooks',18557,18642).
1330 section([9,4,20],'Storing foreign data',18644,18836).
1331 section([9,4,20,1],'Examples for storing foreign data',18714,18836).
1332 section([9,4,21],'Embedding SWI-Prolog in other applications',18838,19037).
1333 section([9,4,21,1],'Threading, Signals and embedded Prolog',18998,19037).
1334 section([9,5],'Linking embedded applications using swipl-ld',19039,19258).
1335 section([9,5,1],'A simple example',19172,19258).
1336 section([9,6],'The Prolog `home\' directory',19260,19294).
1337 section([9,7],'Example of Using the Foreign Interface',19296,19355).
1338 section([9,8],'Notes on Using Foreign Code',19357,19506).
1339 section([9,8,1],'Memory Allocation',19360,19422).
1340 section([9,8,1,1],'Boehm-GC support',19392,19422).
1341 section([9,8,2],'Compatibility between Prolog versions',19424,19436).
1342 section([9,8,3],'Debugging and profiling foreign code (valgrind)',19438,19458).
1343 section([9,8,4],'Name Conflicts in C modules',19460,19477).
1344 section([9,8,5],'Compatibility of the Foreign Interface',19479,19506).
1345 section([10],'GENERATING RUNTIME APPLICATIONS',19508,19914).
1346 section([10,1],'Limitations of qsave_program',19659,19675).
1347 section([10,2],'Runtimes and Foreign Code',19677,19743).
1348 section([10,3],'Using program resources',19745,19867).
1349 section([10,3,1],'Resource manipulation predicates',19778,19836).
1350 section([10,3,2],'The swipl-rc program',19838,19867).
1351 section([10,4],'Finding Application files',19869,19914).
1352 section([10,4,1],'Specifying a file search path from the command line',19901,19914).
1353 section([11],'THE SWI-PROLOG LIBRARY',19916,25060).
1354 section([11,1],'library(aggregate): Aggregation operators on backtrackable',19940,20101).
1355 section([11,2],'library(apply): Apply predicates on a list',20103,20201).
1356 section([11,3],'library(assoc): Association lists',20203,20288).
1357 section([11,4],'library(broadcast): Broadcast and receive event notifications',20290,20404).
1358 section([11,5],'library(charsio): I/O on Lists of Character Codes',20406,20493).
1359 section([11,6],'library(check): Elementary completeness checks',20495,20551).
1360 section([11,7],'library(clpfd): Constraint Logic Programming over Finite Domains',20553,21505).
1361 section([11,7,0,1],'Introduction',20558,20586).
1362 section([11,7,0,2],'Arithmetic constraints',20588,20621).
1363 section([11,7,0,3],'Reification',20623,20640).
1364 section([11,7,0,4],'Examples',20642,20685).
1365 section([11,7,0,5],'Search',20687,20747).
1366 section([11,7,0,6],'Declarative integer arithmetic',20749,20784).
1367 section([11,7,0,7],'Advanced topics',20786,21505).
1368 section([11,8],'library(clpqr): Constraint Logic Programming over Rationals and',21507,21729).
1369 section([11,8,1],'Solver predicates',21541,21611).
1370 section([11,8,2],'Syntax of the predicate arguments',21613,21652).
1371 section([11,8,3],'Use of unification',21654,21671).
1372 section([11,8,4],'Non-linear constraints',21673,21698).
1373 section([11,8,5],'Status and known problems',21700,21729).
1374 section([11,9],'library(csv): Process CSV (Comma-Separated Values) data',21731,21851).
1375 section([11,10],'library(debug): Print debug messages and test assertions',21853,21965).
1376 section([11,11],'library(gensym): Generate unique identifiers',21967,21998).
1377 section([11,12],'library(lists): List Manipulation',22000,22312).
1378 section([11,13],'library(nb_set): Non-backtrackable set',22314,22372).
1379 section([11,14],'library(www_browser): Activating your Web-browser',22374,22400).
1380 section([11,15],'library(option): Option list processing',22402,22510).
1381 section([11,16],'library(optparse): command line parsing',22512,22875).
1382 section([11,16,1],'Notes and tips',22773,22875).
1383 section([11,17],'library(ordsets): Ordered set manipulation',22877,23043).
1384 section([11,18],'library(pairs): Operations on key-value lists',23045,23110).
1385 section([11,19],'library(pio): Pure I/O',23112,23230).
1386 section([11,19,1],'library(pure_input): Pure Input from files',23120,23230).
1387 section([11,20],'library(predicate_options): Declare option-processing of predi-',23232,23504).
1388 section([11,20,1],'The strength and weakness of predicate options',23238,23288).
1389 section([11,20,2],'Options as arguments or environment?',23290,23322).
1390 section([11,20,3],'Improving on the current situation',23324,23504).
1391 section([11,20,3,1],'Options as types',23334,23361).
1392 section([11,20,3,2],'Reflective access to options',23363,23504).
1393 section([11,21],'library(prolog_pack): A package manager for Prolog',23506,23669).
1394 section([11,22],'library(prolog_xref): Cross-reference data collection library',23671,23770).
1395 section([11,22,1],'Extending the library',23751,23770).
1396 section([11,23],'library(quasi_quotations): Define Quasi Quotation syntax',23772,23890).
1397 section([11,24],'library(random): Random numbers',23892,24030).
1398 section([11,25],'library(readutil): Reading lines, streams and files',24032,24098).
1399 section([11,26],'library(record): Access named fields in a term',24100,24197).
1400 section([11,27],'library(registry): Manipulating the Windows registry',24199,24275).
1401 section([11,28],'library(simplex): Solve linear programming problems',24277,24513).
1402 section([11,28,1],'Example 1',24379,24411).
1403 section([11,28,2],'Example 2',24413,24471).
1404 section([11,28,3],'Example 3',24473,24513).
1405 section([11,29],'library(thread_pool): Resource bounded thread management',24515,24632).
1406 section([11,30],'library(ugraphs): Unweighted Graphs',24634,24844).
1407 section([11,31],'library(url): Analysing and constructing URL',24846,25003).
1408 section([11,32],'library(varnumbers): Utilities for numbered terms',25005,25060).
1409 section([12],'HACKERS CORNER',25062,25751).
1410 section([12,1],'Examining the Environment Stack',25072,25205).
1411 section([12,2],'Ancestral cuts',25207,25216).
1412 section([12,3],'Syntax extensions',25218,25304).
1413 section([12,3,1],'Block operators',25265,25304).
1414 section([12,4],'Intercepting the Tracer',25306,25436).
1415 section([12,5],'Breakpoint and watchpoint handling',25438,25525).
1416 section([12,6],'Adding context to errors: prolog_exception_hook',25527,25578).
1417 section([12,7],'Hooks using the exception predicate',25580,25619).
1418 section([12,8],'Hooks for integrating libraries',25621,25682).
1419 section([12,9],'Hooks for loading files',25684,25723).
1420 section([12,10],'Readline Interaction',25725,25751).
1421 section([13],'COMPATIBILITY WITH OTHER PROLOG DIALECTS',25753,25948).
1422 section([13,1],'Some considerations for writing portable code',25833,25948).
1423 section([14],'GLOSSARY OF TERMS',25950,26242).
1424 section([15],'SWI-PROLOG LICENSE CONDITIONS AND TOOLS',26244,26437).
1425 section([15,1],'The SWI-Prolog kernel and foreign libraries',26274,26306).
1426 section([15,1,1],'The SWI-Prolog Prolog libraries',26289,26306).
1427 section([15,2],'Contributing to the SWI-Prolog project',26308,26318).
1428 section([15,3],'Software support to keep track of license conditions',26320,26401).
1429 section([15,4],'License conditions inherited from used code',26403,26437).
1430 section([15,4,1],'Cryptographic routines',26406,26437).
1431 section([16],'SUMMARY',26439,27799).
1432 section([16,1],'Predicates',26442,27189).
1433 section([16,2],'Library predicates',27191,27653).
1434 section([16,2,1],'library(aggregate)',27194,27203).
1435 section([16,2,2],'library(apply)',27205,27225).
1436 section([16,2,3],'library(assoc)',27227,27244).
1437 section([16,2,4],'library(broadcast)',27246,27256).
1438 section([16,2,5],'library(charsio)',27258,27275).
1439 section([16,2,6],'library(check)',27277,27283).
1440 section([16,2,7],'library(csv)',27285,27295).
1441 section([16,2,8],'library(lists)',27297,27335).
1442 section([16,2,9],'library(debug)',27337,27350).
1443 section([16,2,10],'library(option)',27352,27360).
1444 section([16,2,11],'library(optparse)',27362,27368).
1445 section([16,2,12],'library(ordsets)',27370,27394).
1446 section([16,2,13],'library(predicate_options)',27396,27410).
1447 section([16,2,14],'library(prologpack)',27412,27427).
1448 section([16,2,15],'library(prologxref)',27429,27441).
1449 section([16,2,16],'library(pairs)',27443,27451).
1450 section([16,2,17],'library(pio)',27453,27465).
1451 section([16,2,17,1],'library(pure_input)',27456,27465).
1452 section([16,2,18],'library(random)',27467,27484).
1453 section([16,2,19],'library(readutil)',27486,27494).
1454 section([16,2,20],'library(record)',27496,27499).
1455 section([16,2,21],'library(registry)',27501,27513).
1456 section([16,2,22],'library(ugraphs)',27515,27536).
1457 section([16,2,23],'library(url)',27538,27551).
1458 section([16,2,24],'library(www_browser)',27553,27556).
1459 section([16,2,25],'library(clp/clpfd)',27558,27605).
1460 section([16,2,26],'library(clpqr)',27607,27619).
1461 section([16,2,27],'library(clp/simplex)',27621,27635).
1462 section([16,2,28],'library(thread_pool)',27637,27645).
1463 section([16,2,29],'library(varnumbers)',27647,27653).
1464 section([16,3],'Arithmetic Functions',27655,27732).
1465 section([16,4],'Operators',27734,27799).
1466 section([17],'Bibliography',27801,29102).
1467 section([],'Index',27900,29102).
1167 section([4,16,2],'ISO Input and Output Streams',6907,7372).
1168 section([4,16,3],'Edinburgh-style I/O',7374,7493).
1169 section([],'Compatibility notes',7422,29118).
1170 section([4,16,4],'Switching between Edinburgh and ISO I/O',7495,7519).
1171 section([4,16,5],'Write onto atoms, code-lists, etc.',7521,7574).
1172 section([4,17],'Status of streams',7576,7647).
1173 section([4,18],'Primitive character I/O',7649,7888).
1174 section([4,19],'Term reading and writing',7890,8329).
1175 section([4,20],'Analysing and Constructing Terms',8331,8522).
1176 section([4,20,1],'Non-logical operations on terms',8444,8522).
1177 section([4,21],'Analysing and Constructing Atoms',8524,8711).
1178 section([4,22],'Localization (locale) support',8713,8798).
1179 section([4,23],'Character properties',8800,8987).
1180 section([4,23,1],'Case conversion',8932,8949).
1181 section([4,23,2],'White space normalization',8951,8959).
1182 section([4,23,3],'Language-specific comparison',8961,8987).
1183 section([4,24],'Representing text in strings',8989,9076).
1184 section([4,25],'Operators',9078,9184).
1185 section([4,26],'Character Conversion',9186,9203).
1186 section([4,27],'Arithmetic',9205,9845).
1187 section([4,27,1],'Special purpose integer arithmetic',9215,9243).
1188 section([4,27,2],'General purpose arithmetic',9245,9845).
1189 section([4,27,2,1],'Arithmetic types',9291,9343).
1190 section([4,27,2,2],'Rational number examples',9345,9376).
1191 section([4,27,2,3],'Arithmetic Functions',9378,9845).
1192 section([4,28],'Misc arithmetic support predicates',9847,9895).
1193 section([4,29],'Built-in list operations',9897,9991).
1194 section([4,30],'Finding all Solutions to a Goal',9993,10052).
1195 section([4,31],'Forall',10054,10098).
1196 section([4,32],'Formatted Write',10100,10425).
1197 section([4,32,1],'Writef',10110,10190).
1198 section([4,32,2],'Format',10192,10386).
1199 section([4,32,3],'Programming Format',10388,10425).
1200 section([4,33],'Terminal Control',10427,10473).
1201 section([4,34],'Operating System Interaction',10475,11135).
1202 section([4,34,1],'Windows-specific Operating System Interaction',10599,10709).
1203 section([4,34,2],'Dealing with time and date',10711,11073).
1204 section([4,34,2,1],'Time and date data structures',10750,10778).
1205 section([4,34,2,2],'Time and date predicates',10780,11073).
1206 section([4,34,3],'Controlling the swipl-win.exe console window',11075,11135).
1207 section([4,35],'File System Interaction',11137,11413).
1208 section([4,36],'User Top-level Manipulation',11415,11509).
1209 section([4,37],'Creating a Protocol of the User Interaction',11511,11536).
1210 section([4,38],'Debugging and Tracing Programs',11538,11752).
1211 section([4,39],'Obtaining Runtime Statistics',11754,11858).
1212 section([4,40],'Execution profiling',11860,12035).
1213 section([4,40,1],'Profiling predicates',11871,11937).
1214 section([4,40,2],'Visualizing profiling data',11939,11986).
1215 section([4,40,3],'Information gathering',11988,12035).
1216 section([4,40,3,1],'Profiling in the Windows Implementation',12020,12035).
1217 section([4,41],'Memory Management',12037,12123).
1218 section([4,42],'Windows DDE interface',12125,12259).
1219 section([4,42,1],'DDE client interface',12141,12198).
1220 section([4,42,2],'DDE server mode',12200,12259).
1221 section([4,43],'Miscellaneous',12261,12319).
1222 section([5],'MODULES',12321,13140).
1223 section([5,1],'Why Use Modules?',12348,12368).
1224 section([5,2],'Defining a Module',12370,12424).
1225 section([5,3],'Importing Predicates into a Module',12426,12512).
1226 section([5,4],'Defining a meta-predicate',12514,12642).
1227 section([5,5],'Overruling Module Boundaries',12644,12701).
1228 section([5,5,1],'Explicit manipulation of the calling context',12676,12701).
1229 section([5,6],'Interacting with modules from the top level',12703,12731).
1230 section([5,7],'Composing modules from other modules',12733,12764).
1231 section([5,8],'Operators and modules',12766,12796).
1232 section([5,9],'Dynamic importing using import modules',12798,12846).
1233 section([5,10],'Reserved Modules and using the `user\' module',12848,12863).
1234 section([5,11],'An alternative import/export interface',12865,12890).
1235 section([5,12],'Dynamic Modules',12892,12925).
1236 section([5,13],'Transparent predicates: definition and context module',12927,13018).
1237 section([5,14],'Module properties',13020,13083).
1238 section([5,15],'Compatibility of the Module System',13085,13140).
1239 section([6],'SPECIAL VARIABLES AND COROUTINING',13142,13590).
1240 section([6,1],'Attributed variables',13189,13396).
1241 section([6,1,1],'Attribute manipulation predicates',13273,13305).
1242 section([6,1,2],'Attributed variable hooks',13307,13341).
1243 section([6,1,3],'Operations on terms with attributed variables',13343,13372).
1244 section([6,1,4],'Special purpose predicates for attributes',13374,13396).
1245 section([6,2],'Coroutining',13398,13473).
1246 section([6,3],'Global variables',13475,13590).
1247 section([6,3,1],'Compatibility of SWI-Prolog Global Variables',13577,13590).
1248 section([7],'CHR: CONSTRAINT HANDLING RULES',13592,14469).
1249 section([7,1],'Introduction',13614,13642).
1250 section([7,2],'Syntax and Semantics',13644,13821).
1251 section([7,2,1],'Syntax of CHR rules',13647,13699).
1252 section([7,2,2],'Semantics',13701,13821).
1253 section([7,3],'CHR in SWI-Prolog Programs',13823,14069).
1254 section([7,3,1],'Embedding in Prolog Programs',13826,13831).
1255 section([7,3,2],'Constraint declaration',13833,14042).
1256 section([7,3,3],'Compilation',14044,14069).
1257 section([7,4],'Debugging',14071,14212).
1258 section([7,4,1],'Ports',14081,14122).
1259 section([7,4,2],'Tracing',14124,14171).
1260 section([7,4,3],'CHR Debugging Predicates',14173,14212).
1261 section([7,5],'Examples',14214,14273).
1262 section([7,6],'Backwards Compatibility',14275,14353).
1263 section([7,6,1],'The Old SICStus CHR implemenation',14278,14321).
1264 section([7,6,2],'The Old ECLiPSe CHR implemenation',14323,14353).
1265 section([7,7],'Programming Tips and Tricks',14355,14398).
1266 section([7,8],'Compiler Errors and Warnings',14400,14469).
1267 section([7,8,1],'CHR Compiler Errors',14406,14469).
1268 section([8],'MULTITHREADED APPLICATIONS',14471,15486).
1269 section([8,1],'Creating and destroying Prolog threads',14507,14688).
1270 section([8,2],'Monitoring threads',14690,14760).
1271 section([8,3],'Thread communication',14762,15035).
1272 section([8,3,1],'Message queues',14765,14953).
1273 section([8,3,2],'Signalling threads',14955,14986).
1274 section([8,3,3],'Threads and dynamic predicates',14988,15035).
1275 section([8,4],'Thread synchronisation',15037,15152).
1276 section([8,5],'Thread support library(threadutil)',15154,15259).
1277 section([8,5,1],'Debugging threads',15180,15244).
1278 section([8,5,2],'Profiling threads',15246,15259).
1279 section([8,6],'Multithreaded mixed C and Prolog applications',15261,15430).
1280 section([8,6,1],'A Prolog thread for each native thread (one-to-one)',15283,15363).
1281 section([8,6,2],'Pooling Prolog engines (many-to-many)',15365,15430).
1282 section([8,7],'Multithreading and the XPCE graphics system',15432,15486).
1283 section([9],'FOREIGN LANGUAGE INTERFACE',15488,19516).
1284 section([9,1],'Overview of the Interface',15507,15532).
1285 section([9,2],'Linking Foreign Modules',15534,15801).
1286 section([9,2,1],'What linking is provided?',15545,15553).
1287 section([9,2,2],'What kind of loading should I be using?',15555,15571).
1288 section([9,2,3],'library(shlib): Utility library for loading foreign objects',15573,15696).
1289 section([9,2,4],'Low-level operations on shared libraries',15698,15739).
1290 section([9,2,5],'Static Linking',15741,15801).
1291 section([9,3],'Interface Data Types',15803,15969).
1292 section([9,3,1],'Type term_t: a reference to a Prolog term',15806,15920).
1293 section([9,3,1,1],'Interaction with the garbage collector and stack-shifter',15909,15920).
1294 section([9,3,2],'Other foreign interface types',15922,15969).
1295 section([9,4],'The Foreign Include File',15971,19047).
1296 section([9,4,1],'Argument Passing and Control',15974,16113).
1297 section([9,4,1,1],'Non-deterministic Foreign Predicates',15993,16113).
1298 section([9,4,2],'Atoms and functors',16115,16201).
1299 section([9,4,2,1],'Atoms and atom garbage collection',16167,16201).
1300 section([9,4,3],'Analysing Terms via the Foreign Interface',16203,16758).
1301 section([9,4,3,1],'Testing the type of a term',16216,16324).
1302 section([9,4,3,2],'Reading data from a term',16326,16517).
1303 section([9,4,3,3],'Exchanging text using length and string',16519,16583).
1304 section([9,4,3,4],'Wide-character versions',16585,16632).
1305 section([9,4,3,5],'Reading a list',16634,16704).
1306 section([9,4,3,6],'An example: defining write/1 in C',16706,16758).
1307 section([9,4,4],'Constructing Terms',16760,16900).
1308 section([9,4,5],'Unifying data',16902,17292).
1309 section([9,4,6],'Convenient functions to generate Prolog exceptions',17294,17445).
1310 section([9,4,7],'BLOBS: Using atoms to store arbitrary binary data',17447,17596).
1311 section([9,4,7,1],'Defining a BLOB type',17469,17556).
1312 section([9,4,7,2],'Accessing blobs',17558,17596).
1313 section([9,4,8],'Exchanging GMP numbers',17598,17682).
1314 section([9,4,9],'Calling Prolog from C',17684,17833).
1315 section([9,4,9,1],'Predicate references',17697,17724).
1316 section([9,4,9,2],'Initiating a query from C',17726,17833).
1317 section([9,4,10],'Discarding Data',17835,17895).
1318 section([9,4,11],'Foreign Code and Modules',17897,17936).
1319 section([9,4,12],'Prolog exceptions in foreign code',17938,18065).
1320 section([9,4,13],'Catching Signals (Software Interrupts)',18067,18140).
1321 section([9,4,14],'Miscellaneous',18142,18302).
1322 section([9,4,14,1],'Term Comparison',18145,18156).
1323 section([9,4,14,2],'Recorded database',18158,18251).
1324 section([9,4,14,3],'Getting file names',18253,18302).
1325 section([9,4,15],'Errors and warnings',18304,18317).
1326 section([9,4,16],'Environment Control from Foreign Code',18319,18400).
1327 section([9,4,17],'Querying Prolog',18402,18439).
1328 section([9,4,18],'Registering Foreign Predicates',18441,18565).
1329 section([9,4,19],'Foreign Code Hooks',18567,18652).
1330 section([9,4,20],'Storing foreign data',18654,18846).
1331 section([9,4,20,1],'Examples for storing foreign data',18724,18846).
1332 section([9,4,21],'Embedding SWI-Prolog in other applications',18848,19047).
1333 section([9,4,21,1],'Threading, Signals and embedded Prolog',19008,19047).
1334 section([9,5],'Linking embedded applications using swipl-ld',19049,19268).
1335 section([9,5,1],'A simple example',19182,19268).
1336 section([9,6],'The Prolog `home\' directory',19270,19304).
1337 section([9,7],'Example of Using the Foreign Interface',19306,19365).
1338 section([9,8],'Notes on Using Foreign Code',19367,19516).
1339 section([9,8,1],'Memory Allocation',19370,19432).
1340 section([9,8,1,1],'Boehm-GC support',19402,19432).
1341 section([9,8,2],'Compatibility between Prolog versions',19434,19446).
1342 section([9,8,3],'Debugging and profiling foreign code (valgrind)',19448,19468).
1343 section([9,8,4],'Name Conflicts in C modules',19470,19487).
1344 section([9,8,5],'Compatibility of the Foreign Interface',19489,19516).
1345 section([10],'GENERATING RUNTIME APPLICATIONS',19518,19924).
1346 section([10,1],'Limitations of qsave_program',19669,19685).
1347 section([10,2],'Runtimes and Foreign Code',19687,19753).
1348 section([10,3],'Using program resources',19755,19877).
1349 section([10,3,1],'Resource manipulation predicates',19788,19846).
1350 section([10,3,2],'The swipl-rc program',19848,19877).
1351 section([10,4],'Finding Application files',19879,19924).
1352 section([10,4,1],'Specifying a file search path from the command line',19911,19924).
1353 section([11],'THE SWI-PROLOG LIBRARY',19926,25076).
1354 section([11,1],'library(aggregate): Aggregation operators on backtrackable',19950,20111).
1355 section([11,2],'library(apply): Apply predicates on a list',20113,20211).
1356 section([11,3],'library(assoc): Association lists',20213,20298).
1357 section([11,4],'library(broadcast): Broadcast and receive event notifications',20300,20414).
1358 section([11,5],'library(charsio): I/O on Lists of Character Codes',20416,20503).
1359 section([11,6],'library(check): Elementary completeness checks',20505,20561).
1360 section([11,7],'library(clpfd): Constraint Logic Programming over Finite Domains',20563,21514).
1361 section([11,7,0,1],'Introduction',20568,20596).
1362 section([11,7,0,2],'Arithmetic constraints',20598,20631).
1363 section([11,7,0,3],'Reification',20633,20650).
1364 section([11,7,0,4],'Examples',20652,20695).
1365 section([11,7,0,5],'Search',20697,20757).
1366 section([11,7,0,6],'Declarative integer arithmetic',20759,21514).
1367 section([11,8],'library(clpqr): Constraint Logic Programming over Rationals and',21516,21738).
1368 section([11,8,1],'Solver predicates',21550,21620).
1369 section([11,8,2],'Syntax of the predicate arguments',21622,21661).
1370 section([11,8,3],'Use of unification',21663,21680).
1371 section([11,8,4],'Non-linear constraints',21682,21707).
1372 section([11,8,5],'Status and known problems',21709,21738).
1373 section([11,9],'library(csv): Process CSV (Comma-Separated Values) data',21740,21860).
1374 section([11,10],'library(debug): Print debug messages and test assertions',21862,21974).
1375 section([11,11],'library(gensym): Generate unique identifiers',21976,22007).
1376 section([11,12],'library(lists): List Manipulation',22009,22322).
1377 section([11,13],'library(nb_set): Non-backtrackable set',22324,22382).
1378 section([11,14],'library(www_browser): Activating your Web-browser',22384,22410).
1379 section([11,15],'library(option): Option list processing',22412,22520).
1380 section([11,16],'library(optparse): command line parsing',22522,22888).
1381 section([11,16,1],'Notes and tips',22786,22888).
1382 section([11,17],'library(ordsets): Ordered set manipulation',22890,23057).
1383 section([11,18],'library(pairs): Operations on key-value lists',23059,23124).
1384 section([11,19],'library(pio): Pure I/O',23126,23245).
1385 section([11,19,1],'library(pure_input): Pure Input from files',23134,23245).
1386 section([11,20],'library(predicate_options): Declare option-processing of predi-',23247,23519).
1387 section([11,20,1],'The strength and weakness of predicate options',23253,23303).
1388 section([11,20,2],'Options as arguments or environment?',23305,23337).
1389 section([11,20,3],'Improving on the current situation',23339,23519).
1390 section([11,20,3,1],'Options as types',23349,23376).
1391 section([11,20,3,2],'Reflective access to options',23378,23519).
1392 section([11,21],'library(prolog_pack): A package manager for Prolog',23521,23684).
1393 section([11,22],'library(prolog_xref): Cross-reference data collection library',23686,23785).
1394 section([11,22,1],'Extending the library',23766,23785).
1395 section([11,23],'library(quasi_quotations): Define Quasi Quotation syntax',23787,23905).
1396 section([11,24],'library(random): Random numbers',23907,24045).
1397 section([11,25],'library(readutil): Reading lines, streams and files',24047,24113).
1398 section([11,26],'library(record): Access named fields in a term',24115,24212).
1399 section([11,27],'library(registry): Manipulating the Windows registry',24214,24290).
1400 section([11,28],'library(simplex): Solve linear programming problems',24292,24528).
1401 section([11,28,1],'Example 1',24394,24426).
1402 section([11,28,2],'Example 2',24428,24486).
1403 section([11,28,3],'Example 3',24488,24528).
1404 section([11,29],'library(thread_pool): Resource bounded thread management',24530,24648).
1405 section([11,30],'library(ugraphs): Unweighted Graphs',24650,24860).
1406 section([11,31],'library(url): Analysing and constructing URL',24862,25019).
1407 section([11,32],'library(varnumbers): Utilities for numbered terms',25021,25076).
1408 section([12],'HACKERS CORNER',25078,25767).
1409 section([12,1],'Examining the Environment Stack',25088,25221).
1410 section([12,2],'Ancestral cuts',25223,25232).
1411 section([12,3],'Syntax extensions',25234,25320).
1412 section([12,3,1],'Block operators',25281,25320).
1413 section([12,4],'Intercepting the Tracer',25322,25452).
1414 section([12,5],'Breakpoint and watchpoint handling',25454,25541).
1415 section([12,6],'Adding context to errors: prolog_exception_hook',25543,25594).
1416 section([12,7],'Hooks using the exception predicate',25596,25635).
1417 section([12,8],'Hooks for integrating libraries',25637,25698).
1418 section([12,9],'Hooks for loading files',25700,25739).
1419 section([12,10],'Readline Interaction',25741,25767).
1420 section([13],'COMPATIBILITY WITH OTHER PROLOG DIALECTS',25769,25964).
1421 section([13,1],'Some considerations for writing portable code',25849,25964).
1422 section([14],'GLOSSARY OF TERMS',25966,26258).
1423 section([15],'SWI-PROLOG LICENSE CONDITIONS AND TOOLS',26260,26453).
1424 section([15,1],'The SWI-Prolog kernel and foreign libraries',26290,26322).
1425 section([15,1,1],'The SWI-Prolog Prolog libraries',26305,26322).
1426 section([15,2],'Contributing to the SWI-Prolog project',26324,26334).
1427 section([15,3],'Software support to keep track of license conditions',26336,26417).
1428 section([15,4],'License conditions inherited from used code',26419,26453).
1429 section([15,4,1],'Cryptographic routines',26422,26453).
1430 section([16],'SUMMARY',26455,27815).
1431 section([16,1],'Predicates',26458,27205).
1432 section([16,2],'Library predicates',27207,27669).
1433 section([16,2,1],'library(aggregate)',27210,27219).
1434 section([16,2,2],'library(apply)',27221,27241).
1435 section([16,2,3],'library(assoc)',27243,27260).
1436 section([16,2,4],'library(broadcast)',27262,27272).
1437 section([16,2,5],'library(charsio)',27274,27291).
1438 section([16,2,6],'library(check)',27293,27299).
1439 section([16,2,7],'library(csv)',27301,27311).
1440 section([16,2,8],'library(lists)',27313,27351).
1441 section([16,2,9],'library(debug)',27353,27366).
1442 section([16,2,10],'library(option)',27368,27376).
1443 section([16,2,11],'library(optparse)',27378,27384).
1444 section([16,2,12],'library(ordsets)',27386,27410).
1445 section([16,2,13],'library(predicate_options)',27412,27426).
1446 section([16,2,14],'library(prologpack)',27428,27443).
1447 section([16,2,15],'library(prologxref)',27445,27457).
1448 section([16,2,16],'library(pairs)',27459,27467).
1449 section([16,2,17],'library(pio)',27469,27481).
1450 section([16,2,17,1],'library(pure_input)',27472,27481).
1451 section([16,2,18],'library(random)',27483,27500).
1452 section([16,2,19],'library(readutil)',27502,27510).
1453 section([16,2,20],'library(record)',27512,27515).
1454 section([16,2,21],'library(registry)',27517,27529).
1455 section([16,2,22],'library(ugraphs)',27531,27552).
1456 section([16,2,23],'library(url)',27554,27567).
1457 section([16,2,24],'library(www_browser)',27569,27572).
1458 section([16,2,25],'library(clp/clpfd)',27574,27621).
1459 section([16,2,26],'library(clpqr)',27623,27635).
1460 section([16,2,27],'library(clp/simplex)',27637,27651).
1461 section([16,2,28],'library(thread_pool)',27653,27661).
1462 section([16,2,29],'library(varnumbers)',27663,27669).
1463 section([16,3],'Arithmetic Functions',27671,27748).
1464 section([16,4],'Operators',27750,27815).
1465 section([17],'Bibliography',27817,29118).
1466 section([],'Index',27916,29118).
14681467
14691468
14701469 % Predicate function/3
14711470
1472 function('PL_thread_self',15284,15289).
1473 function('PL_unify_thread_id',15291,15295).
1474 function('PL_thread_attach_engine',15297,15331).
1475 function('PL_thread_destroy_engine',15333,15343).
1476 function('PL_thread_at_exit',15345,15353).
1477 function('PL_create_engine',15382,15391).
1478 function('PL_destroy_engine',15393,15398).
1479 function('PL_set_engine',15400,15420).
1480 function('PL_new_term_ref',15856,15862).
1481 function('PL_new_term_refs',15864,15879).
1482 function('PL_copy_term_ref',15881,15885).
1483 function('PL_reset_term_refs',15887,15897).
1484 function('PL_succeed',15974,15976).
1485 function('PL_fail',15978,15981).
1486 function('PL_retry',16032,16041).
1487 function('PL_retry_address',16043,16047).
1488 function('PL_foreign_control',16049,16054).
1489 function('PL_foreign_context',16056,16061).
1490 function('PL_foreign_context_address',16063,16103).
1491 function('PL_new_atom',16111,16119).
1492 function('PL_atom_chars',16134,16142).
1493 function('PL_new_functor',16144,16147).
1494 function('PL_functor_name',16149,16151).
1495 function('PL_functor_arity',16153,16155).
1496 function('PL_register_atom',16170,16174).
1497 function('PL_unregister_atom',16176,16191).
1498 function('PL_term_type',16209,16252).
1499 function('PL_is_variable',16254,16256).
1500 function('PL_is_ground',16258,16261).
1501 function('PL_is_atom',16263,16265).
1502 function('PL_is_string',16267,16269).
1503 function('PL_is_integer',16271,16273).
1504 function('PL_is_float',16275,16277).
1505 function('PL_is_callable',16279,16282).
1506 function('PL_is_compound',16284,16286).
1507 function('PL_is_functor',16288,16292).
1508 function('PL_is_list',16294,16297).
1509 function('PL_is_pair',16299,16302).
1510 function('PL_is_atomic',16304,16306).
1511 function('PL_is_number',16308,16310).
1512 function('PL_is_acyclic',16312,16314).
1513 function('PL_get_atom',16323,16330).
1514 function('PL_get_atom_chars',16332,16337).
1515 function('PL_get_string_chars',16339,16345).
1516 function('PL_get_chars',16347,16429).
1517 function('PL_get_list_chars',16431,16434).
1518 function('PL_get_integer',16436,16440).
1519 function('PL_get_long',16442,16448).
1520 function('PL_get_int64',16450,16455).
1521 function('PL_get_intptr',16457,16462).
1522 function('PL_get_bool',16464,16467).
1523 function('PL_get_pointer',16469,16475).
1524 function('PL_get_float',16477,16479).
1525 function('PL_get_functor',16481,16485).
1526 function('PL_get_name_arity',16487,16491).
1527 function('PL_get_module',16493,16497).
1528 function('PL_get_arg',16499,16502).
1529 function('_PL_get_arg',16504,16507).
1530 function('PL_get_atom_nchars',16518,16520).
1531 function('PL_get_list_nchars',16522,16524).
1532 function('PL_get_nchars',16526,16528).
1533 function('PL_put_atom_nchars',16530,16532).
1534 function('PL_put_string_nchars',16534,16536).
1535 function('PL_put_list_ncodes',16538,16540).
1536 function('PL_put_list_nchars',16542,16544).
1537 function('PL_unify_atom_nchars',16546,16548).
1538 function('PL_unify_string_nchars',16550,16552).
1539 function('PL_unify_list_ncodes',16554,16556).
1540 function('PL_unify_list_nchars',16558,16563).
1541 function('PL_new_atom_nchars',16565,16569).
1542 function('PL_atom_nchars',16571,16573).
1543 function('PL_new_atom_wchars',16588,16593).
1544 function('PL_atom_wchars',16595,16601).
1545 function('PL_get_wchars',16603,16606).
1546 function('PL_unify_wchars',16608,16612).
1547 function('PL_unify_wchars_diff',16614,16622).
1548 function('PL_get_list',16651,16654).
1549 function('PL_get_head',16656,16658).
1550 function('PL_get_tail',16660,16662).
1551 function('PL_get_nil',16664,16666).
1552 function('PL_skip_list',16668,16694).
1553 function('PL_put_variable',16762,16765).
1554 function('PL_put_atom',16767,16770).
1555 function('PL_put_bool',16772,16775).
1556 function('PL_put_atom_chars',16777,16781).
1557 function('PL_put_string_chars',16783,16786).
1558 function('PL_put_string_nchars',16788,16792).
1559 function('PL_put_list_chars',16794,16796).
1560 function('PL_put_integer',16798,16800).
1561 function('PL_put_int64',16802,16804).
1562 function('PL_put_pointer',16806,16809).
1563 function('PL_put_float',16811,16813).
1564 function('PL_put_functor',16815,16820).
1565 function('PL_put_list',16822,16824).
1566 function('PL_put_nil',16826,16828).
1567 function('PL_put_term',16830,16832).
1568 function('PL_cons_functor',16834,16859).
1569 function('PL_cons_functor_v',16861,16866).
1570 function('PL_cons_list',16868,16890).
1571 function('PL_unify',16940,16972).
1572 function('PL_unify_atom',16974,16976).
1573 function('PL_unify_bool',16978,16980).
1574 function('PL_unify_chars',16982,16995).
1575 function('PL_unify_atom_chars',16997,17000).
1576 function('PL_unify_list_chars',17002,17004).
1577 function('PL_unify_string_chars',17006,17010).
1578 function('PL_unify_string_nchars',17012,17016).
1579 function('PL_unify_integer',17018,17020).
1580 function('PL_unify_int64',17022,17024).
1581 function('PL_unify_float',17026,17028).
1582 function('PL_unify_pointer',17030,17033).
1583 function('PL_unify_functor',17035,17040).
1584 function('PL_unify_list',17042,17073).
1585 function('PL_unify_nil',17075,17077).
1586 function('PL_unify_arg',17079,17081).
1587 function('PL_unify_term',17083,17234).
1588 function('PL_chars_to_term',17236,17267).
1589 function('PL_wchars_to_term',17269,17271).
1590 function('PL_quote',17273,17282).
1591 function('PL_get_atom_ex',17314,17317).
1592 function('PL_get_integer_ex',17319,17323).
1593 function('PL_get_long_ex',17325,17329).
1594 function('PL_get_int64_ex',17331,17335).
1595 function('PL_get_intptr_ex',17337,17341).
1596 function('PL_get_size_ex',17343,17347).
1597 function('PL_get_bool_ex',17349,17352).
1598 function('PL_get_float_ex',17354,17357).
1599 function('PL_get_char_ex',17359,17363).
1600 function('PL_get_pointer_ex',17365,17368).
1601 function('PL_get_list_ex',17370,17373).
1602 function('PL_get_nil_ex',17375,17378).
1603 function('PL_unify_list_ex',17380,17383).
1604 function('PL_unify_nil_ex',17385,17388).
1605 function('PL_unify_bool_ex',17390,17400).
1606 function('PL_instantiation_error',17402,17405).
1607 function('PL_uninstantiation_error',17407,17410).
1608 function('PL_representation_error',17412,17414).
1609 function('PL_type_error',17416,17418).
1610 function('PL_domain_error',17420,17422).
1611 function('PL_existence_error',17424,17426).
1612 function('PL_permission_error',17428,17431).
1613 function('PL_resource_error',17433,17435).
1614 function('PL_unregister_blob_type',17538,17546).
1615 function('PL_is_blob',17556,17559).
1616 function('PL_unify_blob',17561,17564).
1617 function('PL_put_blob',17566,17574).
1618 function('PL_get_blob',17576,17580).
1619 function('PL_blob_data',17582,17586).
1620 function('PL_get_mpz',17646,17652).
1621 function('PL_get_mpq',17654,17661).
1622 function('PL_unify_mpz',17663,17666).
1623 function('PL_unify_mpq',17668,17672).
1624 function('PL_pred',17695,17700).
1625 function('PL_predicate',17702,17705).
1626 function('PL_predicate_info',17707,17714).
1627 function('PL_open_query',17728,17791).
1628 function('PL_next_solution',17793,17798).
1629 function('PL_cut_query',17800,17804).
1630 function('PL_close_query',17806,17809).
1631 function('PL_call_predicate',17811,17815).
1632 function('PL_call',17817,17823).
1633 function('PL_open_foreign_frame',17834,17840).
1634 function('PL_close_foreign_frame',17842,17846).
1635 function('PL_discard_foreign_frame',17848,17851).
1636 function('PL_rewind_foreign_frame',17853,17885).
1637 function('PL_context',17893,17896).
1638 function('PL_strip_module',17898,17918).
1639 function('PL_module_name',17920,17922).
1640 function('PL_new_module',17924,17926).
1641 function('PL_raise_exception',18003,18030).
1642 function('PL_throw',18032,18035).
1643 function('PL_exception',18037,18049).
1644 function('PL_clear_exception',18051,18055).
1645 function('PL_signal',18077,18103).
1646 function('PL_raise',18105,18109).
1647 function('PL_handle_signals',18111,18122).
1648 function('PL_get_signum_ex',18124,18130).
1649 function('PL_compare',18138,18141).
1650 function('PL_same_compound',18143,18146).
1651 function('PL_record',18166,18171).
1652 function('PL_recorded',18173,18179).
1653 function('PL_erase',18181,18216).
1654 function('PL_record_external',18218,18230).
1655 function('PL_recorded_external',18232,18236).
1656 function('PL_erase_external',18238,18241).
1657 function('PL_get_file_name',18251,18284).
1658 function('PL_get_file_nameW',18286,18292).
1659 function('PL_warning',18302,18307).
1660 function('PL_action',18312,18366).
1661 function('PL_backtrace',18368,18390).
1662 function('PL_query',18395,18429).
1663 function('PL_register_foreign_in_module',18434,18507).
1664 function('PL_register_foreign',18509,18512).
1665 function('PL_register_extensions_in_module',18514,18550).
1666 function('PL_register_extensions',18552,18555).
1667 function('PL_dispatch_hook',18562,18572).
1668 function('PL_abort_hook',18574,18583).
1669 function('PL_abort_unhook',18585,18588).
1670 function('PL_on_halt',18590,18598).
1671 function('PL_exit_hook',18600,18603).
1672 function('PL_agc_hook',18605,18642).
1673 function('PL_initialise',18873,18929).
1674 function('PL_is_initialised',18931,18937).
1675 function('PL_install_readline',18939,18944).
1676 function('PL_toplevel',18946,18949).
1677 function('PL_cleanup',18951,18975).
1678 function('PL_cleanup_fork',18977,18990).
1679 function('PL_halt',18992,18996).
1680 function('PL_malloc',19374,19379).
1681 function('PL_realloc',19381,19385).
1682 function('PL_free',19387,19390).
1683 function('PL_malloc_atomic',19402,19403).
1684 function('PL_malloc_uncollectable',19405,19406).
1685 function('PL_malloc_atomic_uncollectable',19408,19414).
1686 function('PL_malloc_stubborn',19416,19417).
1687 function('PL_end_stubborn_change',19419,19422).
1688 function('PL_license',26398,26401).
1471 function('PL_thread_self',15294,15299).
1472 function('PL_unify_thread_id',15301,15305).
1473 function('PL_thread_attach_engine',15307,15341).
1474 function('PL_thread_destroy_engine',15343,15353).
1475 function('PL_thread_at_exit',15355,15363).
1476 function('PL_create_engine',15392,15401).
1477 function('PL_destroy_engine',15403,15408).
1478 function('PL_set_engine',15410,15430).
1479 function('PL_new_term_ref',15866,15872).
1480 function('PL_new_term_refs',15874,15889).
1481 function('PL_copy_term_ref',15891,15895).
1482 function('PL_reset_term_refs',15897,15907).
1483 function('PL_succeed',15984,15986).
1484 function('PL_fail',15988,15991).
1485 function('PL_retry',16042,16051).
1486 function('PL_retry_address',16053,16057).
1487 function('PL_foreign_control',16059,16064).
1488 function('PL_foreign_context',16066,16071).
1489 function('PL_foreign_context_address',16073,16113).
1490 function('PL_new_atom',16121,16129).
1491 function('PL_atom_chars',16144,16152).
1492 function('PL_new_functor',16154,16157).
1493 function('PL_functor_name',16159,16161).
1494 function('PL_functor_arity',16163,16165).
1495 function('PL_register_atom',16180,16184).
1496 function('PL_unregister_atom',16186,16201).
1497 function('PL_term_type',16219,16262).
1498 function('PL_is_variable',16264,16266).
1499 function('PL_is_ground',16268,16271).
1500 function('PL_is_atom',16273,16275).
1501 function('PL_is_string',16277,16279).
1502 function('PL_is_integer',16281,16283).
1503 function('PL_is_float',16285,16287).
1504 function('PL_is_callable',16289,16292).
1505 function('PL_is_compound',16294,16296).
1506 function('PL_is_functor',16298,16302).
1507 function('PL_is_list',16304,16307).
1508 function('PL_is_pair',16309,16312).
1509 function('PL_is_atomic',16314,16316).
1510 function('PL_is_number',16318,16320).
1511 function('PL_is_acyclic',16322,16324).
1512 function('PL_get_atom',16333,16340).
1513 function('PL_get_atom_chars',16342,16347).
1514 function('PL_get_string_chars',16349,16355).
1515 function('PL_get_chars',16357,16439).
1516 function('PL_get_list_chars',16441,16444).
1517 function('PL_get_integer',16446,16450).
1518 function('PL_get_long',16452,16458).
1519 function('PL_get_int64',16460,16465).
1520 function('PL_get_intptr',16467,16472).
1521 function('PL_get_bool',16474,16477).
1522 function('PL_get_pointer',16479,16485).
1523 function('PL_get_float',16487,16489).
1524 function('PL_get_functor',16491,16495).
1525 function('PL_get_name_arity',16497,16501).
1526 function('PL_get_module',16503,16507).
1527 function('PL_get_arg',16509,16512).
1528 function('_PL_get_arg',16514,16517).
1529 function('PL_get_atom_nchars',16528,16530).
1530 function('PL_get_list_nchars',16532,16534).
1531 function('PL_get_nchars',16536,16538).
1532 function('PL_put_atom_nchars',16540,16542).
1533 function('PL_put_string_nchars',16544,16546).
1534 function('PL_put_list_ncodes',16548,16550).
1535 function('PL_put_list_nchars',16552,16554).
1536 function('PL_unify_atom_nchars',16556,16558).
1537 function('PL_unify_string_nchars',16560,16562).
1538 function('PL_unify_list_ncodes',16564,16566).
1539 function('PL_unify_list_nchars',16568,16573).
1540 function('PL_new_atom_nchars',16575,16579).
1541 function('PL_atom_nchars',16581,16583).
1542 function('PL_new_atom_wchars',16598,16603).
1543 function('PL_atom_wchars',16605,16611).
1544 function('PL_get_wchars',16613,16616).
1545 function('PL_unify_wchars',16618,16622).
1546 function('PL_unify_wchars_diff',16624,16632).
1547 function('PL_get_list',16661,16664).
1548 function('PL_get_head',16666,16668).
1549 function('PL_get_tail',16670,16672).
1550 function('PL_get_nil',16674,16676).
1551 function('PL_skip_list',16678,16704).
1552 function('PL_put_variable',16772,16775).
1553 function('PL_put_atom',16777,16780).
1554 function('PL_put_bool',16782,16785).
1555 function('PL_put_atom_chars',16787,16791).
1556 function('PL_put_string_chars',16793,16796).
1557 function('PL_put_string_nchars',16798,16802).
1558 function('PL_put_list_chars',16804,16806).
1559 function('PL_put_integer',16808,16810).
1560 function('PL_put_int64',16812,16814).
1561 function('PL_put_pointer',16816,16819).
1562 function('PL_put_float',16821,16823).
1563 function('PL_put_functor',16825,16830).
1564 function('PL_put_list',16832,16834).
1565 function('PL_put_nil',16836,16838).
1566 function('PL_put_term',16840,16842).
1567 function('PL_cons_functor',16844,16869).
1568 function('PL_cons_functor_v',16871,16876).
1569 function('PL_cons_list',16878,16900).
1570 function('PL_unify',16950,16982).
1571 function('PL_unify_atom',16984,16986).
1572 function('PL_unify_bool',16988,16990).
1573 function('PL_unify_chars',16992,17005).
1574 function('PL_unify_atom_chars',17007,17010).
1575 function('PL_unify_list_chars',17012,17014).
1576 function('PL_unify_string_chars',17016,17020).
1577 function('PL_unify_string_nchars',17022,17026).
1578 function('PL_unify_integer',17028,17030).
1579 function('PL_unify_int64',17032,17034).
1580 function('PL_unify_float',17036,17038).
1581 function('PL_unify_pointer',17040,17043).
1582 function('PL_unify_functor',17045,17050).
1583 function('PL_unify_list',17052,17083).
1584 function('PL_unify_nil',17085,17087).
1585 function('PL_unify_arg',17089,17091).
1586 function('PL_unify_term',17093,17244).
1587 function('PL_chars_to_term',17246,17277).
1588 function('PL_wchars_to_term',17279,17281).
1589 function('PL_quote',17283,17292).
1590 function('PL_get_atom_ex',17324,17327).
1591 function('PL_get_integer_ex',17329,17333).
1592 function('PL_get_long_ex',17335,17339).
1593 function('PL_get_int64_ex',17341,17345).
1594 function('PL_get_intptr_ex',17347,17351).
1595 function('PL_get_size_ex',17353,17357).
1596 function('PL_get_bool_ex',17359,17362).
1597 function('PL_get_float_ex',17364,17367).
1598 function('PL_get_char_ex',17369,17373).
1599 function('PL_get_pointer_ex',17375,17378).
1600 function('PL_get_list_ex',17380,17383).
1601 function('PL_get_nil_ex',17385,17388).
1602 function('PL_unify_list_ex',17390,17393).
1603 function('PL_unify_nil_ex',17395,17398).
1604 function('PL_unify_bool_ex',17400,17410).
1605 function('PL_instantiation_error',17412,17415).
1606 function('PL_uninstantiation_error',17417,17420).
1607 function('PL_representation_error',17422,17424).
1608 function('PL_type_error',17426,17428).
1609 function('PL_domain_error',17430,17432).
1610 function('PL_existence_error',17434,17436).
1611 function('PL_permission_error',17438,17441).
1612 function('PL_resource_error',17443,17445).
1613 function('PL_unregister_blob_type',17548,17556).
1614 function('PL_is_blob',17566,17569).
1615 function('PL_unify_blob',17571,17574).
1616 function('PL_put_blob',17576,17584).
1617 function('PL_get_blob',17586,17590).
1618 function('PL_blob_data',17592,17596).
1619 function('PL_get_mpz',17656,17662).
1620 function('PL_get_mpq',17664,17671).
1621 function('PL_unify_mpz',17673,17676).
1622 function('PL_unify_mpq',17678,17682).
1623 function('PL_pred',17705,17710).
1624 function('PL_predicate',17712,17715).
1625 function('PL_predicate_info',17717,17724).
1626 function('PL_open_query',17738,17801).
1627 function('PL_next_solution',17803,17808).
1628 function('PL_cut_query',17810,17814).
1629 function('PL_close_query',17816,17819).
1630 function('PL_call_predicate',17821,17825).
1631 function('PL_call',17827,17833).
1632 function('PL_open_foreign_frame',17844,17850).
1633 function('PL_close_foreign_frame',17852,17856).
1634 function('PL_discard_foreign_frame',17858,17861).
1635 function('PL_rewind_foreign_frame',17863,17895).
1636 function('PL_context',17903,17906).
1637 function('PL_strip_module',17908,17928).
1638 function('PL_module_name',17930,17932).
1639 function('PL_new_module',17934,17936).
1640 function('PL_raise_exception',18013,18040).
1641 function('PL_throw',18042,18045).
1642 function('PL_exception',18047,18059).
1643 function('PL_clear_exception',18061,18065).
1644 function('PL_signal',18087,18113).
1645 function('PL_raise',18115,18119).
1646 function('PL_handle_signals',18121,18132).
1647 function('PL_get_signum_ex',18134,18140).
1648 function('PL_compare',18148,18151).
1649 function('PL_same_compound',18153,18156).
1650 function('PL_record',18176,18181).
1651 function('PL_recorded',18183,18189).
1652 function('PL_erase',18191,18226).
1653 function('PL_record_external',18228,18240).
1654 function('PL_recorded_external',18242,18246).
1655 function('PL_erase_external',18248,18251).
1656 function('PL_get_file_name',18261,18294).
1657 function('PL_get_file_nameW',18296,18302).
1658 function('PL_warning',18312,18317).
1659 function('PL_action',18322,18376).
1660 function('PL_backtrace',18378,18400).
1661 function('PL_query',18405,18439).
1662 function('PL_register_foreign_in_module',18444,18517).
1663 function('PL_register_foreign',18519,18522).
1664 function('PL_register_extensions_in_module',18524,18560).
1665 function('PL_register_extensions',18562,18565).
1666 function('PL_dispatch_hook',18572,18582).
1667 function('PL_abort_hook',18584,18593).
1668 function('PL_abort_unhook',18595,18598).
1669 function('PL_on_halt',18600,18608).
1670 function('PL_exit_hook',18610,18613).
1671 function('PL_agc_hook',18615,18652).
1672 function('PL_initialise',18883,18939).
1673 function('PL_is_initialised',18941,18947).
1674 function('PL_install_readline',18949,18954).
1675 function('PL_toplevel',18956,18959).
1676 function('PL_cleanup',18961,18985).
1677 function('PL_cleanup_fork',18987,19000).
1678 function('PL_halt',19002,19006).
1679 function('PL_malloc',19384,19389).
1680 function('PL_realloc',19391,19395).
1681 function('PL_free',19397,19400).
1682 function('PL_malloc_atomic',19412,19413).
1683 function('PL_malloc_uncollectable',19415,19416).
1684 function('PL_malloc_atomic_uncollectable',19418,19424).
1685 function('PL_malloc_stubborn',19426,19427).
1686 function('PL_end_stubborn_change',19429,19432).
1687 function('PL_license',26414,26417).
16891688
16901689
813813 option_decl(M:_, _) :-
814814 has_static_option_decl(M), !.
815815 option_decl(M:Head, _) :-
816 compound(Head),
816817 arg(AP, Head, QA),
817818 remove_qualifier(QA, A),
818819 annotations(A, Annotations0),
689689 % meta- and database-access predicates.
690690
691691 colourise_goal_args(Goal, TB, Pos) :-
692 colourization_module(TB, Module),
693 colourise_goal_args(Goal, Module, TB, Pos).
694
695 colourization_module(TB, Module) :-
692696 ( colour_state_source_id(TB, SourceId),
693697 xref_module(SourceId, Module)
694698 -> true
695699 ; Module = user
696 ),
697 colourise_goal_args(Goal, Module, TB, Pos).
700 ).
698701
699702 colourise_goal_args(Goal, M, TB, term_position(_,_,_,_,ArgPos)) :-
700703 meta_args(Goal, TB, MetaArgs), !,
12031206 Arity is Arity0 + 2,
12041207 functor(Term, Name, Arity).
12051208
1206 colourise_meta_declarations((Head,Tail), TB,
1209 colourise_meta_declarations((Head,Tail), Extra, TB,
12071210 term_position(_,_,_,_,[PH,PT])) :- !,
1208 colourise_meta_declaration(Head, TB, PH),
1209 colourise_meta_declarations(Tail, TB, PT).
1210 colourise_meta_declarations(Last, TB, Pos) :-
1211 colourise_meta_declaration(Last, TB, Pos).
1212
1213 colourise_meta_declaration(M:Head, TB,
1211 colourise_meta_declaration(Head, Extra, TB, PH),
1212 colourise_meta_declarations(Tail, Extra, TB, PT).
1213 colourise_meta_declarations(Last, Extra, TB, Pos) :-
1214 colourise_meta_declaration(Last, Extra, TB, Pos).
1215
1216 colourise_meta_declaration(M:Head, Extra, TB,
12141217 term_position(_,_,_,_,
12151218 [ MP,
12161219 term_position(_,_,FF,FT,ArgPos)
12181221 colour_item(module(M), TB, MP),
12191222 colour_item(goal(extern(M,Head)), TB, FF-FT),
12201223 Head =.. [_|Args],
1221 colourise_meta_args(Args, TB, ArgPos).
1222 colourise_meta_declaration(Head, TB, term_position(_,_,FF,FT,ArgPos)) :- !,
1224 colourise_meta_decls(Args, Extra, TB, ArgPos).
1225 colourise_meta_declaration(Head, Extra, TB, term_position(_,_,FF,FT,ArgPos)) :- !,
12231226 goal_classification(TB, Head, [], Class),
12241227 colour_item(goal(Class, Head), TB, FF-FT),
12251228 Head =.. [_|Args],
1226 colourise_meta_args(Args, TB, ArgPos).
1227 colourise_meta_declaration([H|T], TB, list_position(LF,LT,[HP],TP)) :-
1229 colourise_meta_decls(Args, Extra, TB, ArgPos).
1230 colourise_meta_declaration([H|T], Extra, TB, list_position(LF,LT,[HP],TP)) :-
12281231 colour_item(list, TB, LF-LT),
1229 colourise_meta_args([H,T], TB, [HP,TP]).
1230
1231 colourise_meta_args([], _, []).
1232 colourise_meta_args([Arg|ArgT], TB, [PosH|PosT]) :-
1233 colourise_meta_arg(Arg, TB, PosH),
1234 colourise_meta_args(ArgT, TB, PosT).
1235
1236 colourise_meta_arg(Arg, TB, Pos) :-
1237 valid_meta_arg(Arg), !,
1232 colourise_meta_decls([H,T], Extra, TB, [HP,TP]).
1233
1234 colourise_meta_decls([], _, _, []).
1235 colourise_meta_decls([Arg|ArgT], Extra, TB, [PosH|PosT]) :-
1236 colourise_meta_decl(Arg, Extra, TB, PosH),
1237 colourise_meta_decls(ArgT, Extra, TB, PosT).
1238
1239 colourise_meta_decl(Arg, Extra, TB, Pos) :-
1240 nonvar(Arg),
1241 ( valid_meta_decl(Arg)
1242 -> true
1243 ; memberchk(Arg, Extra)
1244 ),
12381245 colour_item(meta(Arg), TB, Pos).
1239 colourise_meta_arg(_, TB, Pos) :-
1246 colourise_meta_decl(_, _, TB, Pos) :-
12401247 colour_item(error, TB, Pos).
12411248
1242 valid_meta_arg(Var) :-
1243 var(Var), !, fail.
1244 valid_meta_arg(:).
1245 valid_meta_arg(*).
1246 valid_meta_arg(//).
1247 valid_meta_arg(^).
1248 valid_meta_arg(?).
1249 valid_meta_arg(+).
1250 valid_meta_arg(-).
1251 valid_meta_arg(I) :- integer(I), between(0,9,I).
1249 valid_meta_decl(:).
1250 valid_meta_decl(*).
1251 valid_meta_decl(//).
1252 valid_meta_decl(^).
1253 valid_meta_decl(?).
1254 valid_meta_decl(+).
1255 valid_meta_decl(-).
1256 valid_meta_decl(I) :- integer(I), between(0,9,I).
12521257
12531258 %% colourise_op_declaration(Op, TB, Pos) is det.
12541259
14371442 goal_colours(include(_), built_in-[file]).
14381443 goal_colours(ensure_loaded(_), built_in-[file]).
14391444 goal_colours(load_files(_), built_in-[file]).
1440 goal_colours(load_files(_,_), built_in-[file,classify]).
1445 goal_colours(load_files(_,_), built_in-[file,options]).
14411446 goal_colours(setof(_,_,_), built_in-[classify,setof,classify]).
14421447 goal_colours(bagof(_,_,_), built_in-[classify,setof,classify]).
14431448 goal_colours(predicate_options(_,_,_), built_in-[predicate,classify,classify]).
17881793 colourise_declaration(Term, TB, Pos).
17891794 % head(Arg, ...)
17901795 specified_item(meta_declarations, Term, TB, Pos) :- !,
1791 colourise_meta_declarations(Term, TB, Pos).
1796 colourise_meta_declarations(Term, [], TB, Pos).
1797 specified_item(meta_declarations(Extra), Term, TB, Pos) :- !,
1798 colourise_meta_declarations(Term, Extra, TB, Pos).
17921799 % set_prolog_flag(Name, _)
17931800 specified_item(prolog_flag_name, Term, TB, Pos) :- !,
17941801 colourise_prolog_flag_name(Term, TB, Pos).
18681875 specified_arglist([], _, _, _, _).
18691876 specified_arglist(_, _, _, _, []) :- !. % Excess specification args
18701877 specified_arglist([S0|ST], N, T, TB, [P0|PT]) :-
1871 arg(N, T, Term),
1872 specified_item(S0, Term, TB, P0),
1878 ( S0 == options,
1879 colourization_module(TB, Module),
1880 colourise_option_arg(T, Module, N, TB, P0)
1881 -> true
1882 ; arg(N, T, Term),
1883 specified_item(S0, Term, TB, P0)
1884 ),
18731885 NN is N + 1,
18741886 specified_arglist(ST, NN, T, TB, PT).
18751887
149149 :- if(current_predicate(rl_read_history/1)).
150150 :- dynamic
151151 history_loaded/1.
152 prolog_history(enable) :-
153 history_loaded(_), !.
154 prolog_history(enable) :- !,
155 dir_history_file('.', File),
152
153 load_dir_history(File) :-
156154 ( exists_file(File)
157155 -> rl_read_history(File),
158156 assertz(history_loaded(File))
159157 ; true
160 ),
158 ).
159
160 prolog_history(enable) :-
161 history_loaded(_), !.
162 prolog_history(enable) :-
163 catch(dir_history_file('.', File), E,
164 (print_message(warning, E),fail)), !,
165 catch(load_dir_history(File), E,
166 print_message(warning, E)),
161167 at_halt(write_history(File)),
162168 set_prolog_flag(save_history, true).
163169 :- endif.
10131013 xref_meta(if(G), [G]).
10141014 xref_meta(elif(G), [G]).
10151015 xref_meta(meta_options(G,_,_), [G+1]).
1016 xref_meta(on_signal(_,_,H), [H+1]) :- H \== default.
10161017
10171018 % XPCE meta-predicates
10181019 xref_meta(pce_global(_, new(_)), _) :- !, fail.
334334 define_toplevel_goal(Options),
335335 option(autoload(true), Options, true), !,
336336 autoload(Options).
337 save_autoload(_).
337338
338339
339340 /*******************************
377378 fail
378379 ; true
379380 ),
380 save_attributes(P),
381 \+ predicate_property(P, (volatile)),
382 ( nth_clause(P, _, Ref),
383 feedback('.', []),
384 '$qlf_assert_clause'(Ref, SaveClass),
385 fail
386 ; true
387 ).
388
381 ( no_save(P)
382 -> true
383 ; save_attributes(P),
384 \+ predicate_property(P, (volatile)),
385 ( nth_clause(P, _, Ref),
386 feedback('.', []),
387 '$qlf_assert_clause'(Ref, SaveClass),
388 fail
389 ; true
390 )
391 ).
392
393 no_save(P) :-
394 predicate_property(P, volatile),
395 \+ predicate_property(P, dynamic),
396 \+ predicate_property(P, multifile).
389397
390398 pred_attrib(meta_predicate(Term), Head, meta_predicate(M:Term)) :- !,
391399 strip_module(Head, M, _).
235235 % quasi_quotation(Syntax, Quotation, VarNames, Result)
236236
237237 :- public
238 system:'$parse_quasi_quotes'/2.
238 system:'$parse_quasi_quotations'/2.
239239
240240 system:'$parse_quasi_quotations'([], _).
241241 system:'$parse_quasi_quotations'([H|T], M) :-
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.20</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.20</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
854854 <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.5"><span class="sec-nr">A.7.5</span> <span class="sec-title">Search</span></a></div>
855855 <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.6"><span class="sec-nr">A.7.6</span> <span class="sec-title">Declarative
856856 integer arithmetic</span></a></div>
857 <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.7"><span class="sec-nr">A.7.7</span> <span class="sec-title">Advanced
858 topics</span></a></div>
859857 <div class="toc-h2"><a class="sec" href="clpqr.html"><span class="sec-nr">A.8</span> <span class="sec-title">library(clpqr):
860858 Constraint Logic Programming over Rationals and Reals</span></a></div>
861859 <div class="toc-h3"><a class="sec" href="clpqr.html#sec:A.8.1"><span class="sec-nr">A.8.1</span> <span class="sec-title">Solver
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.12</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.12</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.42</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.42</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
16231623 <a class="idx" href="flags.html#idx:open3:91">2.11</a> <a class="idx" href="IO.html#idx:open3:810">4.16</a> <a class="idx" href="IO.html#idx:open3:829">4.16.2</a></dd>
16241624 <dt><a class="idx" href="IO.html#open/4">open/4</a></dt>
16251625 <dd>
1626 <a class="idx" href="widechars.html#idx:open4:233">2.18.1</a> <a class="idx" href="widechars.html#idx:open4:239">2.18.1.1</a> <a class="idx" href="widechars.html#idx:open4:241">2.18.1.1</a> <a class="idx" href="chars.html#idx:open4:307">4.2</a> <a class="idx" href="IO.html#idx:open4:843">4.16.2</a> <a class="idx" href="IO.html#idx:open4:844">4.16.2</a> <a class="idx" href="IO.html#idx:open4:847">4.16.2</a> <a class="idx" href="IO.html#idx:open4:848">4.16.2</a> <a class="idx" href="IO.html#idx:open4:865">4.16.2</a> <a class="idx" href="IO.html#idx:open4:876">4.16.2</a> <a class="idx" href="IO.html#idx:open4:886">4.16.2</a> <a class="idx" href="chario.html#idx:open4:957">4.18</a> <a class="idx" href="locale.html#idx:open4:1124">4.22</a> <a class="idx" href="readutil.html#idx:open4:1829">A.25</a> <a class="idx" href="readutil.html#idx:open4:1833">A.25</a></dd>
1626 <a class="idx" href="widechars.html#idx:open4:233">2.18.1</a> <a class="idx" href="widechars.html#idx:open4:239">2.18.1.1</a> <a class="idx" href="widechars.html#idx:open4:241">2.18.1.1</a> <a class="idx" href="chars.html#idx:open4:307">4.2</a> <a class="idx" href="IO.html#idx:open4:835">4.16.2</a> <a class="idx" href="IO.html#idx:open4:843">4.16.2</a> <a class="idx" href="IO.html#idx:open4:844">4.16.2</a> <a class="idx" href="IO.html#idx:open4:847">4.16.2</a> <a class="idx" href="IO.html#idx:open4:848">4.16.2</a> <a class="idx" href="IO.html#idx:open4:865">4.16.2</a> <a class="idx" href="IO.html#idx:open4:876">4.16.2</a> <a class="idx" href="IO.html#idx:open4:886">4.16.2</a> <a class="idx" href="chario.html#idx:open4:957">4.18</a> <a class="idx" href="locale.html#idx:open4:1124">4.22</a> <a class="idx" href="readutil.html#idx:open4:1829">A.25</a> <a class="idx" href="readutil.html#idx:open4:1833">A.25</a></dd>
16271627 <dt><a class="idx" href="charsio.html#open_chars_stream/2">open_chars_stream/2</a></dt>
16281628 <dt><a class="idx" href="DDE.html#open_dde_conversation/3">open_dde_conversation/3</a></dt>
16291629 <dt><a class="idx" href="IO.html#open_null_stream/1">open_null_stream/1</a></dt>
17881788 <a class="idx" href="glossary.html#idx:priority:1977">D</a></dd>
17891789 <dt>process_create/3</dt>
17901790 <dd>
1791 <a class="idx" href="system.html#idx:processcreate3:1253">4.34</a> <a class="idx" href="system.html#idx:processcreate3:1273">4.34.1</a></dd>
1791 <a class="idx" href="IO.html#idx:processcreate3:834">4.16.2</a> <a class="idx" href="system.html#idx:processcreate3:1253">4.34</a> <a class="idx" href="system.html#idx:processcreate3:1273">4.34.1</a></dd>
17921792 <dt>profile file</dt>
17931793 <dd>
17941794 <a class="idx" href="initfile.html#idx:profilefile:9">2.2</a></dd>
21162116 <dt><a class="idx" href="apply.html#scanl/7">scanl/7</a></dt>
21172117 <dt><a class="idx" href="IO.html#see/1">see/1</a></dt>
21182118 <dd>
2119 <a class="idx" href="IO.html#idx:see1:813">4.16</a> <a class="idx" href="IO.html#idx:see1:819">4.16.1</a> <a class="idx" href="IO.html#idx:see1:834">4.16.2</a> <a class="idx" href="IO.html#idx:see1:895">4.16.3</a> <a class="idx" href="IO.html#idx:see1:902">4.16.3</a> <a class="idx" href="IO.html#idx:see1:904">4.16.3</a></dd>
2119 <a class="idx" href="IO.html#idx:see1:813">4.16</a> <a class="idx" href="IO.html#idx:see1:819">4.16.1</a> <a class="idx" href="IO.html#idx:see1:895">4.16.3</a> <a class="idx" href="IO.html#idx:see1:902">4.16.3</a> <a class="idx" href="IO.html#idx:see1:904">4.16.3</a></dd>
21202120 <dt><a class="idx" href="IO.html#seeing/1">seeing/1</a></dt>
21212121 <dd>
21222122 <a class="idx" href="IO.html#idx:seeing1:897">4.16.3</a> <a class="idx" href="IO.html#idx:seeing1:900">4.16.3</a> <a class="idx" href="files.html#idx:seeing1:1326">4.35</a></dd>
23372337 <a class="idx" href="thutil.html#idx:tdebug1:1657">8.5.1</a> <a class="idx" href="thutil.html#idx:tdebug1:1659">8.5.1</a></dd>
23382338 <dt><a class="idx" href="IO.html#tell/1">tell/1</a></dt>
23392339 <dd>
2340 <a class="idx" href="IO.html#idx:tell1:812">4.16</a> <a class="idx" href="IO.html#idx:tell1:820">4.16.1</a> <a class="idx" href="IO.html#idx:tell1:835">4.16.2</a> <a class="idx" href="IO.html#idx:tell1:893">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:898">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:901">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:903">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:907">4.16.3</a></dd>
2340 <a class="idx" href="IO.html#idx:tell1:812">4.16</a> <a class="idx" href="IO.html#idx:tell1:820">4.16.1</a> <a class="idx" href="IO.html#idx:tell1:893">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:898">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:901">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:903">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:907">4.16.3</a></dd>
23412341 <dt><a class="idx" href="IO.html#telling/1">telling/1</a></dt>
23422342 <dd>
23432343 <a class="idx" href="IO.html#idx:telling1:896">4.16.3</a> <a class="idx" href="IO.html#idx:telling1:899">4.16.3</a> <a class="idx" href="files.html#idx:telling1:1325">4.35</a></dd>
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.16</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.16</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
340340 <dt class="pubdef"><span class="pred-tag">[ISO]</span><a id="open/4"><strong>open</strong>(<var>+SrcDest,
341341 +Mode, -Stream, +Options</var>)</a></dt>
342342 <dd class="defbody">
343 ISO compliant predicate to open a stream. <var>SrcDest</var> is either
344 an atom specifying a file, or a term `<code>pipe(<var>Command</var>)</code>',
345 like <a id="idx:see1:834"></a><a class="pred" href="IO.html#see/1">see/1</a>
346 and <a id="idx:tell1:835"></a><a class="pred" href="IO.html#tell/1">tell/1</a>. <var>Mode</var>
347 is one of <code>read</code>, <code>write</code>,
348 <code>append</code> or <code>update</code>. Mode <code>append</code>
349 opens the file for writing, positioning the file pointer at the end.
350 Mode <code>update</code> opens the file for writing, positioning the
351 file pointer at the beginning of the file without truncating the file. <var>Stream</var>
352 is either a variable, in which case it is bound to an integer
353 identifying the stream, or an atom, in which case this atom will be the
354 stream identifier.<sup class="fn">61<span class="fn-text">New code
355 should use the <code>alias(Alias)</code> option for compatibility with
356 the ISO standard.</span></sup> The <var>Options</var> list can contain
357 the following options:
343 True when <var>SrcDest</var> can be opened in <var>Mode</var> and <var>Stream</var>
344 is an I/O stream to/from the object. <var>SrcDest</var> is normally the
345 name of a file, represented as an atom or string. <var>Mode</var> is one
346 of
347 <code>read</code>, <code>write</code>, <code>append</code> or <code>update</code>.
348 Mode
349 <code>append</code> opens the file for writing, positioning the file
350 pointer at the end. Mode <code>update</code> opens the file for writing,
351 positioning the file pointer at the beginning of the file without
352 truncating the file. <var>Stream</var> is either a variable, in which
353 case it is bound to an integer identifying the stream, or an atom, in
354 which case this atom will be the stream identifier.<sup class="fn">61<span class="fn-text">New
355 code should use the <code>alias(Alias)</code> option for compatibility
356 with the ISO standard.</span></sup>
357
358 <p>SWI-Prolog also allows <var>SrcDest</var> to be a term <code>pipe(Command)</code>.
359 In this form, <var>Command</var> is started as a child process and if
360 <var>Mode</var> is <code>write</code>, output written to <var>Stream</var>
361 is sent to the standard input of <var>Command</var>. Viso versa, if <var>Mode</var>
362 is
363 <code>read</code>, data written by <var>Command</var> to the standard
364 output may be read from <var>Stream</var>. On Unix systems, <var>Command</var>
365 is handed to popen() which hands it to the Unix shell. On Windows, <var>Command</var>
366 is executed directly. See also <a id="idx:processcreate3:834"></a><span class="pred-ext">process_create/3</span>
367 from <code>library(process)</code>.
368
369 <p>The following <var>Options</var> are recognised by <a id="idx:open4:835"></a><a class="pred" href="IO.html#open/4">open/4</a>:
358370
359371 <dl class="latex">
360372 <dt><strong>type</strong>(<var>Type</var>)</dt>
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.6</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.6</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.30</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.30</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.11</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.11</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section B.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section B.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.27</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.27</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 6.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 6.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.13</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.13</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section B.5</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section B.5</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.29</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.29</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.26</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.26</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.18</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.18</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.5</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.5</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.23</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.23</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.6</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.6</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section E.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section E.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.7</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.7</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
244244 </dd>
245245 </dl>
246246
247 <p>
248
249 <h4><a id="sec:A.7.1"><span class="sec-nr">A.7.1</span> <span class="sec-title">Introduction</span></a></h4>
247 <p><h4 id="sec:clpfd-intro"><a id="sec:A.7.1"><span class="sec-nr">A.7.1</span> <span class="sec-title">Introduction</span></a></h4>
248
249 <p><a id="sec:clpfd-intro"></a>
250250
251251 <p>Constraint programming is a declarative formalism that lets you
252252 describe conditions a solution must satisfy. This library provides
275275 }
276276 </pre>
277277
278 <p>
279
280 <h4><a id="sec:A.7.2"><span class="sec-nr">A.7.2</span> <span class="sec-title">Arithmetic
278 <p><h4 id="sec:cplfd-arith-constraints"><a id="sec:A.7.2"><span class="sec-nr">A.7.2</span> <span class="sec-title">Arithmetic
281279 constraints</span></a></h4>
280
281 <p><a id="sec:cplfd-arith-constraints"></a>
282282
283283 <p>A finite domain <i>arithmetic expression</i> is one of:
284284 <blockquote>
318318 </table>
319319 </blockquote>
320320
321 <p>
322
323 <h4><a id="sec:A.7.3"><span class="sec-nr">A.7.3</span> <span class="sec-title">Reification</span></a></h4>
321 <p><h4 id="sec:clpfd-reification"><a id="sec:A.7.3"><span class="sec-nr">A.7.3</span> <span class="sec-title">Reification</span></a></h4>
322
323 <p><a id="sec:clpfd-reification"></a>
324324
325325 <p>The constraints <a class="pred" href="clpfd.html#in/2">in/2</a>, <a class="pred" href="clpfd.html##=/2">#=/2</a>, <a class="pred" href="clpfd.html##\=/2">#\=/2</a>, <a class="pred" href="clpfd.html##</2">#&lt;/2</a>, <a class="pred" href="clpfd.html##>/2">#&gt;/2</a>, <a class="pred" href="clpfd.html##=</2">#=&lt;/2</a>,
326326 and <a class="pred" href="clpfd.html##>=/2">#&gt;=/2</a> can be
341341
342342 <p>The constraints of this table are reifiable as well.
343343
344 <p>
345
346 <h4><a id="sec:A.7.4"><span class="sec-nr">A.7.4</span> <span class="sec-title">Examples</span></a></h4>
344 <p><h4 id="sec:clpfd-examples"><a id="sec:A.7.4"><span class="sec-nr">A.7.4</span> <span class="sec-title">Examples</span></a></h4>
345
346 <p><a id="sec:clpfd-examples"></a>
347347
348348 <p>Here is an example session with a few queries and their answers:
349349
384384 declaratively equivalent to the original query, and in many cases the
385385 constraint solver has deduced additional domain restrictions.
386386
387 <p>
388
389 <h4><a id="sec:A.7.5"><span class="sec-nr">A.7.5</span> <span class="sec-title">Search</span></a></h4>
387 <p><h4 id="sec:clpfd-search"><a id="sec:A.7.5"><span class="sec-nr">A.7.5</span> <span class="sec-title">Search</span></a></h4>
388
389 <p><a id="sec:clpfd-search"></a>
390390
391391 <p>A common usage of this library is to first post the desired
392392 constraints among the variables of a model, and then to use enumeration
446446 general though, it is necessary to label all variables to obtain ground
447447 solutions.
448448
449 <p>
450
451 <h4><a id="sec:A.7.6"><span class="sec-nr">A.7.6</span> <span class="sec-title">Declarative
449 <p><h4 id="sec:clpfd-integer-arith"><a id="sec:A.7.6"><span class="sec-nr">A.7.6</span> <span class="sec-title">Declarative
452450 integer arithmetic</span></a></h4>
451
452 <p><a id="sec:clpfd-integer-arith"></a>
453453
454454 <p>You can also use CLP(FD) constraints as a more declarative
455455 alternative for ordinary integer arithmetic with <a class="pred" href="arith.html#is/2">is/2</a>, <a class="pred" href="arith.html#>/2">&gt;/2</a>
485485 Otherwise, the query <code>n_factorial(N, 0)</code> is the only
486486 non-terminating case of this kind.
487487
488 <p>
489
490 <h4><a id="sec:A.7.7"><span class="sec-nr">A.7.7</span> <span class="sec-title">Advanced
491 topics</span></a></h4>
488 <p><var>&lt;</var>### Advanced topics {#clpfd-advanced-topics}
492489
493490 <p>This library uses <a class="pred" href="consulting.html#goal_expansion/2">goal_expansion/2</a>
494491 to rewrite constraints at compilation time. The expansion's aim is to
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.8</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.8</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.7</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.7</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.10</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.10</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section E.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section E.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.8</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.8</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 6.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 6.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.9</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.9</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.13</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.13</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.16</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.16</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.13</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.13</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.10</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.10</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.38</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.38</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.9</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.9</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.12</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.12</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.14</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.14</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.8</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.8</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.15</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.15</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.5</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.5</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section B.6</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section B.6</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.10</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.10</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section B.7</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section B.7</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.35</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.35</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
520520 </pre>
521521
522522 <p>Temporary files created using this call are removed if the Prolog
523 process terminates. Calling <a id="idx:deletefile1:1322"></a><a class="pred" href="files.html#delete_file/1">delete_file/1</a>
524 using <var>FileName</var> removes the file and removes the entry from
525 the administration of files-to-be-deleted.</dd>
523 process terminates <em>gracefully</em>. Calling <a id="idx:deletefile1:1322"></a><a class="pred" href="files.html#delete_file/1">delete_file/1</a>
524 using
525 <var>FileName</var> removes the file and removes the entry from the
526 administration of files-to-be-deleted.</dd>
526527 <dt class="pubdef"><a id="make_directory/1"><strong>make_directory</strong>(<var>+Directory</var>)</a></dt>
527528 <dd class="defbody">
528529 Create a new directory (folder) on the filesystem. Raises an exception
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 10.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 10.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.6</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.6</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.11</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.11</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.31</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.31</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.8</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.8</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.6</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.6</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.7</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.7</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.32</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.32</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section F.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section F.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.14</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.14</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.5</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.5</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.11</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.11</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.7</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.7</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.5</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.5</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 6.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 6.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.6</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.6</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.7</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.7</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.12</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.12</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.8</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.8</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.9</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.9</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.5</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.5</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.9</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.9</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="contents" href="Contents.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="contents" href="Contents.html">
55 <link rel="index" href="DocIndex.html">
66 <link rel="summary" href="summary.html">
77 <link rel="next" href="Contents.html">
228228 <a class="nav" href="summary.html"><img src="info.gif" alt="Summary"></a>
229229 <a class="nav" href="Contents.html"><img src="next.gif" alt="Next"></a>
230230 </div>
231 <div class="title">SWI-Prolog 7.1.13 Reference Manual</div>
231 <div class="title">SWI-Prolog 7.1.16 Reference Manual</div>
232232 <div class="author"><a class="url" href="mailto:J.Wielemaker@vu.nl">Jan
233233 Wielemaker</a> <br>
234234 Department of Computer Science <br>
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section B.8</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section B.8</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.17</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.17</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
296296 <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.5"><span class="sec-nr">A.7.5</span> <span class="sec-title">Search</span></a></div>
297297 <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.6"><span class="sec-nr">A.7.6</span> <span class="sec-title">Declarative
298298 integer arithmetic</span></a></div>
299 <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.7"><span class="sec-nr">A.7.7</span> <span class="sec-title">Advanced
300 topics</span></a></div>
301299 <div class="toc-h2"><a class="sec" href="clpqr.html"><span class="sec-nr">A.8</span> <span class="sec-title">library(clpqr):
302300 Constraint Logic Programming over Rationals and Reals</span></a></div>
303301 <div class="toc-h3"><a class="sec" href="clpqr.html#sec:A.8.1"><span class="sec-nr">A.8.1</span> <span class="sec-title">Solver
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section F.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section F.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
475475 true when List1 and List2 are lists with the same number of elements.</td></tr>
476476 <tr><td><a class="pred" href="lists.html#select/3">select/3</a></td><td>Is
477477 true when List1, with Elem removed, results in List2.</td></tr>
478 <tr><td><a class="pred" href="lists.html#select/4">select/4</a></td><td>True
479 if XList is unifiable with YList apart a single element at the same
480 position that is unified with X in XList and with Y in YList.</td></tr>
478 <tr><td><a class="pred" href="lists.html#select/4">select/4</a></td><td>Select
479 from two lists at the same positon.</td></tr>
481480 <tr><td><a class="pred" href="lists.html#selectchk/3">selectchk/3</a></td><td>Semi-deterministic
482481 removal of first element in List that unifies with Elem.</td></tr>
483482 <tr><td><a class="pred" href="lists.html#selectchk/4">selectchk/4</a></td><td>Semi-deterministic
578577 and difference between two ordered sets.</td></tr>
579578 <tr><td><a class="pred" href="ordsets.html#ord_memberchk/2">ord_memberchk/2</a></td><td>True
580579 if Element is a member of OrdSet, compared using ==.</td></tr>
581 <tr><td><a class="pred" href="ordsets.html#ord_selectchk/3">ord_selectchk/3</a></td><td>Is
582 true when select(Item, Set1, Set2) and Set1, Set2 are both sorted lists
583 without duplicates.</td></tr>
580 <tr><td><a class="pred" href="ordsets.html#ord_selectchk/3">ord_selectchk/3</a></td><td>Selectchk/3,
581 specialised for ordered sets.</td></tr>
584582 <tr><td><a class="pred" href="ordsets.html#ord_seteq/2">ord_seteq/2</a></td><td>True
585583 if Set1 and Set2 have the same elements.</td></tr>
586584 <tr><td><a class="pred" href="ordsets.html#ord_subset/2">ord_subset/2</a></td><td>Is
714712 a lazy list representing the character codes in Stream.</td></tr>
715713 <tr><td><a class="pred" href="pio.html#lazy_list_character_count/3">lazy_list_character_count/3</a></td><td>True
716714 when CharCount is the current character count in the Lazy list.</td></tr>
717 <tr><td><a class="pred" href="pio.html#lazy_list_location/3">lazy_list_location/3</a></td><td>True
718 when Location is an (error) location term that represents the current
719 location in the DCG list.</td></tr>
715 <tr><td><a class="pred" href="pio.html#lazy_list_location/3">lazy_list_location/3</a></td><td>Determine
716 current (error) location in a lazy list.</td></tr>
720717 <tr><td><a class="pred" href="pio.html#syntax_error/3">syntax_error/3</a></td><td>Throw
721718 the syntax error Error at the current location of the input.</td></tr>
722719 </table>
10201017
10211018 <a id="sec:summary-lib-thread_pool"></a>
10221019 <table>
1023 <tr><td><a class="pred" href="threadpool.html#create_pool/1">create_pool/1</a></td><td>This
1024 hook is called if thread_create_in_pool/4 discovers that the thread pool
1025 does not exist.</td></tr>
1020 <tr><td><a class="pred" href="threadpool.html#create_pool/1">create_pool/1</a></td><td>Hook
1021 to create a thread pool lazily.</td></tr>
10261022 <tr><td><a class="pred" href="threadpool.html#current_thread_pool/1">current_thread_pool/1</a></td><td>True
10271023 if Name refers to a defined thread pool.</td></tr>
10281024 <tr><td><a class="pred" href="threadpool.html#thread_create_in_pool/4">thread_create_in_pool/4</a></td><td>Create
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.19</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.19</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.5</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.5</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.12</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.12</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
307307 <dt class="pubdef"><span class="pred-tag">[nondet]</span><a id="select/4"><strong>select</strong>(<var>?X,
308308 ?XList, ?Y, ?YList</var>)</a></dt>
309309 <dd class="defbody">
310 True if <var>XList</var> is unifiable with <var>YList</var> apart a
311 single element at the same position that is unified with <var>X</var> in <var>XList</var>
312 and with <var>Y</var> in
313 <var>YList</var>. A typical use for this predicate is to <i>replace</i>
310 Select from two lists at the same positon. True if <var>XList</var> is
311 unifiable with <var>YList</var> apart a single element at the same
312 position that is unified with <var>X</var> in <var>XList</var> and with <var>Y</var>
313 in <var>YList</var>. A typical use for this predicate is to <i>replace</i>
314314 an element, as shown in the example below. All possible substitutions
315315 are performed on backtracking.
316316
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section B.9</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section B.9</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.22</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.22</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.21</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.21</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.14</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.14</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section B.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section B.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.20</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.20</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.41</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.41</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.9</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.9</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.28</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.28</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.43</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.43</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.15</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.15</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.8</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.8</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.7</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.7</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.6</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.6</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.6</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.6</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.13</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.13</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.25</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.25</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section F.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section F.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.15</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.15</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.16</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.16</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
504504 an option in a cluttered interface amounts to commenting out the flags.
505505
506506 <p><a class="pred" href="optparse.html#opt_parse/5">opt_parse/5</a>
507 allows more control through an additional argument list. For instance, <code>opt_parse(ExampleOptsSpec, ExampleArgs, Opts, PositionalArgs, [output_functor(appl_config)])</code>
508 would instead return
507 allows more control through an additional argument list as shown in the
508 example below.
509509
510510 <pre class="code">
511 ?- opt_parse(ExampleOptsSpec, ExampleArgs, Opts, PositionalArgs,
512 [ output_functor(appl_config)
513 ]).
514
511515 Opts = [ appl_config(verbose, 2),
512516 , appl_config(label, 'REPORT')
513517 ...
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.17</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.17</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
367367 <dt class="pubdef"><span class="pred-tag">[semidet]</span><a id="ord_selectchk/3"><strong>ord_selectchk</strong>(<var>+Item,
368368 ?Set1, ?Set2</var>)</a></dt>
369369 <dd class="defbody">
370 Is true when <code>select(Item, Set1, Set2)</code> and <var>Set1</var>, <var>Set2</var>
370 Selectchk/3, specialised for ordered sets. Is true when
371 <code>select(Item, Set1, Set2)</code> and <var>Set1</var>, <var>Set2</var>
371372 are both sorted lists without duplicates. This implementation is only
372373 expected to work for <var>Item</var> ground and either <var>Set1</var>
373374 or <var>Set2</var> ground. The "chk" suffix is meant to remind you of <a class="pred" href="builtinlist.html#memberchk/2">memberchk/2</a>,
374375 which also expects its first argument to be ground. <code>ord_selectchk(X, S, T)</code>
375 =<var>&gt;</var> <code>ord_memberchk(X, S)</code> &amp; <code>\+</code> <code>ord_memberchk(X, T)</code>.
376 =<var>&gt;</var>
377 <code>ord_memberchk(X, S)</code> &amp; <code>\+</code> <code>ord_memberchk(X, T)</code>.
376378
377379 <dl class="tags">
378380 <dt class="tag">author</dt>
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section E.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section E.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.5</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.5</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.18</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.18</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.19</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.19</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
334334 </dd>
335335 <dt class="pubdef"><span class="pred-tag">[det]</span><a id="lazy_list_location/3"><strong>lazy_list_location</strong>(<var>-Location</var>)</a><code>//</code></dt>
336336 <dd class="defbody">
337 True when <var>Location</var> is an (error) location term that
338 represents the current location in the DCG list.
337 Determine current (error) location in a lazy list. True when
338 <var>Location</var> is an (error) location term that represents the
339 current location in the DCG list.
339340 <table class="arglist">
340341 <tr><td><var>Location</var> </td><td>is a term <code>file(Name, Line, LinePos, CharNo)</code>
341342 or
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.5</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.5</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section C.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section C.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.20</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.20</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section F.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section F.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.40</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.40</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.22</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.22</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.21</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.21</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.37</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.37</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 10.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 10.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 10.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 10.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.23</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.23</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.24</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.24</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section B.10</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section B.10</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.25</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.25</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.26</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.26</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.7</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.7</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.27</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.27</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.10</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.10</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.6</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.6</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.11</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.11</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.28</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.28</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section E.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section E.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.39</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.39</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
237237
238238 <a id="sec:status"></a>
239239
240 <p>This manual describes version 7.1.13 of SWI-Prolog. SWI-Prolog is
240 <p>This manual describes version 7.1.16 of SWI-Prolog. SWI-Prolog is
241241 widely considered to be a robust and scalable implementation of the
242242 Prolog language. It is widely used in education and research. In
243243 addition, it is in use for <var>24 &times; 7</var> mission critical
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.17</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.17</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.24</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.24</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.15</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.15</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section B.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section B.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.34</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.34</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.19</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.19</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.29</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.29</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
382382 </dd>
383383 <dt class="multidef"><span class="pred-tag">[semidet,multifile]</span><a id="create_pool/1"><strong>create_pool</strong>(<var>+PoolName</var>)</a></dt>
384384 <dd class="defbody">
385 This hook is called if <a class="pred" href="threadpool.html#thread_create_in_pool/4">thread_create_in_pool/4</a>
386 discovers that the thread pool does not exist. If the hook succeeds,
385 Hook to create a thread pool lazily. The hook is called if
387386 <a class="pred" href="threadpool.html#thread_create_in_pool/4">thread_create_in_pool/4</a>
387 discovers that the thread pool does not exist. If the hook succeeds, <a class="pred" href="threadpool.html#thread_create_in_pool/4">thread_create_in_pool/4</a>
388388 retries creating the thread. For example, we can use the following
389389 declaration to create threads in the pool <code>media</code>, which
390390 holds a maximum of 20 threads.
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.5</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.5</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.36</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.36</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.8</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.8</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section B.4</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section B.4</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.33</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.33</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.6</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.6</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.30</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.30</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.31</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.31</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 10.3</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 10.3</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.2</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.2</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.32</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.32</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.1</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.1</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.18</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.18</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section A.14</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section A.14</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
11
22 <html>
33 <head>
4 <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.7</title><link rel="home" href="index.html">
4 <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.7</title><link rel="home" href="index.html">
55 <link rel="contents" href="Contents.html">
66 <link rel="index" href="DocIndex.html">
77 <link rel="summary" href="summary.html">
32273227
32283228 \begin{description}
32293229 \predicate[ISO]{open}{4}{+SrcDest, +Mode, -Stream, +Options}
3230 ISO compliant predicate to open a stream. \arg{SrcDest} is either an
3231 atom specifying a file, or a term `\exam{pipe(\arg{Command})}',
3232 like see/1 and tell/1. \arg{Mode} is one of \const{read}, \const{write},
3233 \const{append} or \const{update}. Mode \const{append} opens the file for
3234 writing, positioning the file pointer at the end. Mode \const{update}
3235 opens the file for writing, positioning the file pointer at the
3236 beginning of the file without truncating the file. \arg{Stream} is
3237 either a variable, in which case it is bound to an integer identifying
3238 the stream, or an atom, in which case this atom will be the stream
3239 identifier.%
3230 True when \arg{SrcDest} can be opened in \arg{Mode} and \arg{Stream} is
3231 an I/O stream to/from the object. \arg{SrcDest} is normally the name of
3232 a file, represented as an atom or string. \arg{Mode} is one of
3233 \const{read}, \const{write}, \const{append} or \const{update}. Mode
3234 \const{append} opens the file for writing, positioning the file pointer
3235 at the end. Mode \const{update} opens the file for writing, positioning
3236 the file pointer at the beginning of the file without truncating the
3237 file. \arg{Stream} is either a variable, in which case it is bound to an
3238 integer identifying the stream, or an atom, in which case this atom will
3239 be the stream identifier.%
32403240 \footnote{New code should use the \term{alias}{Alias}
32413241 option for compatibility with the ISO standard.}
3242 The \arg{Options} list can contain the following options:
3242
3243 SWI-Prolog also allows \arg{SrcDest} to be a term \term{pipe}{Command}.
3244 In this form, \arg{Command} is started as a child process and if
3245 \arg{Mode} is \const{write}, output written to \arg{Stream} is sent to
3246 the standard input of \arg{Command}. Viso versa, if \arg{Mode} is
3247 \const{read}, data written by \arg{Command} to the standard output may
3248 be read from \arg{Stream}. On Unix systems, \arg{Command} is handed to
3249 popen() which hands it to the Unix shell. On Windows, \arg{Command} is
3250 executed directly. See also process_create/3 from \pllib{process}.
3251
3252 The following \arg{Options} are recognised by open/4:
32433253
32443254 \begin{description}
32453255 \termitem{type}{Type}
76337643 \end{code}
76347644
76357645 Temporary files created using this call are removed if the Prolog
7636 process terminates. Calling delete_file/1 using \arg{FileName} removes
7637 the file and removes the entry from the administration of
7638 files-to-be-deleted.
7646 process terminates \emph{gracefully}. Calling delete_file/1 using
7647 \arg{FileName} removes the file and removes the entry from the
7648 administration of files-to-be-deleted.
76397649
76407650 \predicate{make_directory}{1}{+Directory}
76417651 Create a new directory (folder) on the filesystem. Raises an exception
6262 <p>
6363 The traditional command line tools are included in the app. To access
6464 them from the <code>Terminal</code> application, add the directory
65 <code>/Applications/SWI-Prolog/Contents/MacOS</code> to
65 <code>/Applications/SWI-Prolog.app/Contents/MacOS</code> to
6666 <code>$PATH</code> (replace with the actual location if you installed
6767 the app in a different location).
6868 </p>
5858
5959 \newcommand{\vmajor}{6}
6060 \newcommand{\vminor}{6}
61 \newcommand{\vpatch}{5}
62 \newcommand{\vmonth}{April}
61 \newcommand{\vpatch}{6}
62 \newcommand{\vmonth}{May}
6363 \newcommand{\vyear}{2014}
6464
6565 \newcommand{\versionshort}{\vmajor.\vminor}
Binary diff not shown
Binary diff not shown
917917
918918 \begin{quote}
919919 \begin{tabular}{ll}
920 \const{as} & Max address space \\
920921 \const{cpu} & CPU time in seconds \\
921922 \const{fsize} & Maximum filesize \\
922923 \const{data} & max data size \\
599599 while the second sets the last-modified time to the current time.
600600
601601 <pre class="code">
602 ?- set_time_file(foo, [acess(Access)], []).
602 ?- set_time_file(foo, [access(Access)], []).
603603 ?- set_time_file(foo, [], [modified(now)]).
604604 </pre>
605605
617617 <dl class="tags">
618618 <dt class="tag">Errors</dt>
619619 <dd>
620 domain_error(link_type, <var>Type</var>) if the requested link-type is
620 <code>domain_error(link_type, Type)</code> if the requested link-type is
621621 unknown or not supported on the target OS.
622622 </dd>
623623 </dl>
637637 Path = '../../nice'.
638638 </pre>
639639
640 <table class="paramlist">
640 <table class="arglist">
641641 <tr valign="top"><td><var>All</var> </td><td>paths must be in canonical
642642 POSIX notation, i.e., using / to separate segments in the path. See
643643 <span class="pred-ext">prolog_to_os_filename/2</span>. </td></tr>
657657 ?File, +Path</var>)</a></dt>
658658 <dd class="defbody">
659659 True when <var>Path</var> is the full path-name for <var>File</var> in
660 Dir. This is comparable to atom_concat(<var>Directory</var>, <var>File</var>, <var>Path</var>),
660 Dir. This is comparable to <code>atom_concat(Directory, File, Path)</code>,
661661 but it ensures there is exactly one / between the two parts. Notes:
662662
663663 <p>
25502550 The defined resources are:
25512551 <blockquote>
25522552 <table border="0" frame="void" rules="groups">
2553 <tr valign="top"><td><code>as</code> </td><td>Max address space </td></tr>
25532554 <tr valign="top"><td><code>cpu</code> </td><td>CPU time in seconds </td></tr>
25542555 <tr valign="top"><td><code>fsize</code> </td><td>Maximum filesize </td></tr>
25552556 <tr valign="top"><td><code>data</code> </td><td>max data size </td></tr>
Binary diff not shown
9797 salt[2] = '\0';
9898
9999 LOCK();
100 s2 = crypt(pw, salt);
101 rval = (strcmp(s2, e) == 0 ? TRUE : FALSE);
100 rval = ( (s2 = crypt(pw, salt)) &&
101 strcmp(s2, e) == 0
102 );
102103 UNLOCK();
103104
104105 return rval;
22 Author: Jan Wielemaker
33 E-mail: J.Wielemaker@cs.vu.nl
44 WWW: http://www.swi-prolog.org
5 Copyright (C): 2002-2010, University of Amsterdam
5 Copyright (C): 2002-2014, University of Amsterdam
66 Vu University Amsterdam
77
88 This program is free software; you can redistribute it and/or
8080 % current time.
8181 %
8282 % ==
83 % ?- set_time_file(foo, [acess(Access)], []).
83 % ?- set_time_file(foo, [access(Access)], []).
8484 % ?- set_time_file(foo, [], [modified(now)]).
8585 % ==
8686
6969 else if ( strcmp(s, "rss") == 0 )
7070 resource = RLIMIT_RSS;
7171 #endif
72 #ifdef RLIMIT_AS
73 else if ( strcmp(s, "as") == 0 )
74 resource = RLIMIT_AS;
75 #endif
7276 #ifdef RLIMIT_MEMLOCK
7377 else if ( strcmp(s, "memlock") == 0 )
7478 resource = RLIMIT_MEMLOCK;
102106 if ( PL_get_int64(new, &n) )
103107 {
104108 set:
105 if ( rlim.rlim_cur != (unsigned long) n )
109 if ( rlim.rlim_cur != (rlim_t) n )
106110 { rlim.rlim_cur = n;
107111 if ( !setrlimit(resource, &rlim) == 0 )
108112 return pl_error("rlimit", 3, NULL, ERR_ERRNO, errno, "set", "resource_limit", what);
Binary diff not shown
1515 EXAMPLES= demo_body.pl demo_client.pl demo_threads.pl demo_xpce.pl \
1616 calc.pl demo_files.pl demo_pwp.pl demo_openid.pl \
1717 demo_daemon.pl
18 EXAMPLEEXE= demo_inetd debian-init-script
18 EXAMPLEEXE= demo_inetd linux-init-script
1919 XPCEPL= http_image.pl
2525 Demo script to run the SWI-Prolog HTTP server as a Unix
2626 service.
2727
28 $ debian-init-script :
29 /etc/init.d script for Debian based Unix system. Must be
30 configured.
28 $ linux-init-script :
29 /etc/init.d script for Debian and Redhat based Unix systems.
30 Must be configured.
3131
3232 ---+ Session management demo:
3333
+0
-121
packages/http/examples/debian-init-script less more
0 #!/bin/sh
1 ### BEGIN INIT INFO
2 # Provides: swi-httpd
3 # Required-Start: $local_fs $remote_fs $network $syslog $named
4 # Required-Stop: $local_fs $remote_fs $network $syslog $named
5 # Default-Start: 2 3 4 5
6 # Default-Stop: 0 1 6
7 # X-Interactive: true
8 # Short-Description: Start/stop SWI-Prolog web server
9 ### END INIT INFO
10
11 # Installation
12 #
13 # 1. Copy this file to /etc/init.d/<server>
14 # 2. Edit the Configuration section below
15 # 3. Run
16 # % update-rc.d <server> defaults
17 # % /etc/init.d/<server> start
18
19 # Configuration section
20 #
21 SWIPL=/usr/bin/swipl
22 DIR=/srv/swipl-httpd
23 SCRIPT=daemon.pl
24 USER=www
25 PORT=80
26 DAEMONARGS=
27
28 # Uncomment to only listen for connections from localhost
29 # DAEMONARGS="$DAEMONARGS --ip=localhost"
30
31 HTTPID=swipl-httpd-$PORT
32 PIDFILE=/var/run/$HTTPID.pid
33 SYSLOG=$HTTPID
34
35 # End of normal configuration
36
37 . /lib/lsb/init-functions
38 test -f /etc/default/rcS && . /etc/default/rcS
39
40 DAEMONARGS="$DAEMONARGS --port=$PORT --user=$USER --fork"
41 if [ ! -z "$SYSLOG" ]; then DAEMONARGS="$DAEMONARGS --syslog=$SYSLOG"; fi
42 if [ ! -z "$PIDFILE" ]; then DAEMONARGS="$DAEMONARGS --pidfile=$PIDFILE"; fi
43
44 pidofserver()
45 { if [ -f "$PIDFILE" ]; then
46 cat "$PIDFILE"
47 else
48 ps aux | grep "[0-9] *$SWIPL.*--port=$PORT" 2>/dev/null | awk '{print $2}'
49 fi
50 }
51
52 running()
53 { if [ -z "$1" ]; then return 1; fi
54
55 if kill -0 $1 2> /dev/null; then
56 return 0
57 else
58 return 1
59 fi
60 }
61
62 waitserver()
63 { i=0;
64
65 while running $1; do
66 if [ $i = '60' ]; then
67 return 1;
68 else
69 if [ $i = '0' ]; then
70 echo -n " ... waiting "
71 else
72 echo -n "."
73 fi
74 i=$(($i+1))
75 sleep 1
76 fi
77 done
78 }
79
80 case $1 in
81 start)
82 log_daemon_msg "Starting web server" "$HTTPID"
83 if (cd $DIR && $SWIPL -q -s $SCRIPT -- $DAEMONARGS); then
84 log_end_msg 0
85 else
86 log_end_msg 1
87 fi
88 ;;
89 stop)
90 log_daemon_msg "Stopping web server" "$HTTPID"
91 PID=$(pidofserver)
92 kill $PID
93 if waitserver $PID; then
94 log_end_msg 0
95 else
96 kill -9 $PID
97 waitserver $PID
98 fi
99 ;;
100 restart)
101 $0 stop && $0 start
102 ;;
103 status)
104 PID=$(pidofserver)
105 if running "$PID"; then
106 echo "SWI-Prolog HTTP server is running (pid $PID)."
107 exit 0
108 else
109 echo "SWI-Prolog HTTP server is NOT running."
110 if [ -e $PIDFILE ]; then
111 exit 1
112 else
113 exit 3
114 fi
115 fi
116 ;;
117 *)
118 log_success_msg "Usage: /etc/init.d/swipl-httpd {start|stop|restart|status}"
119 exit 1
120 esac
0 #!/bin/sh
1 ### BEGIN INIT INFO
2 # Provides: swi-httpd
3 # Required-Start: $local_fs $remote_fs $network $syslog $named
4 # Required-Stop: $local_fs $remote_fs $network $syslog $named
5 # Default-Start: 2 3 4 5
6 # Default-Stop: 0 1 6
7 # X-Interactive: true
8 # Short-Description: Start/stop SWI-Prolog web server
9 ### END INIT INFO
10
11 # Installation
12 #
13 # 0. On Redhat/CentOS: yum install redhat-lsb
14 # 1. Copy this file to /etc/init.d/<server>
15 # 2. Edit the Configuration section below
16 # 3. Run
17 # % update-rc.d <server> defaults
18 # % /etc/init.d/<server> start
19
20 # Configuration section
21 #
22 SWIPL=/usr/bin/swipl
23 DIR=/srv/swipl-httpd
24 SCRIPT=daemon.pl
25 USER=www-data
26 PORT=80
27 DAEMONARGS=
28
29 # Uncomment to only listen for connections from localhost
30 # DAEMONARGS="$DAEMONARGS --ip=localhost"
31
32 HTTPID=swipl-httpd-$PORT
33 PIDFILE=/var/run/$HTTPID.pid
34 SYSLOG=$HTTPID
35
36 # End of normal configuration
37
38 . /lib/lsb/init-functions
39 test -f /etc/default/rcS && . /etc/default/rcS
40
41 DAEMONARGS="$DAEMONARGS --port=$PORT --user=$USER --fork"
42 if [ ! -z "$SYSLOG" ]; then DAEMONARGS="$DAEMONARGS --syslog=$SYSLOG"; fi
43 if [ ! -z "$PIDFILE" ]; then DAEMONARGS="$DAEMONARGS --pidfile=$PIDFILE"; fi
44
45 pidofserver()
46 { if [ -f "$PIDFILE" ]; then
47 cat "$PIDFILE"
48 else
49 ps aux | grep "[0-9] *$SWIPL.*--port=$PORT" 2>/dev/null | awk '{print $2}'
50 fi
51 }
52
53 running()
54 { if [ -z "$1" ]; then return 1; fi
55
56 if kill -0 $1 2> /dev/null; then
57 return 0
58 else
59 return 1
60 fi
61 }
62
63 waitserver()
64 { i=0;
65
66 while running $1; do
67 if [ $i = '60' ]; then
68 return 1;
69 else
70 if [ $i = '0' ]; then
71 echo -n " ... waiting "
72 else
73 echo -n "."
74 fi
75 i=$(($i+1))
76 sleep 1
77 fi
78 done
79 }
80
81 case $1 in
82 start)
83 MESSAGE="Starting web server $HTTPID"
84 if (cd $DIR && $SWIPL -q -s $SCRIPT -- $DAEMONARGS); then
85 log_success_msg $MESSAGE
86 else
87 log_failure_msg $MESSAGE
88 fi
89 ;;
90 stop)
91 MESSAGE="Stopping web server $HTTPID"
92 PID=$(pidofserver)
93 kill $PID
94 if waitserver $PID; then
95 log_success_msg $MESSAGE
96 else
97 kill -9 $PID
98 if waitserver $PID; then
99 log_success_msg $MESSAGE
100 else
101 log_failure_msg $MESSAGE
102 fi
103 fi
104 ;;
105 restart)
106 $0 stop && $0 start
107 ;;
108 status)
109 PID=$(pidofserver)
110 if running "$PID"; then
111 echo "SWI-Prolog HTTP server is running (pid $PID)."
112 exit 0
113 else
114 echo "SWI-Prolog HTTP server is NOT running."
115 if [ -e $PIDFILE ]; then
116 exit 1
117 else
118 exit 3
119 fi
120 fi
121 ;;
122 *)
123 log_success_msg "Usage: /etc/init.d/swipl-httpd {start|stop|restart|status}"
124 exit 1
125 esac
28862886 <dl class="tags">
28872887 <dt class="tag">See also</dt>
28882888 <dd>
2889 The file <var>&lt;</var>swi-home<var>&gt;</var>/doc/packages/examples/http/debian-init-script
2889 The file <var>&lt;</var>swi-home<var>&gt;</var>/doc/packages/examples/http/linux-init-script
28902890 provides a /etc/init.d script for controlling a server as a normal Unix
28912891 service.</dd>
28922892 <dt class="mtag">To be done</dt>
Binary diff not shown
8585
8686 @tbd Make it work with SSL
8787 @tbd Cleanup issues wrt. loading and initialization of xpce.
88 @see The file <swi-home>/doc/packages/examples/http/debian-init-script
88 @see The file <swi-home>/doc/packages/examples/http/linux-init-script
8989 provides a /etc/init.d script for controlling a server as a normal
9090 Unix service.
9191 */
674674 JPLLDFLAGS
675675 JPLCFLAGS
676676 JUNIT
677 JAVADOCFLAGS
677678 JAVALIBS
678679 JAVACFLAGS
679680 JAVA_HOME
23982399
23992400
24002401
2402
24012403 PLPKGDIR=${PLPKGDIR-..}
24022404
24032405 if test -z "$PLINCL"; then
48564858 JAVA_TEST=Test.java
48574859 CLASS_TEST=Test.class
48584860 cat << \EOF > $JAVA_TEST
4859 /* #line 4860 "configure" */
4861 /* #line 4862 "configure" */
48604862 public class Test {
48614863 }
48624864 EOF
50325034 if uudecode$EXEEXT Test.uue; then
50335035 ac_cv_prog_uudecode_base64=yes
50345036 else
5035 echo "configure: 5036: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
5037 echo "configure: 5038: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
50365038 echo "configure: failed file was:" >&5
50375039 cat Test.uue >&5
50385040 ac_cv_prog_uudecode_base64=no
51635165 JAVA_TEST=Test.java
51645166 CLASS_TEST=Test.class
51655167 cat << \EOF > $JAVA_TEST
5166 /* #line 5167 "configure" */
5168 /* #line 5169 "configure" */
51675169 public class Test {
51685170 }
51695171 EOF
51985200 CLASS_TEST=Test.class
51995201 TEST=Test
52005202 cat << \EOF > $JAVA_TEST
5201 /* [#]line 5202 "configure" */
5203 /* [#]line 5204 "configure" */
52025204 public class Test {
52035205 public static void main (String args[]) {
52045206 System.exit (0);
54285430 fi
54295431 test "x$JAVADOC" = x && as_fn_error $? "no acceptable javadoc generator found in \$PATH" "$LINENO" 5
54305432
5433
5434
5435 { $as_echo "$as_me:${as_lineno-$LINENO}: checking javadoc -Xdoclint..." >&5
5436 $as_echo "$as_me: checking javadoc -Xdoclint..." >&6;}
5437 if "$JAVADOC" -Xdoclint:none -help >/dev/null 2>/dev/null; then
5438 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
5439 $as_echo "yes" >&6; }
5440 JAVADOCFLAGS="-Xdoclint:none"
5441 else
5442 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5443 $as_echo "no" >&6; }
5444 fi
54315445
54325446 escape_space()
54335447 { sed -e "s/Program Files/Program-SPACE-Files/g" -e "s/ (x86)/SPACEX86/g"
66 AC_SUBST(JAVA_HOME)
77 AC_SUBST(JAVACFLAGS)
88 AC_SUBST(JAVALIBS)
9 AC_SUBST(JAVADOCFLAGS)
910 AC_SUBST(JUNIT)
1011 AC_SUBST(JPLCFLAGS)
1112 AC_SUBST(JPLLDFLAGS)
8384 AC_PROG_JAR(jar)
8485 AC_PROG_JAVADOC(javadoc)
8586
87 dnl Our javadoc is not strict, while javadoc v8 enforces this
88
89 AC_CHECKING(javadoc -Xdoclint)
90 if "$JAVADOC" -Xdoclint:none -help >/dev/null 2>/dev/null; then
91 AC_MSG_RESULT(yes)
92 JAVADOCFLAGS="-Xdoclint:none"
93 else
94 AC_MSG_RESULT(no)
95 fi
96
8697 escape_space()
8798 { sed -e "s/Program Files/Program-SPACE-Files/g" -e "s/ (x86)/SPACEX86/g"
8899 }
88 JAR=@JAR@
99 JUNIT=@JUNIT@
1010 JAVADOC=@JAVADOC@
11 JAVADOCFLAGS=@JAVADOCFLAGS@
1112 JPLJAR=../../jpl.jar
1213 TSTJAR=../../jpltest.jar
1314 JPLDOC=../../docs/java_api/javadoc
8182 endif
8283
8384 $(JPLDOC): $(JPLJAVA)
84 "$(JAVADOC)" -public -d $(JPLDOC) $(JPLJAVA)
85 "$(JAVADOC)" $(JAVADOCFLAGS) -public -d $(JPLDOC) $(JPLJAVA)
8586
8687 clean::
8788 rm -f *~ jpl/*.class jpl/test/*.class jpl/fli/*.class
Binary diff not shown
Binary diff not shown
0 <http://www.example.com/c/s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.example.com/c/Class> .
1 <http://www.example.com/c/s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.example.com/c/Class> .
2 <http://www.example.com/c/s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.example.com/c/Class> .
3 <http://www.example.com/c/s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.example.com/c/Class> .
4 <http://www.example.com/c> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.example.com/c/Class> .
0 @base <http://www.example.com/a/b> .
1 @prefix t: <../c/> .
2 @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
3
4 <../c/s> a t:Class .
5 <../../c/s> a t:Class .
6 <.././c/s> a t:Class .
7 <..//c/s> a t:Class .
8 </c> a t:Class .
9
272272
273273 q->type = Q_TRANSACTION;
274274 q->transaction = ti->queries.transaction;
275 q->reindex_gen = GEN_MAX; /* should not get this down */
275276
276277 if ( ss && ss != SNAPSHOT_ANONYMOUS )
277278 { int ss_tid = snapshot_thread(ss);
837838
838839 /* revert creation of new */
839840 if ( is_wr_transaction_gen(q, t->lifespan.born) )
840 { t->lifespan.died = GEN_PREHIST;
841 { t = deref_triple(db, t);
842 t->lifespan.died = GEN_PREHIST;
841843 erase_triple(db, t, q);
842844 }
843845 }
849851
850852 /* revert deletion of old */
851853 if ( is_wr_transaction_gen(q, t->lifespan.died) )
852 { t->lifespan.died = GEN_MAX;
854 { t = deref_triple(db, t);
855
856 t->lifespan.died = GEN_MAX;
853857 }
854858 }
855859
861865
862866 /* revert deletion of old */
863867 if ( is_wr_transaction_gen(q, to->lifespan.died) )
864 { to->lifespan.died = GEN_MAX;
868 { to = deref_triple(db, to);
869
870 to->lifespan.died = GEN_MAX;
865871 }
866872 /* revert creation of new */
867873 if ( is_wr_transaction_gen(q, tn->lifespan.born) &&
868874 tn->lifespan.died == gen_max )
869 { tn->lifespan.died = GEN_PREHIST;
875 { tn = deref_triple(db, tn);
876 tn->lifespan.died = GEN_PREHIST;
870877 erase_triple(db, tn, q);
871878 }
872879 }
175175
176176 static inline triple *
177177 deref_triple(rdf_db *db, triple *t)
178 { while(t->reindexed)
179 t = fetch_triple(db, t->reindexed);
178 { SECURE(int times = 32);
179
180 while(t->reindexed)
181 { t = fetch_triple(db, t->reindexed);
182 SECURE(if ( --times == 0 ) assert(0));
183 }
180184
181185 return t;
182186 }
7373 static functor_t FUNCTOR_resources1;
7474 static functor_t FUNCTOR_predicates1;
7575 static functor_t FUNCTOR_duplicates1;
76 static functor_t FUNCTOR_lingering1;
7677 static functor_t FUNCTOR_literals1;
7778 static functor_t FUNCTOR_subject1;
7879 static functor_t FUNCTOR_predicate1;
172173 static predicate_cloud *new_predicate_cloud(rdf_db *db,
173174 predicate **p, size_t count);
174175 static int unify_literal(term_t lit, literal *l);
176 static int free_literal(rdf_db *db, literal *lit);
175177 static int check_predicate_cloud(predicate_cloud *c);
176178 static void invalidate_is_leaf(predicate *p, query *q, int add);
177179 static void create_triple_hashes(rdf_db *db, int count, int *ic);
946948 }
947949 }
948950
949 static void
950 finalize_triple(void *data, void *client)
951 { unregister_triple(client, data);
952 }
953
954951 static triple *
955952 triple_follow_hash(rdf_db *db, triple *t, int icol)
956953 { triple_id nid = t->tp.next[icol];
970967 #define T_ID(t) (t)
971968
972969 #endif /*COMPACT*/
970
971 static void
972 finalize_triple(void *data, void *client)
973 { triple *t = data;
974 rdf_db *db = client;
975
976 if ( !db->resetting )
977 { unlock_atoms(db, t);
978 if ( t->object_is_literal && t->object.literal )
979 free_literal(db, t->object.literal);
980 #ifdef COMPACT
981 unregister_triple(db, t);
982 #endif
983 }
984 SECURE(memset(t, 0, sizeof(*t)));
985 TMAGIC(t, T_FREED);
986 ATOMIC_SUB(&db->lingering, 1);
987 }
973988
974989
975990 /*******************************
31453160 static void
31463161 unalloc_triple(rdf_db *db, triple *t, int linger)
31473162 { if ( t )
3148 { assert(t->atoms_locked == FALSE);
3149
3150 if ( linger )
3151 {
3163 { if ( linger )
3164 { TMAGIC(t, T_LINGERING);
31523165 #ifdef COMPACT
31533166 if ( t->id != TRIPLE_NO_ID )
3167 #endif
31543168 deferred_finalize(&db->defer_triples, t,
31553169 finalize_triple, db);
3156 #else
3157 deferred_free(&db->defer_triples, t);
3158 #endif
3170 ATOMIC_ADD(&db->lingering, 1);
31593171 } else
3160 { free(t);
3172 { unlock_atoms(db, t);
3173 if ( t->object_is_literal && t->object.literal )
3174 free_literal(db, t->object.literal);
3175 SECURE(memset(t, 0, sizeof(*t)));
3176 TMAGIC(t, T_FREED);
3177 free(t);
31613178 }
31623179 }
31633180 }
33823399 of triples that will be added. This is used to guess the hash
33833400 requirements of the table and thus avoid duplicating triples in on
33843401 optimize_triple_hashes().
3385
3386 TBD: Can we omit linking all the hashes when adding triples? Then we
3387 need to materialize on the first query.
33883402 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
33893403
33903404 void
34203434 break;
34213435 case BY_O:
34223436 case BY_PO:
3423 while ( SCALE(db->resources.hash.count + db->literals.count) >
3424 sizenow<<resize )
3437 { size_t setsize = SCALE(db->resources.hash.count + db->literals.count);
3438
3439 if ( setsize > triples )
3440 setsize = triples;
3441 while ( setsize > sizenow<<resize )
34253442 resize++;
34263443 break;
3444 }
34273445 case BY_SPO:
34283446 while ( (extra+triples)/spo->avg_chain_len > sizenow<<resize )
34293447 resize++;
35713589 { triple *t2 = alloc_triple();
35723590
35733591 *t2 = *t;
3592 t2->has_reindex_prev = TRUE;
35743593 memset(&t2->tp, 0, sizeof(t2->tp));
35753594 register_triple(db, t2);
35763595 simpleMutexLock(&db->queries.write.lock);
35773596 link_triple_hash(db, t2);
3597 TMAGIC(t2, T_CHAINED2);
35783598 t->reindexed = T_ID(t2);
3599 TMAGIC(t, T_REINDEXED);
35793600 t->lifespan.died = db->reindexed++;
35803601 if ( t2->object_is_literal ) /* do not deallocate lit twice */
35813602 { simpleMutexLock(&db->locks.literal);
37173738
37183739 static inline int
37193740 is_garbage_triple(triple *t, gen_t old_query_gen, gen_t old_reindex_gen)
3720 { if ( t->reindexed ) /* Safe: reindex_triple() */
3741 { if ( t->has_reindex_prev )
3742 return FALSE;
3743
3744 if ( t->reindexed ) /* Safe: reindex_triple() */
37213745 return t->lifespan.died < old_reindex_gen; /* is also part of GC */
37223746 else
37233747 return t->lifespan.died < old_query_gen;
37553779 });
37563780
37573781 if ( t->reindexed )
3782 { triple *t2 = fetch_triple(db, t->reindexed);
3783
37583784 db->gc.reclaimed_reindexed++;
3759 else
3785 t2->has_reindex_prev = FALSE;
3786 } else
37603787 db->gc.reclaimed_triples++;
37613788
37623789 simpleMutexUnlock(&db->queries.write.lock);
40724099
40734100 static void
40744101 free_triple(rdf_db *db, triple *t, int linger)
4075 { unlock_atoms(db, t);
4076
4077 if ( t->object_is_literal && t->object.literal )
4078 { assert(!linger || t->object.literal->shared);
4079 free_literal(db, t->object.literal);
4080 }
4081 if ( t->match == STR_MATCH_BETWEEN )
4102 { if ( t->match == STR_MATCH_BETWEEN )
40824103 free_literal_value(db, &t->tp.end);
40834104
4084 if ( t->allocated )
4085 unalloc_triple(db, t, linger);
4105 if ( !t->allocated )
4106 { unlock_atoms(db, t);
4107 if ( t->object_is_literal && t->object.literal )
4108 free_literal(db, t->object.literal);
4109 } else
4110 { unalloc_triple(db, t, linger);
4111 }
40864112 }
40874113
40884114
43324358 { assert(!t->linked);
43334359
43344360 link_triple_hash(db, t);
4361 TMAGIC(t, T_CHAINED1);
43354362 add_triple_consequences(db, t, q);
43364363 db->created++;
43374364
61456172 !t->object_is_literal )
61466173 { atom_t o = t->object.resource;
61476174
6148 t->object.resource = ID_ATOM(t->subject_id);
6149 t->subject_id = ATOM_ID(o);
6175 t->object.resource = t->subject_id ? ID_ATOM(t->subject_id) : 0;
6176 t->subject_id = o ? ATOM_ID(o) : 0;
61506177
61516178 if ( t->predicate.r )
61526179 t->predicate.r = i;
64376464 db->maintain_duplicates = FALSE;
64386465
64396466 if ( db->duplicates )
6440 { for(t=fetch_triple(db, db->by_none.head);
6467 { enter_scan(&db->defer_all);
6468 for(t=fetch_triple(db, db->by_none.head);
64416469 t;
64426470 t=triple_follow_hash(db, t, ICOL(BY_NONE)))
64436471 { if ( ++count % 10240 == 0 &&
64446472 (PL_handle_signals() < 0 || db->resetting) )
64456473
6446 { simpleMutexUnlock(&db->locks.duplicates);
6474 { exit_scan(&db->defer_all);
6475 simpleMutexUnlock(&db->locks.duplicates);
64476476 return FALSE; /* aborted */
64486477 }
64496478 t->is_duplicate = FALSE;
64506479 }
6480 exit_scan(&db->defer_all);
64516481
64526482 db->duplicates = 0;
64536483 }
64546484
64556485 db->maintain_duplicates = TRUE;
64566486
6487 enter_scan(&db->defer_all);
64576488 for(t=fetch_triple(db, db->by_none.head);
64586489 t;
64596490 t=triple_follow_hash(db, t, ICOL(BY_NONE)))
64606491 { if ( ++count % 1024 == 0 &&
64616492 PL_handle_signals() < 0 )
6462 { db->maintain_duplicates = FALSE; /* no point anymore */
6493 { exit_scan(&db->defer_all);
6494 db->maintain_duplicates = FALSE; /* no point anymore */
64636495 simpleMutexUnlock(&db->locks.duplicates);
64646496 return FALSE;
64656497 }
64666498 mark_duplicate(db, t, NULL);
64676499 }
6500 exit_scan(&db->defer_all);
64686501
64696502 db->duplicates_up_to_date = TRUE;
64706503 simpleMutexUnlock(&db->locks.duplicates);
78667899 ep->i = 0;
78677900 ep->p = NULL;
78687901 goto next;
7869 } else if ( PL_get_atom_ex(name, &a) )
7870 { predicate *p;
7871
7872 if ( (p=existing_predicate(db, a)) )
7873 return TRUE;
7902 } else if ( PL_get_atom(name, &a) )
7903 { return existing_predicate(db, a) != NULL;
7904 } else if ( PL_is_functor(name, FUNCTOR_literal1) )
7905 { return FALSE;
78747906 }
7875 return FALSE;
7907
7908 return PL_type_error("atom", name);
78767909 case PL_REDO:
78777910 ep = PL_foreign_context_address(h);
78787911 goto next;
84988531 { if ( db->duplicates_up_to_date == FALSE )
84998532 return FALSE;
85008533 v = db->duplicates;
8534 } else if ( f == FUNCTOR_lingering1 )
8535 { v = db->lingering;
85018536 } else if ( f == FUNCTOR_literals1 )
85028537 { v = db->literals.count;
85038538 } else if ( f == FUNCTOR_triples2 && PL_is_functor(key, f) )
88178852 reset_db(rdf_db *db)
88188853 { int rc;
88198854
8820 db->resetting = TRUE;
8821
88228855 suspend_gc(db);
88238856 simpleMutexLock(&db->locks.duplicates);
88248857 erase_snapshots(db);
88378870
88388871 simpleMutexUnlock(&db->locks.duplicates);
88398872 resume_gc(db);
8840 db->resetting = FALSE;
88418873
88428874 return rc;
88438875 }
88568888 static foreign_t
88578889 rdf_reset_db(void)
88588890 { rdf_db *db = rdf_current_db();
8859 query *q = open_query(db);
8891 query *q;
88608892 int rc;
8893
8894 db->resetting = TRUE;
8895 q = open_query(db);
88618896
88628897 if ( q->depth > 0 || q->transaction )
88638898 { close_query(q);
88708905
88718906 rc = reset_db(db);
88728907 close_query(q);
8908 db->resetting = FALSE;
88738909
88748910 return rc;
88758911 }
90289064 MKFUNCTOR(literal, 2);
90299065 MKFUNCTOR(searched_nodes, 1);
90309066 MKFUNCTOR(duplicates, 1);
9067 MKFUNCTOR(lingering, 1);
90319068 MKFUNCTOR(literals, 1);
90329069 MKFUNCTOR(symmetric, 1);
90339070 MKFUNCTOR(transitive, 1);
90889125 keys[i++] = FUNCTOR_predicates1;
90899126 keys[i++] = FUNCTOR_searched_nodes1;
90909127 keys[i++] = FUNCTOR_duplicates1;
9128 keys[i++] = FUNCTOR_lingering1;
90919129 keys[i++] = FUNCTOR_literals1;
90929130 keys[i++] = FUNCTOR_triples2;
90939131 keys[i++] = FUNCTOR_gc4;
91639201 rdf_checks_literal_references, 0);
91649202 #endif
91659203
9166 #ifdef O_SECURE
9167 PL_register_foreign("rdf_dump_literals", 0, dump_literals, 0);
9168 PL_register_foreign("rdf_check_literals", 0, check_transitivity, 0);
9169 #endif
9170
91719204 PL_register_foreign("lang_matches", 2, lang_matches, 0);
91729205
91739206 install_atom_map();
285285 typedef unsigned int triple_id; /* Triple identifier */
286286 #endif
287287
288 #ifdef TRIPLE_MAGIC
289
290 typedef enum
291 { T_CHAINED1 = TRIPLE_MAGIC, /* Added to hash-chains */
292 T_CHAINED2, /* Added to hash as reindexed */
293 T_REINDEXED, /* Reindexed (waiting for GC) */
294 T_LINGERING, /* waiting to be freed */
295 T_FREED /* freed */
296 } triple_status;
297
298 #define TMAGIC(t, s) (t->magic = s)
299
300 #else
301
302 #define TMAGIC(t, s) (void)0
303
304 #endif
305
288306 typedef struct triple
289307 { lifespan lifespan; /* Start and end generation */
290308 atom_id subject_id;
326344 unsigned loaded : 1; /* for EV_ASSERT_LOAD */
327345 unsigned erased : 1; /* Consistency of erased */
328346 unsigned lingering : 1; /* Deleted; waiting for GC */
347 unsigned has_reindex_prev : 1; /* some ->reindexed points to me */
329348 /* Total: 32 */
349 #ifdef TRIPLE_MAGIC
350 triple_status magic;
351 #endif
330352 } triple;
331353
332354
423445 #endif
424446 size_t created; /* #triples created */
425447 size_t erased; /* #triples erased */
426 gen_t reindexed; /* #triples reindexed (gc_hash_chain) */
448 size_t reindexed; /* #triples reindexed (gc_hash_chain) */
449 size_t lingering; /* #triples lingering to be freed */
427450 size_t indexed[16]; /* Count calls (2**4 possible indices) */
428451 resource_db resources; /* admin of used resources */
429452 pred_hash predicates; /* Predicate table */
11911191 rdf_statistics_(triples(Count)).
11921192 rdf_statistics(duplicates(Count)) :-
11931193 rdf_statistics_(duplicates(Count)).
1194 rdf_statistics(lingering(Count)) :-
1195 rdf_statistics_(lingering(Count)).
11941196 rdf_statistics(resources(Count)) :-
11951197 rdf_statistics_(resources(Count)).
11961198 rdf_statistics(properties(Count)) :-
2222
2323 #include "rdf_db.h"
2424 #include "murmur.h"
25
26 static functor_t FUNCTOR_literal1;
2527
2628 static int
2729 init_resource_hash(resource_db *rdb)
253255 state->current = NULL;
254256 state->current_entry = -1;
255257 break;
256 } else if ( PL_get_atom_ex(r, &name) )
258 } else if ( PL_get_atom(r, &name) )
257259 { resource *r;
258260
259261 if ( (r=existing_resource(&db->resources, name)) &&
261263 )
262264 return TRUE;
263265 return FALSE;
264 }
265
266 return FALSE;
266 } else if ( PL_is_functor(r, FUNCTOR_literal1) )
267 return FALSE;
268
269 return PL_type_error("atom", r);
267270 }
268271 case PL_REDO:
269272 state = PL_foreign_context_address(h);
317320 }
318321 #endif
319322
323 #define MKFUNCTOR(n, a) \
324 FUNCTOR_ ## n ## a = PL_new_functor(PL_new_atom(#n), a)
320325 #define NDET PL_FA_NONDETERMINISTIC
321326
322327 int
323328 register_resource_predicates(void)
324 { PL_register_foreign("rdf_resource", 1, rdf_resource, NDET);
329 { MKFUNCTOR(literal, 1);
330
331 PL_register_foreign("rdf_resource", 1, rdf_resource, NDET);
325332 #ifdef RDF_LOOKUP_RESOURCE
326333 PL_register_foreign("rdf_lookup_resource", 1, rdf_lookup_resource, 0);
327334 #endif
29152915 infrastructure.
29162916
29172917 <dl class="latex">
2918 <dt class="pubdef"><a name="rdf_load_turtle/3"><strong>rdf_load_turtle</strong>(<var>+Input,
2919 -Triples, +Options</var>)</a></dt>
2920 <dd class="defbody">
2921
2922 <dl class="tags">
2923 <dt class="tag">deprecated</dt>
2924 <dd>
2925 Use <a class="pred" href="#rdf_read_turtle/3">rdf_read_turtle/3</a>
2926 </dd>
2927 </dl>
2928
2929 </dd>
29182930 <dt class="pubdef"><span class="pred-tag">[det]</span><a name="rdf_process_turtle/3"><strong>rdf_process_turtle</strong>(<var>+Input,
29192931 :OnObject, +Options</var>)</a></dt>
29202932 <dd class="defbody">
29963008 <code>https</code> or <code>file</code> url or a filename specification
29973009 as accepted by <span class="pred-ext">absolute_file_name/3</span>. </td></tr>
29983010 </table>
2999 </dd>
3000 <dt class="pubdef"><a name="rdf_load_turtle/3"><strong>rdf_load_turtle</strong>(<var>+Input,
3001 -Triples, +Options</var>)</a></dt>
3002 <dd class="defbody">
3003
3004 <dl class="tags">
3005 <dt class="tag">deprecated</dt>
3006 <dd>
3007 Use <a class="pred" href="#rdf_read_turtle/3">rdf_read_turtle/3</a>
3008 </dd>
3009 </dl>
3010
30113011 </dd>
30123012 </dl>
30133013
Binary diff not shown
3636 :- use_module(library(xsdp_types)).
3737 :- use_module(library(lists)).
3838 :- use_module(library(plunit)).
39 :- use_module(library(debug)).
3940
4041 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
4142 RDF-DB test file. A test is a clause of the form:
319320 lshare(2) :-
320321 rdf_assert(a,b,literal(aap)),
321322 rdf_retractall(a,b,literal(aap)),
322 rdf_gc,
323 rdf_statistics(literals(X)),
324 expect(X == 0).
323 assertion(no_literals).
325324 lshare(3) :-
326325 rdf_assert(a,b,literal(aap)),
327326 rdf_assert(a,c,literal(aap)), % shared
331330 rdf_assert(a,c,literal(aap)),
332331 rdf_retractall(a,b,literal(aap)),
333332 rdf_retractall(a,c,literal(aap)),
334 rdf_gc,
335 rdf_statistics(literals(X)),
336 expect(X == 0).
333 assertion(no_literals).
337334 lshare(5) :-
338335 rdf_assert(a,b,literal(aap), g1),
339336 rdf_assert(a,b,literal(aap), g2),
340337 rdf_statistics(literals(X1)),
341 expect(X1 == 1),
338 assertion(X1 == 1),
342339 rdf_retractall(a,b,literal(aap)),
340 assertion(no_literals).
341
342 %% no_literals
343 %
344 % We may have to wait a little because the automatic garbage
345 % collector did the work asynchronously and we still get the old
346 % value.
347
348 no_literals :-
343349 rdf_gc,
344 rdf_statistics(literals(X)),
345 expect(X == 0).
346
347 expect(Goal) :-
348 Goal, !.
349 expect(Goal) :-
350 print_message(error, format('FALSE: ~q', [Goal])),
351 backtrace(3),
352 fail.
350 ( rdf_statistics(literals(0))
351 -> true
352 ; %writeln('Retrying'),
353 between(1, 10, _),
354 sleep(0.01),
355 rdf_statistics(literals(0))
356 ).
353357
354358
355359 /*******************************
656660 rdf_transaction(rdf_assert(x, a, y, db)),
657661 rdf_monitor(do_monitor, [-all]),
658662 findall(rdf(S,P,O), rdf(S,P,O), DB),
659 expect(DB == [ rdf(x, a, y),
660 rdf(y, ia, x)
661 ]),
663 assertion(DB == [ rdf(x, a, y),
664 rdf(y, ia, x)
665 ]),
662666 rdf_monitor(do_monitor, []),
663667 rdf_transaction(rdf_retractall(x, a, y, db)),
664668 rdf_monitor(do_monitor, [-all]),
665 expect(\+rdf(_,_,_)).
669 assertion(\+rdf(_,_,_)).
666670
667671
668672
695699 P == inverse_of(p).
696700
697701
702 /*******************************
703 * INVERSE *
704 *******************************/
705
706 inverse(1) :-
707 rdf_assert(s, p, o),
708 rdf_set_predicate(p, inverse_of(ip)),
709 findall(O-S, rdf_has(O, ip, S), List),
710 List == [o-s].
698711
699712
700713 /*******************************
828841 rdf_assert(s,p,o),
829842 rdf_retractall(s,p,o),
830843 rdf_statistics(triples(Count)),
831 expect(Count == 0).
844 assertion(Count == 0).
832845 delete(2) :-
833846 rdf_assert(s,p,o),
834847 rdf_transaction(rdf_retractall(s,p,o)),
835848 rdf_statistics(triples(Count)),
836 expect(Count == 0).
849 assertion(Count == 0).
837850 delete(3) :-
838851 rdf_transaction(rdf_assert(s,p,o)),
839852 rdf_transaction(rdf_retractall(s,p,o)),
840853 rdf_transaction(rdf_assert(s,p,o)),
841854 rdf_statistics(triples(Count)),
842 expect(Count == 1).
855 assertion(Count == 1).
843856
844857
845858 /*******************************
853866 rdf_statistics(triples(T1)),
854867 rdf_load(dc),
855868 rdf_statistics(triples(T2)),
856 expect(T0 == T2),
857 expect(T1 == 0).
869 assertion(T0 == T2),
870 assertion(T1 == 0).
858871
859872 /*******************************
860873 * SCRIPTS *
944957 testset(rdf_retractall).
945958 testset(monitor).
946959 testset(subproperty).
960 testset(inverse).
947961 testset(ptree).
948962 testset(reachable).
949963 testset(duplicates).
202202 { wchar_t *base_uri; /* Base URI for <> */
203203 size_t base_uri_len; /* Length of base uri */
204204 size_t base_uri_base_len; /* Length upto last / */
205 size_t base_uri_host_len; /* Length upto start of path */
205206 wchar_t *empty_prefix; /* Empty :local */
206207 hash_map prefix_map; /* Prefix --> IRI */
207208 hash_map blank_node_map; /* Name --> resource */
652653
653654
654655 /*******************************
656 * CANONICAL RESOURCE *
657 *******************************/
658
659 #define MAX_SAVEP 100
660
661 #define EOP(c) ((c) == 0 || (c) == '#' || (c) == '?')
662
663 static void
664 cpAfterPath(wchar_t *out, wchar_t *in)
665 { while (*in )
666 *out++ = *in++;
667 *out = EOS;
668 }
669
670
671 static wchar_t *
672 url_skip_to_path(const wchar_t *in)
673 { while( *in && *in != ':' ) /* skip scheme */
674 in++;
675 if ( *in == ':' && in[1] == '/' && in[2] == '/' )
676 in += 3;
677 while( *in && *in != '/' ) /* skip authority */
678 in++;
679
680 return (wchar_t *)in;
681 }
682
683
684 static wchar_t *
685 canonicaliseResourcePath(wchar_t *path)
686 { wchar_t *in, *out, *start;
687 wchar_t *save_buf[MAX_SAVEP];
688 wchar_t **savep = save_buf;
689
690 in = url_skip_to_path(path);
691
692 if ( !in[0] )
693 return path;
694 out = start = in; /* start of path */
695
696 while( in[0] == '/' && in[1] == '.' && in[2] == '.' && in[3] == '/' )
697 in += 3;
698 while( in[0] == '.' && in[1] == '/' )
699 in += 2;
700 if ( in[0] == '/' )
701 *out++ = '/';
702
703 while(*in)
704 { if (*in == '/')
705 {
706 again:
707 if ( *in )
708 { while( in[1] == '/' ) /* delete multiple / */
709 in++;
710 if ( in[1] == '.' )
711 { if ( in[2] == '/' ) /* delete /./ */
712 { in += 2;
713 goto again;
714 }
715 if ( EOP(in[2]) ) /* delete trailing /. */
716 { cpAfterPath(out, in+2);
717 return path;
718 }
719 if ( in[2] == '.' && (in[3] == '/' || EOP(in[3])) )
720 { if ( savep > save_buf ) /* delete /foo/../ */
721 { out = *(--savep);
722 in += 3;
723 if ( EOP(in[0]) && out > start+1 )
724 { cpAfterPath(out-1, in); /* delete trailing / */
725 return path;
726 }
727 goto again;
728 } else if ( start[0] == '/' && out == start+1 )
729 { in += 3;
730 goto again;
731 }
732 }
733 }
734 }
735 if ( *in )
736 in++;
737 if ( out > path && out[-1] != '/' )
738 *out++ = '/';
739 if ( savep < &save_buf[MAX_SAVEP-1] )
740 *savep++ = out;
741 } else
742 *out++ = *in++;
743 }
744 *out++ = *in++;
745
746 return path;
747 }
748
749
750 /*******************************
655751 * SKIPPING *
656752 *******************************/
657753
9581054
9591055 if ( uri[0] == '#' ) /* relative to file */
9601056 plen = ts->base_uri_len;
1057 else if ( uri[0] == '/' ) /* relative to host */
1058 plen = ts->base_uri_host_len;
9611059 else
9621060 plen = ts->base_uri_base_len;
9631061
9761074
9771075 wcsncpy(name, ts->base_uri, plen);
9781076 wcscpy(name+plen, uri);
1077 canonicaliseResourcePath(name);
9791078
9801079 r->type = R_RESOURCE;
9811080 r->v.r.name = name;
11721271 s--)
11731272 ;
11741273 ts->base_uri_base_len = s-ts->base_uri;
1274 ts->base_uri_host_len = url_skip_to_path(ts->base_uri)-ts->base_uri;
11751275
11761276 return TRUE;
11771277 }
Binary diff not shown
19651965 pd->positions = FALSE;
19661966 else
19671967 return sgml2pl_error(ERR_DOMAIN, "positions", a);
1968 } else
1969 return sgml2pl_error(ERR_DOMAIN, "sgml_option", head);
1968 } /* else ignored option */
19701969 }
19711970 if ( !PL_get_nil(tail) )
19721971 return sgml2pl_error(ERR_TYPE, "list", tail);
306306 modifier(last-Expr, I, L, Value, Value) :- !, % last-Expr
307307 I =:= L-Expr.
308308 modifier(Function, _, _, In, Out) :-
309 xpath_function(Function), !,
309310 xpath_function(Function, In, Out).
310311 modifier(Function, _, _, In, Out) :-
311312 xpath_condition(Function, In),
332333 xpath_function(quote(Value), _, Value). % quote(Value)
333334
334335 xpath_function(self).
336 xpath_function(content).
335337 xpath_function(text).
336 xpath_function(content).
337338 xpath_function(normalize_space).
338339 xpath_function(number).
339340 xpath_function(@_).
341 xpath_function(quote(_)).
340342
341343
342344 xpath_condition(Left = Right, Value) :- !, % =
Binary diff not shown
Binary diff not shown
112112 # Sub-modules
113113 ################################################################
114114
115 if grep 'url *= *../packages/' .gitmodules 2>&1 >/dev/null; then
115 if grep 'url *= .*/packages/' .git/config 2>&1 >/dev/null; then
116116 printf "Updating git submodule references ..."
117117 git submodule sync
118118 echo "ok"
5454 /* PLVERSION: 10000 * <Major> + 100 * <Minor> + <Patch> */
5555
5656 #ifndef PLVERSION
57 #define PLVERSION 60605
57 #define PLVERSION 60606
5858 #endif
5959
6060 /*******************************
5757 test(attvar, true) :-
5858 dif(X, 3), % error(_) fails because subsumes_term does not deal with attvar
5959 catch(variant_sha1(x(a(X)), _), _, true).
60 test(float, fail) :-
61 variant_sha1(1.0, Hash),
62 variant_sha1(2.0, Hash).
6063
6164 v(_).
6265
1414 context_module(C).
1515
1616 m(qm).
17 me(1=qm).
1718 m2(qm2).
1819 g(A,qm(A)).
1920
5354 M:(G,true)@QC.
5455 test(localv, M-C == qm-qm) :-
5556 call((m(M),M:qm(C))).
57 test(localv, M-C == qm-qm) :-
58 call((me(1=M),M:qm(C))).
5659 test(local_argvar, M-C == qm-qm) :-
5760 call((m(M),M:(qm(C),qm(C)))).
5861 test(local_argvar, M-C == qm-qm) :-
94469446 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
94479447 $as_echo "no" >&6; }
94489448 fi fi fi
9449 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lunwind" >&5
9450 $as_echo_n "checking for main in -lunwind... " >&6; }
9451 if ${ac_cv_lib_unwind_main+:} false; then :
9452 $as_echo_n "(cached) " >&6
9453 else
9454 ac_check_lib_save_LIBS=$LIBS
9455 LIBS="-lunwind $LIBS"
9456 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9457 /* end confdefs.h. */
9458
9459
9460 int
9461 main ()
9462 {
9463 return main ();
9464 ;
9465 return 0;
9466 }
9467 _ACEOF
9468 if ac_fn_c_try_link "$LINENO"; then :
9469 ac_cv_lib_unwind_main=yes
9470 else
9471 ac_cv_lib_unwind_main=no
9472 fi
9473 rm -f core conftest.err conftest.$ac_objext \
9474 conftest$ac_exeext conftest.$ac_ext
9475 LIBS=$ac_check_lib_save_LIBS
9476 fi
9477 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_unwind_main" >&5
9478 $as_echo "$ac_cv_lib_unwind_main" >&6; }
9479 if test "x$ac_cv_lib_unwind_main" = xyes; then :
9480 check_unwind_h=yes
9481 fi
9482
9483 if test "$check_unwind_h" = yes; then
9484 ac_fn_c_check_header_mongrel "$LINENO" "libunwind.h" "ac_cv_header_libunwind_h" "$ac_includes_default"
9485 if test "x$ac_cv_header_libunwind_h" = xyes; then :
9486
9487 $as_echo "#define HAVE_LIBUNWIND 1" >>confdefs.h
9488
9489 LIBS="-lunwind $LIBS"
9490 fi
9491
9492
9493 fi
9494
94959449 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for backtrace_symbols in -lexecinfo" >&5
94969450 $as_echo_n "checking for backtrace_symbols in -lexecinfo... " >&6; }
94979451 if ${ac_cv_lib_execinfo_backtrace_symbols+:} false; then :
95379491
95389492 fi
95399493
9494 for ac_func in dladdr
9495 do :
9496 ac_fn_c_check_func "$LINENO" "dladdr" "ac_cv_func_dladdr"
9497 if test "x$ac_cv_func_dladdr" = xyes; then :
9498 cat >>confdefs.h <<_ACEOF
9499 #define HAVE_DLADDR 1
9500 _ACEOF
9501
9502 fi
9503 done
9504
9505
9506 if test "$ac_cv_func_dladdr" != "yes"; then
9507 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lunwind" >&5
9508 $as_echo_n "checking for main in -lunwind... " >&6; }
9509 if ${ac_cv_lib_unwind_main+:} false; then :
9510 $as_echo_n "(cached) " >&6
9511 else
9512 ac_check_lib_save_LIBS=$LIBS
9513 LIBS="-lunwind $LIBS"
9514 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9515 /* end confdefs.h. */
9516
9517
9518 int
9519 main ()
9520 {
9521 return main ();
9522 ;
9523 return 0;
9524 }
9525 _ACEOF
9526 if ac_fn_c_try_link "$LINENO"; then :
9527 ac_cv_lib_unwind_main=yes
9528 else
9529 ac_cv_lib_unwind_main=no
9530 fi
9531 rm -f core conftest.err conftest.$ac_objext \
9532 conftest$ac_exeext conftest.$ac_ext
9533 LIBS=$ac_check_lib_save_LIBS
9534 fi
9535 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_unwind_main" >&5
9536 $as_echo "$ac_cv_lib_unwind_main" >&6; }
9537 if test "x$ac_cv_lib_unwind_main" = xyes; then :
9538 check_unwind_h=yes
9539 fi
9540
9541 if test "$check_unwind_h" = yes; then
9542 ac_fn_c_check_header_mongrel "$LINENO" "libunwind.h" "ac_cv_header_libunwind_h" "$ac_includes_default"
9543 if test "x$ac_cv_header_libunwind_h" = xyes; then :
9544
9545 $as_echo "#define HAVE_LIBUNWIND 1" >>confdefs.h
9546
9547 LIBS="-lunwind $LIBS"
9548 fi
9549
9550
9551 fi
9552 fi
95409553
95419554 # The cast to long int works around a bug in the HP C Compiler
95429555 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
13691369 fi dnl sc_nprocessors_conf
13701370 fi dnl "$MINGW" = false
13711371
1372 AC_CHECK_LIB(unwind, main,
1373 check_unwind_h=yes)
1374 if test "$check_unwind_h" = yes; then
1375 AC_CHECK_HEADER(libunwind.h,
1376 AC_DEFINE(HAVE_LIBUNWIND, 1,
1377 [ Define if you have libunwind and libunwind.h ])
1378 LIBS="-lunwind $LIBS")
1379 fi
1380
13811372 dnl Used in OpenBSD
13821373 AC_CHECK_LIB(execinfo, backtrace_symbols)
1374 AC_CHECK_FUNCS(dladdr)
1375
1376 if test "$ac_cv_func_dladdr" != "yes"; then
1377 AC_CHECK_LIB(unwind, main,
1378 check_unwind_h=yes)
1379 if test "$check_unwind_h" = yes; then
1380 AC_CHECK_HEADER(libunwind.h,
1381 AC_DEFINE(HAVE_LIBUNWIND, 1,
1382 [ Define if you have libunwind and libunwind.h ])
1383 LIBS="-lunwind $LIBS")
1384 fi
1385 fi
13831386
13841387 AC_CHECK_SIZEOF(void*, 4)
13851388 AC_CHECK_SIZEOF(long, 4)
2525 #define _WIN32_WINNT 0x0501 /* get RtlCaptureContext() */
2626 #endif
2727
28 #define _GNU_SOURCE
2829 #include "pl-incl.h"
2930 #include "os/pl-cstack.h"
3031
4243 * LIBUNWIND *
4344 *******************************/
4445
45 #if !defined(BTRACE_DONE) && defined(HAVE_LIBUNWIND)
46 #if !defined(BTRACE_DONE) && defined(HAVE_LIBUNWIND) && !defined(HAVE_DLADDR)
4647 #define BTRACE_DONE 1
4748 #define UNW_LOCAL_ONLY
4849 #include <libunwind.h>
213214 * GLIBC *
214215 *******************************/
215216
216 #if !defined(BTRACE_DONE) && defined(HAVE_EXECINFO_H) && !defined(DMALLOC)
217 #if !defined(BTRACE_DONE) && defined(HAVE_EXECINFO_H)
217218 #define BTRACE_DONE 1
218219 #include <execinfo.h>
219220 #include <string.h>
221 #include <dlfcn.h>
222
223 #define MAXCMD 1024
220224
221225 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
222 This implementation uses the libgcc unwinding capabilities.
223
224 Disabled of dmalloc is used because the free of the memory allocated by
225 backtrace_symbols() is considered an error by dmalloc.
226 This implementation uses the libgcc unwinding capabilities. If possible,
227 addr2line(1) is used to obtain information at the line level.
226228 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
227229
228230 typedef struct btrace
229 { char **symbols[SAVE_TRACES];
231 { char **retaddr[SAVE_TRACES];
230232 const char *why[SAVE_TRACES];
231233 size_t sizes[SAVE_TRACES];
232234 int current;
238240 { int i;
239241
240242 for(i=0; i<SAVE_TRACES; i++)
241 { if ( bt->symbols[i] )
242 free(bt->symbols[i]);
243 { if ( bt->retaddr[i] )
244 free(bt->retaddr[i]);
243245 }
244246
245247 free(bt);
304306
305307 frames = backtrace(array, sizeof(array)/sizeof(void *));
306308 bt->sizes[current] = frames;
307 if ( bt->symbols[current] )
308 free(bt->symbols[current]);
309 bt->symbols[current] = backtrace_symbols(array, frames);
309 if ( bt->retaddr[current] )
310 free(bt->retaddr[current]);
311 if ( (bt->retaddr[current] = malloc(sizeof(void*)*frames)) )
312 memcpy(bt->retaddr[current], array, sizeof(void*)*frames);
310313 bt->why[current] = why;
311314 }
315 }
316
317
318 static int
319 addr2line(const char *fname, uintptr_t offset, char *buf, size_t size)
320 { char cmd[MAXCMD];
321
322 if ( snprintf(cmd, size, "addr2line -fe \"%s\" %p",
323 fname, (void*)offset) < size )
324 { FILE *fd;
325
326 if ( (fd=popen(cmd, "r")) )
327 { int c;
328 char *ebuf = &buf[size-1];
329 char *o = buf;
330 int nl = 0;
331
332 while((c=fgetc(fd)) != EOF && o<ebuf)
333 { if ( c == '\n' )
334 { const char *sep = "() at ";
335 nl++;
336
337 if ( nl == 1 && o+strlen(sep) < ebuf)
338 { strcpy(o, sep);
339 o += strlen(sep);
340 }
341 } else
342 { *o++ = c;
343 }
344 }
345
346 *o = '\0';
347
348 fclose(fd);
349 return o > buf;
350 }
351 }
352
353 return FALSE;
312354 }
313355
314356
320362 { Sdprintf("C-stack trace labeled \"%s\":\n", bt->why[me]);
321363
322364 for(i=0; i<bt->sizes[me]; i++)
323 Sdprintf(" [%d] %s\n", i, bt->symbols[me][i]);
365 { Dl_info info;
366 void *addr = bt->retaddr[me][i];
367
368 if ( dladdr(addr, &info) )
369 { uintptr_t offset = (uintptr_t)addr - (uintptr_t)info.dli_fbase;
370
371 if ( info.dli_fname )
372 { char buf[512];
373
374 if ( strstr(info.dli_fname, ".so") &&
375 addr2line(info.dli_fname, offset, buf, sizeof(buf)) )
376 Sdprintf(" [%d] %s [%p]\n", i, buf, addr);
377 else if ( info.dli_sname )
378 Sdprintf(" [%d] %s(%s+%p) [%p]\n",
379 i, info.dli_fname, info.dli_sname, addr-info.dli_saddr,
380 addr);
381 else
382 Sdprintf(" [%d] %s(+%p) [%p]\n",
383 i, info.dli_fname, (void*)offset, addr);
384 } else
385 { Sdprintf(" [%d] ??? [%p]\n", i, addr);
386 }
387 }
388 }
324389 } else
325390 { Sdprintf("No stack trace\n");
326391 }
800800 { int digits = (arg == NOARG ? 6 : arg);
801801
802802 if ( digits > 0 )
803 { double ip;
803 { double ip, fp;
804804 char fmt[64];
805805
806
806807 cal_ftm(ftm, HAS_STAMP);
808 fp = modf(ftm->stamp, &ip) * pow(10, digits);
807809 Ssprintf(fmt, "%%0%dlld", digits);
808 OUTNUMBER(fd, fmt, (long)(modf(ftm->stamp, &ip) *
809 pow(10, digits)));
810 OUTNUMBER(fd, fmt, (long)(fp+0.5));
810811 }
811812 break;
812813 }
319319 } compileInfo, *CompileInfo;
320320
321321
322 static int link_local_var(Word v, int iv, CompileInfo ci ARG_LD);
323
324
322325 /*******************************
323326 * WARNINGS *
324327 *******************************/
12911294 deRef(t);
12921295 if ( (iv=isIndexedVarTerm(*t PASS_LD)) >= 0 )
12931296 { if ( ci->islocal || !isFirstVar(ci->used_var, iv) )
1294 { tm->var_index = iv;
1297 { if ( ci->islocal )
1298 { int rc;
1299
1300 if ( (rc=link_local_var(t, iv, ci PASS_LD)) != TRUE )
1301 return rc;
1302 }
1303 tm->var_index = iv;
12951304 tm->type = TM_VAR;
12961305 } else
12971306 { PL_error(NULL, 0, NULL, ERR_INSTANTIATION);
16661675 ClauseRef cref;
16671676 size_t space;
16681677
1669 DEBUG(1, Sdprintf("%d argvars; %d prolog vars; %d vars",
1670 ci.argvars, clause.prolog_vars, clause.variables));
1678 DEBUG(MSG_COMP_ARGVAR,
1679 Sdprintf("%d argvars; %d prolog vars; %d vars",
1680 ci.argvars, clause.prolog_vars, clause.variables));
16711681 assert(ci.argvars == ci.argvar);
16721682
16731683 /* check space */
17031713 setNextFrameFlags(fr, environment_frame);
17041714 setContextModule(fr, module);
17051715
1706 DEBUG(1, Sdprintf("; now %d vars\n", clause.variables));
1716 DEBUG(MSG_COMP_ARGVAR, Sdprintf("; now %d vars\n", clause.variables));
1717 DEBUG(MSG_COMP_ARGVAR, vm_list(cl->codes));
17071718 lTop = (LocalFrame)p;
17081719 }
17091720
20232034 #endif
20242035
20252036
2037 static int
2038 link_local_var(Word v, int iv, CompileInfo ci ARG_LD)
2039 { VarDef vd = LD->comp.vardefs[*v>>LMASK_BITS];
2040 int voffset = VAROFFSET(iv);
2041 Word k = varFrameP(lTop, voffset);
2042
2043 DEBUG(MSG_COMP_ARGVAR,
2044 Sdprintf("Linking b_var(%d) to %s\n", index, vName(vd->address)));
2045
2046 if ( k >= (Word) lMax )
2047 return LOCAL_OVERFLOW;
2048 *k = makeRef(vd->address);
2049
2050 return TRUE;
2051 }
2052
2053
20262054 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
20272055 Compile argument to a goal in the clause. The `islocal' compilation is
20282056 one of the complicating factors: atoms should not be registered (there
21362164 isvar:
21372165 if ( (index = isIndexedVarTerm(*arg PASS_LD)) >= 0 )
21382166 { if ( ci->islocal )
2139 { VarDef v = LD->comp.vardefs[*arg>>LMASK_BITS];
2140 int voffset = VAROFFSET(index);
2141 Word k = varFrameP(lTop, voffset);
2142
2143 DEBUG(1, Sdprintf("Linking b_var(%d) to %s\n",
2144 index, vName(v->address)));
2145
2146 if ( k >= (Word) lMax )
2147 return LOCAL_OVERFLOW;
2148 *k = makeRef(v->address);
2167 { int rc;
2168
2169 if ( (rc=link_local_var(arg, index, ci PASS_LD)) != TRUE )
2170 return rc;
21492171
21502172 if ( index < 3 )
21512173 { Output_0(ci, B_VAR0 + index);
21522174 } else
2153 { Output_1(ci, B_VAR, voffset);
2175 { Output_1(ci, B_VAR, VAROFFSET(index));
21542176 }
21552177
21562178 return TRUE;
149149 COMMON(code) replacedBreak(Code PC);
150150 COMMON(void) clearBreakPointsClause(Clause clause);
151151 COMMON(int) unify_functor(term_t t, functor_t fd, int how);
152 COMMON(void) vm_list(Code code);
152153
153154 /* pl-dump.c */
154155 COMMON(word) saveProgram(term_t new);
294294 { best_index->tried_better = new_bitvector(def->functor->arity);
295295
296296 for(ci=def->impl.clauses.clause_indexes; ci; ci=ci->next)
297 set_bit(best_index->tried_better, ci->args[0]-1);
297 { if ( indexKeyFromArgv(ci, argv PASS_LD) )
298 set_bit(best_index->tried_better, ci->args[0]-1);
299 }
298300 }
299301
300302 if ( (best=bestHash(argv, def,
622622 case 'T': GD->options.trailSize = size; goto next;
623623 case 'H':
624624 case 'A':
625 Sdprintf("% Warning: -%csize is no longer supported\n", *s);
625 Sdprintf("%% Warning: -%csize is no longer supported\n", *s);
626626 goto next;
627627 }
628628 }
285285
286286 static inline int
287287 is_signalled(ARG1_LD)
288 { return unlikely((LD->signal.pending[0]|LD->signal.pending[1]) != 0);
288 { return LD && unlikely((LD->signal.pending[0]|LD->signal.pending[1]) != 0);
289289 }
290290
291291 #endif /*PL_INLINE_H_INCLUDED*/
31473147 DEBUG(MSG_UNLOAD, Sdprintf("removeClausesProcedure(%s), refs = %d\n",
31483148 predicateName(def), def->references));
31493149
3150 deleted = removeClausesProcedure(proc,
3151 true(def, P_MULTIFILE) ? sf->index : 0,
3152 TRUE);
3150 if ( false(def, P_FOREIGN) )
3151 { deleted = removeClausesProcedure(proc,
3152 true(def, P_MULTIFILE) ? sf->index : 0,
3153 TRUE);
3154 }
31533155
31543156 DEBUG(MSG_UNLOAD,
31553157 if ( false(def, P_MULTIFILE) && def->impl.clauses.number_of_clauses )
401401 case TAG_STRING:
402402 case TAG_FLOAT:
403403 { Word d = addressIndirect(w);
404 size_t n = wsizeofInd(*d);
404 size_t n = wsizeofInd(w);
405405
406406 HASH("X", 1);
407407 HASH(d, (unsigned long)(n*sizeof(word)));
28152815 { IOSTREAM *fd = state->wicFd;
28162816
28172817 Sputc('I', fd);
2818 putAtom(state, owner);
2819 putAtom(state, pn);
2818 saveXR(state, owner);
2819 saveXR(state, pn);
28202820 putNum(line, fd);
2821 putAtom(state, fn);
2821 saveXR(state, fn);
28222822 putFloat(time, fd);
28232823
28242824 return TRUE;
4949
5050 all: swipl-rc$(EXEEXT)
5151
52 swipl-rc$(EXEEXT): librc.a rc.o
52 swipl-rc$(EXEEXT): librc.a rc.o $(UXNTLIB)
5353 $(CC) $(LDFLAGS) -o $@ rc.o $(UXNTLIB) -L. -lrc
5454
5555 librc.a: $(LIBOBJ)
5656 rm -f $@
5757 $(AR) cq $@ $(LIBOBJ)
5858 $(RANLIB) $@
59
60 ifeq ($(MINGW),true)
61 $(UXNTLIB):
62 @(cd ../os/windows && $(MAKE) COFLAGS="$(COFLAGS)")
63 endif
5964
6065 .c.o:
6166 $(CC) -c -I.. $(CFLAGS) $< @COUTOPT@