kibi-swipl-linux-x64-gnu 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/README.md +29 -0
  2. package/bin/swipl +0 -0
  3. package/bin/swipl-win +0 -0
  4. package/build-manifest.json +70 -0
  5. package/lib/cmake/swipl/SWIPLConfig.cmake +21 -0
  6. package/lib/cmake/swipl/SWIPLConfigVersion.cmake +65 -0
  7. package/lib/cmake/swipl/SWIPLTargets-release.cmake +28 -0
  8. package/lib/cmake/swipl/SWIPLTargets.cmake +109 -0
  9. package/lib/swipl/ABI +1 -0
  10. package/lib/swipl/LICENSE +41 -0
  11. package/lib/swipl/README.md +116 -0
  12. package/lib/swipl/app/README.md +25 -0
  13. package/lib/swipl/app/app.pl +87 -0
  14. package/lib/swipl/app/pack.pl +350 -0
  15. package/lib/swipl/app/qlf.pl +521 -0
  16. package/lib/swipl/app/splfr.pl +177 -0
  17. package/lib/swipl/app/sys.pl +310 -0
  18. package/lib/swipl/bin/swipl.home +1 -0
  19. package/lib/swipl/boot/apply.pl +73 -0
  20. package/lib/swipl/boot/attvar.pl +344 -0
  21. package/lib/swipl/boot/autoload.pl +1226 -0
  22. package/lib/swipl/boot/bags.pl +283 -0
  23. package/lib/swipl/boot/dcg.pl +388 -0
  24. package/lib/swipl/boot/dicts.pl +193 -0
  25. package/lib/swipl/boot/dwim.pl +485 -0
  26. package/lib/swipl/boot/engines.pl +152 -0
  27. package/lib/swipl/boot/expand.pl +1628 -0
  28. package/lib/swipl/boot/gc.pl +65 -0
  29. package/lib/swipl/boot/history.pl +304 -0
  30. package/lib/swipl/boot/init.pl +4682 -0
  31. package/lib/swipl/boot/iri.pl +64 -0
  32. package/lib/swipl/boot/license.pl +390 -0
  33. package/lib/swipl/boot/load.pl +81 -0
  34. package/lib/swipl/boot/messages.pl +2521 -0
  35. package/lib/swipl/boot/packs.pl +306 -0
  36. package/lib/swipl/boot/predopts.pl +154 -0
  37. package/lib/swipl/boot/qlf.pl +141 -0
  38. package/lib/swipl/boot/rc.pl +263 -0
  39. package/lib/swipl/boot/syspred.pl +1634 -0
  40. package/lib/swipl/boot/tabling.pl +2321 -0
  41. package/lib/swipl/boot/threads.pl +42 -0
  42. package/lib/swipl/boot/toplevel.pl +2248 -0
  43. package/lib/swipl/boot/topvars.pl +261 -0
  44. package/lib/swipl/boot.prc +0 -0
  45. package/lib/swipl/cmake/swipl.cmake +131 -0
  46. package/lib/swipl/customize/README.md +23 -0
  47. package/lib/swipl/customize/edit +101 -0
  48. package/lib/swipl/customize/init.pl +164 -0
  49. package/lib/swipl/demo/README.md +33 -0
  50. package/lib/swipl/demo/likes.pl +44 -0
  51. package/lib/swipl/doc/packages/examples/chr/bool.chr +281 -0
  52. package/lib/swipl/doc/packages/examples/chr/chrdif.chr +87 -0
  53. package/lib/swipl/doc/packages/examples/chr/chrfreeze.chr +6 -0
  54. package/lib/swipl/doc/packages/examples/chr/family.chr +116 -0
  55. package/lib/swipl/doc/packages/examples/chr/fib.chr +24 -0
  56. package/lib/swipl/doc/packages/examples/chr/fibonacci.chr +31 -0
  57. package/lib/swipl/doc/packages/examples/chr/gcd.chr +28 -0
  58. package/lib/swipl/doc/packages/examples/chr/leq.chr +34 -0
  59. package/lib/swipl/doc/packages/examples/chr/listdom.chr +138 -0
  60. package/lib/swipl/doc/packages/examples/chr/primes.chr +29 -0
  61. package/lib/swipl/doc/packages/examples/http/README.md +98 -0
  62. package/lib/swipl/doc/packages/examples/http/calc.pl +92 -0
  63. package/lib/swipl/doc/packages/examples/http/demo_body.pl +232 -0
  64. package/lib/swipl/doc/packages/examples/http/demo_client.pl +165 -0
  65. package/lib/swipl/doc/packages/examples/http/demo_daemon.pl +38 -0
  66. package/lib/swipl/doc/packages/examples/http/demo_files.pl +50 -0
  67. package/lib/swipl/doc/packages/examples/http/demo_hello.pl +15 -0
  68. package/lib/swipl/doc/packages/examples/http/demo_login.pl +280 -0
  69. package/lib/swipl/doc/packages/examples/http/demo_openid.pl +177 -0
  70. package/lib/swipl/doc/packages/examples/http/demo_pwp.pl +20 -0
  71. package/lib/swipl/doc/packages/examples/http/demo_rest.pl +56 -0
  72. package/lib/swipl/doc/packages/examples/http/demo_threads.pl +52 -0
  73. package/lib/swipl/doc/packages/examples/http/linux-init-script +126 -0
  74. package/lib/swipl/doc/packages/examples/http/pwp/context.pwp +23 -0
  75. package/lib/swipl/doc/packages/examples/http/pwp/index.pwp +25 -0
  76. package/lib/swipl/doc/packages/examples/http/pwp/pwp1.pwp +12 -0
  77. package/lib/swipl/doc/packages/examples/http/pwp/pwp2.pwp +10 -0
  78. package/lib/swipl/doc/packages/examples/http/pwp/pwp3.pwp +25 -0
  79. package/lib/swipl/doc/packages/examples/http/pwp/pwp4.pwp +23 -0
  80. package/lib/swipl/doc/packages/examples/http/pwp/pwp5.pwp +11 -0
  81. package/lib/swipl/doc/packages/examples/http/pwp/pwp6.pwp +3 -0
  82. package/lib/swipl/doc/packages/examples/http/pwp/pwp7.pwp +3 -0
  83. package/lib/swipl/doc/packages/examples/http/pwp/pwp8.pwp +3 -0
  84. package/lib/swipl/doc/packages/examples/http/pwp/pwpdb.pl +12 -0
  85. package/lib/swipl/doc/packages/examples/http/systemd-script.service +18 -0
  86. package/lib/swipl/doc/packages/examples/http/upstart-script.conf +20 -0
  87. package/lib/swipl/doc/packages/examples/plunit/read.pl +17 -0
  88. package/lib/swipl/doc/packages/examples/plunit/simple.pl +33 -0
  89. package/lib/swipl/doc/packages/examples/ssl/client.pl +83 -0
  90. package/lib/swipl/doc/packages/examples/ssl/etc/README +52 -0
  91. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.p12 +0 -0
  92. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.pem +85 -0
  93. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-key.pem +30 -0
  94. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/cacert.pem +82 -0
  95. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/careq.pem +18 -0
  96. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/crlnumber +1 -0
  97. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt +3 -0
  98. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt.attr +1 -0
  99. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7C.pem +85 -0
  100. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7D.pem +85 -0
  101. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/private/cakey.pem +30 -0
  102. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/serial +1 -0
  103. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-cert.pem +85 -0
  104. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-key.pem +30 -0
  105. package/lib/swipl/doc/packages/examples/ssl/https.pl +267 -0
  106. package/lib/swipl/doc/packages/examples/ssl/server.pl +106 -0
  107. package/lib/swipl/include/SWI-Prolog.h +1544 -0
  108. package/lib/swipl/include/SWI-Stream.h +537 -0
  109. package/lib/swipl/include/Yap/YapInterface.h +283 -0
  110. package/lib/swipl/include/sicstus/sicstus.h +452 -0
  111. package/lib/swipl/lib/x86_64-linux/cgi.so +0 -0
  112. package/lib/swipl/lib/x86_64-linux/crypt.so +0 -0
  113. package/lib/swipl/lib/x86_64-linux/crypto4pl.so +0 -0
  114. package/lib/swipl/lib/x86_64-linux/double_metaphone.so +0 -0
  115. package/lib/swipl/lib/x86_64-linux/files.so +0 -0
  116. package/lib/swipl/lib/x86_64-linux/hashstream.so +0 -0
  117. package/lib/swipl/lib/x86_64-linux/http_stream.so +0 -0
  118. package/lib/swipl/lib/x86_64-linux/isub.so +0 -0
  119. package/lib/swipl/lib/x86_64-linux/json.so +0 -0
  120. package/lib/swipl/lib/x86_64-linux/libswipl.so.10 +0 -0
  121. package/lib/swipl/lib/x86_64-linux/mallocinfo.so +0 -0
  122. package/lib/swipl/lib/x86_64-linux/md54pl.so +0 -0
  123. package/lib/swipl/lib/x86_64-linux/memfile.so +0 -0
  124. package/lib/swipl/lib/x86_64-linux/ntriples.so +0 -0
  125. package/lib/swipl/lib/x86_64-linux/pcre4pl.so +0 -0
  126. package/lib/swipl/lib/x86_64-linux/porter_stem.so +0 -0
  127. package/lib/swipl/lib/x86_64-linux/process.so +0 -0
  128. package/lib/swipl/lib/x86_64-linux/prolog_stream.so +0 -0
  129. package/lib/swipl/lib/x86_64-linux/rdf_db.so +0 -0
  130. package/lib/swipl/lib/x86_64-linux/readutil.so +0 -0
  131. package/lib/swipl/lib/x86_64-linux/rlimit.so +0 -0
  132. package/lib/swipl/lib/x86_64-linux/sched.so +0 -0
  133. package/lib/swipl/lib/x86_64-linux/sgml2pl.so +0 -0
  134. package/lib/swipl/lib/x86_64-linux/sha4pl.so +0 -0
  135. package/lib/swipl/lib/x86_64-linux/snowball.so +0 -0
  136. package/lib/swipl/lib/x86_64-linux/socket.so +0 -0
  137. package/lib/swipl/lib/x86_64-linux/ssl4pl.so +0 -0
  138. package/lib/swipl/lib/x86_64-linux/streaminfo.so +0 -0
  139. package/lib/swipl/lib/x86_64-linux/syslog.so +0 -0
  140. package/lib/swipl/lib/x86_64-linux/time.so +0 -0
  141. package/lib/swipl/lib/x86_64-linux/turtle.so +0 -0
  142. package/lib/swipl/lib/x86_64-linux/uid.so +0 -0
  143. package/lib/swipl/lib/x86_64-linux/unix.so +0 -0
  144. package/lib/swipl/lib/x86_64-linux/uri.so +0 -0
  145. package/lib/swipl/lib/x86_64-linux/websocket.so +0 -0
  146. package/lib/swipl/lib/x86_64-linux/zlib4pl.so +0 -0
  147. package/lib/swipl/library/INDEX.pl +1020 -0
  148. package/lib/swipl/library/aggregate.pl +755 -0
  149. package/lib/swipl/library/ansi_term.pl +653 -0
  150. package/lib/swipl/library/apply.pl +426 -0
  151. package/lib/swipl/library/apply_macros.pl +497 -0
  152. package/lib/swipl/library/arithmetic.pl +320 -0
  153. package/lib/swipl/library/assoc.pl +522 -0
  154. package/lib/swipl/library/atom.pl +169 -0
  155. package/lib/swipl/library/backcomp.pl +688 -0
  156. package/lib/swipl/library/base32.pl +291 -0
  157. package/lib/swipl/library/base64.pl +441 -0
  158. package/lib/swipl/library/broadcast.pl +161 -0
  159. package/lib/swipl/library/build/cmake.pl +137 -0
  160. package/lib/swipl/library/build/conan.pl +232 -0
  161. package/lib/swipl/library/build/make.pl +168 -0
  162. package/lib/swipl/library/build/tools.pl +825 -0
  163. package/lib/swipl/library/charsio.pl +195 -0
  164. package/lib/swipl/library/check.pl +1097 -0
  165. package/lib/swipl/library/check_installation.pl +912 -0
  166. package/lib/swipl/library/clp/INDEX.pl +157 -0
  167. package/lib/swipl/library/clp/bounds.pl +2036 -0
  168. package/lib/swipl/library/clp/clp_distinct.pl +263 -0
  169. package/lib/swipl/library/clp/clp_events.pl +92 -0
  170. package/lib/swipl/library/clp/clpb.pl +1896 -0
  171. package/lib/swipl/library/clp/clpfd.pl +7906 -0
  172. package/lib/swipl/library/clp/simplex.pl +1580 -0
  173. package/lib/swipl/library/codesio.pl +182 -0
  174. package/lib/swipl/library/coinduction.pl +183 -0
  175. package/lib/swipl/library/console_input.pl +289 -0
  176. package/lib/swipl/library/csv.pl +611 -0
  177. package/lib/swipl/library/ctypes.pl +161 -0
  178. package/lib/swipl/library/date.pl +370 -0
  179. package/lib/swipl/library/dcg/INDEX.pl +35 -0
  180. package/lib/swipl/library/dcg/basics.pl +514 -0
  181. package/lib/swipl/library/dcg/high_order.pl +227 -0
  182. package/lib/swipl/library/debug.pl +499 -0
  183. package/lib/swipl/library/dialect/bim.pl +186 -0
  184. package/lib/swipl/library/dialect/commons.pl +77 -0
  185. package/lib/swipl/library/dialect/eclipse/test_util_iso.pl +355 -0
  186. package/lib/swipl/library/dialect/hprolog/format.pl +44 -0
  187. package/lib/swipl/library/dialect/hprolog.pl +314 -0
  188. package/lib/swipl/library/dialect/ifprolog.pl +1317 -0
  189. package/lib/swipl/library/dialect/iso/iso_predicates.pl +277 -0
  190. package/lib/swipl/library/dialect/sicstus/README.TXT +1 -0
  191. package/lib/swipl/library/dialect/sicstus/arrays.pl +121 -0
  192. package/lib/swipl/library/dialect/sicstus/block.pl +278 -0
  193. package/lib/swipl/library/dialect/sicstus/lists.pl +167 -0
  194. package/lib/swipl/library/dialect/sicstus/ordsets.pl +52 -0
  195. package/lib/swipl/library/dialect/sicstus/sockets.pl +174 -0
  196. package/lib/swipl/library/dialect/sicstus/system.pl +262 -0
  197. package/lib/swipl/library/dialect/sicstus/terms.pl +57 -0
  198. package/lib/swipl/library/dialect/sicstus/timeout.pl +92 -0
  199. package/lib/swipl/library/dialect/sicstus.pl +582 -0
  200. package/lib/swipl/library/dialect/sicstus4/aggregate.pl +60 -0
  201. package/lib/swipl/library/dialect/sicstus4/between.pl +62 -0
  202. package/lib/swipl/library/dialect/sicstus4/clpfd.pl +75 -0
  203. package/lib/swipl/library/dialect/sicstus4/file_systems.pl +413 -0
  204. package/lib/swipl/library/dialect/sicstus4/lists.pl +274 -0
  205. package/lib/swipl/library/dialect/sicstus4/ordsets.pl +54 -0
  206. package/lib/swipl/library/dialect/sicstus4/samsort.pl +86 -0
  207. package/lib/swipl/library/dialect/sicstus4/sets.pl +124 -0
  208. package/lib/swipl/library/dialect/sicstus4/sockets.pl +164 -0
  209. package/lib/swipl/library/dialect/sicstus4/system.pl +80 -0
  210. package/lib/swipl/library/dialect/sicstus4/terms.pl +89 -0
  211. package/lib/swipl/library/dialect/sicstus4/timeout.pl +43 -0
  212. package/lib/swipl/library/dialect/sicstus4/types.pl +103 -0
  213. package/lib/swipl/library/dialect/sicstus4.pl +200 -0
  214. package/lib/swipl/library/dialect/swi/syspred_options.pl +250 -0
  215. package/lib/swipl/library/dialect/xsb/README.md +20 -0
  216. package/lib/swipl/library/dialect/xsb/basics.pl +318 -0
  217. package/lib/swipl/library/dialect/xsb/consult.pl +87 -0
  218. package/lib/swipl/library/dialect/xsb/curr_sym.pl +57 -0
  219. package/lib/swipl/library/dialect/xsb/error_handler.pl +111 -0
  220. package/lib/swipl/library/dialect/xsb/gensym.pl +53 -0
  221. package/lib/swipl/library/dialect/xsb/gpp.pl +138 -0
  222. package/lib/swipl/library/dialect/xsb/intern.pl +48 -0
  223. package/lib/swipl/library/dialect/xsb/lists.pl +47 -0
  224. package/lib/swipl/library/dialect/xsb/machine.pl +295 -0
  225. package/lib/swipl/library/dialect/xsb/ordsets.pl +53 -0
  226. package/lib/swipl/library/dialect/xsb/setof.pl +54 -0
  227. package/lib/swipl/library/dialect/xsb/source.pl +308 -0
  228. package/lib/swipl/library/dialect/xsb/standard.pl +169 -0
  229. package/lib/swipl/library/dialect/xsb/storage.pl +70 -0
  230. package/lib/swipl/library/dialect/xsb/string.pl +76 -0
  231. package/lib/swipl/library/dialect/xsb/thread.pl +62 -0
  232. package/lib/swipl/library/dialect/xsb/timed_call.pl +158 -0
  233. package/lib/swipl/library/dialect/xsb.pl +688 -0
  234. package/lib/swipl/library/dialect/yap/README.TXT +8 -0
  235. package/lib/swipl/library/dialect/yap.pl +283 -0
  236. package/lib/swipl/library/dialect.pl +123 -0
  237. package/lib/swipl/library/dicts.pl +399 -0
  238. package/lib/swipl/library/dif.pl +426 -0
  239. package/lib/swipl/library/edinburgh.pl +138 -0
  240. package/lib/swipl/library/edit.pl +783 -0
  241. package/lib/swipl/library/error.pl +495 -0
  242. package/lib/swipl/library/exceptions.pl +231 -0
  243. package/lib/swipl/library/explain.pl +543 -0
  244. package/lib/swipl/library/ext/RDF/INDEX.pl +25 -0
  245. package/lib/swipl/library/ext/RDF/rdf.pl +450 -0
  246. package/lib/swipl/library/ext/RDF/rdf_parser.pl +649 -0
  247. package/lib/swipl/library/ext/RDF/rdf_triple.pl +448 -0
  248. package/lib/swipl/library/ext/RDF/rdf_write.pl +701 -0
  249. package/lib/swipl/library/ext/RDF/rewrite_term.pl +177 -0
  250. package/lib/swipl/library/ext/chr/chr/a_star.pl +80 -0
  251. package/lib/swipl/library/ext/chr/chr/binomialheap.pl +142 -0
  252. package/lib/swipl/library/ext/chr/chr/builtins.pl +629 -0
  253. package/lib/swipl/library/ext/chr/chr/chr_compiler_errors.pl +179 -0
  254. package/lib/swipl/library/ext/chr/chr/chr_compiler_options.pl +382 -0
  255. package/lib/swipl/library/ext/chr/chr/chr_compiler_utility.pl +338 -0
  256. package/lib/swipl/library/ext/chr/chr/chr_debug.pl +59 -0
  257. package/lib/swipl/library/ext/chr/chr/chr_hashtable_store.pl +425 -0
  258. package/lib/swipl/library/ext/chr/chr/chr_integertable_store.pl +139 -0
  259. package/lib/swipl/library/ext/chr/chr/chr_messages.pl +176 -0
  260. package/lib/swipl/library/ext/chr/chr/chr_op.pl +53 -0
  261. package/lib/swipl/library/ext/chr/chr/chr_runtime.pl +1016 -0
  262. package/lib/swipl/library/ext/chr/chr/chr_translate.pl +25424 -0
  263. package/lib/swipl/library/ext/chr/chr/clean_code.pl +252 -0
  264. package/lib/swipl/library/ext/chr/chr/find.pl +78 -0
  265. package/lib/swipl/library/ext/chr/chr/guard_entailment.pl +19432 -0
  266. package/lib/swipl/library/ext/chr/chr/listmap.pl +108 -0
  267. package/lib/swipl/library/ext/chr/chr/pairlist.pl +78 -0
  268. package/lib/swipl/library/ext/chr/chr.pl +686 -0
  269. package/lib/swipl/library/ext/clib/INDEX.pl +158 -0
  270. package/lib/swipl/library/ext/clib/cgi.pl +86 -0
  271. package/lib/swipl/library/ext/clib/crypt.pl +44 -0
  272. package/lib/swipl/library/ext/clib/filesex.pl +644 -0
  273. package/lib/swipl/library/ext/clib/hash_stream.pl +119 -0
  274. package/lib/swipl/library/ext/clib/mallocinfo.pl +138 -0
  275. package/lib/swipl/library/ext/clib/md5.pl +68 -0
  276. package/lib/swipl/library/ext/clib/memfile.pl +61 -0
  277. package/lib/swipl/library/ext/clib/process.pl +573 -0
  278. package/lib/swipl/library/ext/clib/prolog_server.pl +157 -0
  279. package/lib/swipl/library/ext/clib/prolog_stream.pl +80 -0
  280. package/lib/swipl/library/ext/clib/rlimit.pl +54 -0
  281. package/lib/swipl/library/ext/clib/sched.pl +85 -0
  282. package/lib/swipl/library/ext/clib/sha.pl +162 -0
  283. package/lib/swipl/library/ext/clib/socket.pl +1102 -0
  284. package/lib/swipl/library/ext/clib/streaminfo.pl +103 -0
  285. package/lib/swipl/library/ext/clib/streampool.pl +136 -0
  286. package/lib/swipl/library/ext/clib/syslog.pl +180 -0
  287. package/lib/swipl/library/ext/clib/time.pl +194 -0
  288. package/lib/swipl/library/ext/clib/udp_broadcast.pl +975 -0
  289. package/lib/swipl/library/ext/clib/uid.pl +220 -0
  290. package/lib/swipl/library/ext/clib/unix.pl +317 -0
  291. package/lib/swipl/library/ext/clib/uri.pl +530 -0
  292. package/lib/swipl/library/ext/clib/uuid.pl +207 -0
  293. package/lib/swipl/library/ext/http/http/INDEX.pl +266 -0
  294. package/lib/swipl/library/ext/http/http/README.md +34 -0
  295. package/lib/swipl/library/ext/http/http/ax.pl +189 -0
  296. package/lib/swipl/library/ext/http/http/dcg_basics.pl +49 -0
  297. package/lib/swipl/library/ext/http/http/graphql.pl +1367 -0
  298. package/lib/swipl/library/ext/http/http/html_decl.pl +416 -0
  299. package/lib/swipl/library/ext/http/http/html_head.pl +654 -0
  300. package/lib/swipl/library/ext/http/http/html_quasiquotations.pl +120 -0
  301. package/lib/swipl/library/ext/http/http/html_write.pl +1425 -0
  302. package/lib/swipl/library/ext/http/http/htmx.pl +139 -0
  303. package/lib/swipl/library/ext/http/http/http_authenticate.pl +364 -0
  304. package/lib/swipl/library/ext/http/http/http_client.pl +412 -0
  305. package/lib/swipl/library/ext/http/http/http_cookie.pl +245 -0
  306. package/lib/swipl/library/ext/http/http/http_cors.pl +176 -0
  307. package/lib/swipl/library/ext/http/http/http_digest.pl +820 -0
  308. package/lib/swipl/library/ext/http/http/http_dirindex.pl +296 -0
  309. package/lib/swipl/library/ext/http/http/http_dispatch.pl +1552 -0
  310. package/lib/swipl/library/ext/http/http/http_dyn_workers.pl +214 -0
  311. package/lib/swipl/library/ext/http/http/http_error.pl +126 -0
  312. package/lib/swipl/library/ext/http/http/http_exception.pl +225 -0
  313. package/lib/swipl/library/ext/http/http/http_files.pl +163 -0
  314. package/lib/swipl/library/ext/http/http/http_header.pl +2820 -0
  315. package/lib/swipl/library/ext/http/http/http_hook.pl +106 -0
  316. package/lib/swipl/library/ext/http/http/http_host.pl +204 -0
  317. package/lib/swipl/library/ext/http/http/http_load.pl +113 -0
  318. package/lib/swipl/library/ext/http/http/http_log.pl +738 -0
  319. package/lib/swipl/library/ext/http/http/http_multipart_plugin.pl +232 -0
  320. package/lib/swipl/library/ext/http/http/http_open.pl +1821 -0
  321. package/lib/swipl/library/ext/http/http/http_openid.pl +1561 -0
  322. package/lib/swipl/library/ext/http/http/http_parameters.pl +504 -0
  323. package/lib/swipl/library/ext/http/http/http_path.pl +380 -0
  324. package/lib/swipl/library/ext/http/http/http_proxy.pl +80 -0
  325. package/lib/swipl/library/ext/http/http/http_pwp.pl +351 -0
  326. package/lib/swipl/library/ext/http/http/http_redis_plugin.pl +332 -0
  327. package/lib/swipl/library/ext/http/http/http_server.pl +105 -0
  328. package/lib/swipl/library/ext/http/http/http_server_files.pl +126 -0
  329. package/lib/swipl/library/ext/http/http/http_server_health.pl +186 -0
  330. package/lib/swipl/library/ext/http/http/http_session.pl +1040 -0
  331. package/lib/swipl/library/ext/http/http/http_sgml_plugin.pl +137 -0
  332. package/lib/swipl/library/ext/http/http/http_stream.pl +376 -0
  333. package/lib/swipl/library/ext/http/http/http_unix_daemon.pl +989 -0
  334. package/lib/swipl/library/ext/http/http/http_wrapper.pl +559 -0
  335. package/lib/swipl/library/ext/http/http/hub.pl +600 -0
  336. package/lib/swipl/library/ext/http/http/js_write.pl +461 -0
  337. package/lib/swipl/library/ext/http/http/mimepack.pl +224 -0
  338. package/lib/swipl/library/ext/http/http/mimetype.pl +276 -0
  339. package/lib/swipl/library/ext/http/http/term_html.pl +797 -0
  340. package/lib/swipl/library/ext/http/http/thread_httpd.pl +1181 -0
  341. package/lib/swipl/library/ext/http/http/web/css/dirindex.css +24 -0
  342. package/lib/swipl/library/ext/http/http/web/css/openid.css +57 -0
  343. package/lib/swipl/library/ext/http/http/web/icons/back.png +0 -0
  344. package/lib/swipl/library/ext/http/http/web/icons/c.png +0 -0
  345. package/lib/swipl/library/ext/http/http/web/icons/compressed.png +0 -0
  346. package/lib/swipl/library/ext/http/http/web/icons/folder.png +0 -0
  347. package/lib/swipl/library/ext/http/http/web/icons/generic.png +0 -0
  348. package/lib/swipl/library/ext/http/http/web/icons/layout.png +0 -0
  349. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-square.png +0 -0
  350. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-tiny.png +0 -0
  351. package/lib/swipl/library/ext/http/http/websocket.pl +729 -0
  352. package/lib/swipl/library/ext/http/http/yadis.pl +205 -0
  353. package/lib/swipl/library/ext/json/INDEX.pl +36 -0
  354. package/lib/swipl/library/ext/json/http/INDEX.pl +16 -0
  355. package/lib/swipl/library/ext/json/http/http_json.pl +490 -0
  356. package/lib/swipl/library/ext/json/http/js_grammar.pl +53 -0
  357. package/lib/swipl/library/ext/json/http/json.pl +48 -0
  358. package/lib/swipl/library/ext/json/http/json_convert.pl +48 -0
  359. package/lib/swipl/library/ext/json/json.pl +1215 -0
  360. package/lib/swipl/library/ext/json/json_convert.pl +681 -0
  361. package/lib/swipl/library/ext/json/json_grammar.pl +349 -0
  362. package/lib/swipl/library/ext/json/json_rpc_client.pl +423 -0
  363. package/lib/swipl/library/ext/json/json_rpc_common.pl +104 -0
  364. package/lib/swipl/library/ext/json/json_rpc_server.pl +489 -0
  365. package/lib/swipl/library/ext/json/json_schema.pl +2111 -0
  366. package/lib/swipl/library/ext/nlp/INDEX.pl +15 -0
  367. package/lib/swipl/library/ext/nlp/double_metaphone.pl +86 -0
  368. package/lib/swipl/library/ext/nlp/isub.pl +162 -0
  369. package/lib/swipl/library/ext/nlp/porter_stem.pl +50 -0
  370. package/lib/swipl/library/ext/nlp/snowball.pl +97 -0
  371. package/lib/swipl/library/ext/pcre/INDEX.pl +17 -0
  372. package/lib/swipl/library/ext/pcre/pcre.pl +974 -0
  373. package/lib/swipl/library/ext/plunit/INDEX.pl +20 -0
  374. package/lib/swipl/library/ext/plunit/plunit.pl +2631 -0
  375. package/lib/swipl/library/ext/plunit/test_wizard.pl +249 -0
  376. package/lib/swipl/library/ext/semweb/semweb/INDEX.pl +288 -0
  377. package/lib/swipl/library/ext/semweb/semweb/rdf11.pl +2106 -0
  378. package/lib/swipl/library/ext/semweb/semweb/rdf11_containers.pl +299 -0
  379. package/lib/swipl/library/ext/semweb/semweb/rdf_cache.pl +278 -0
  380. package/lib/swipl/library/ext/semweb/semweb/rdf_compare.pl +132 -0
  381. package/lib/swipl/library/ext/semweb/semweb/rdf_db.pl +3468 -0
  382. package/lib/swipl/library/ext/semweb/semweb/rdf_edit.pl +1145 -0
  383. package/lib/swipl/library/ext/semweb/semweb/rdf_http_plugin.pl +274 -0
  384. package/lib/swipl/library/ext/semweb/semweb/rdf_library.pl +1021 -0
  385. package/lib/swipl/library/ext/semweb/semweb/rdf_litindex.pl +1035 -0
  386. package/lib/swipl/library/ext/semweb/semweb/rdf_ntriples.pl +422 -0
  387. package/lib/swipl/library/ext/semweb/semweb/rdf_persistency.pl +1576 -0
  388. package/lib/swipl/library/ext/semweb/semweb/rdf_portray.pl +182 -0
  389. package/lib/swipl/library/ext/semweb/semweb/rdf_prefixes.pl +681 -0
  390. package/lib/swipl/library/ext/semweb/semweb/rdf_sandbox.pl +153 -0
  391. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle.pl +54 -0
  392. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle_write.pl +1587 -0
  393. package/lib/swipl/library/ext/semweb/semweb/rdf_zlib_plugin.pl +52 -0
  394. package/lib/swipl/library/ext/semweb/semweb/rdfa.pl +1510 -0
  395. package/lib/swipl/library/ext/semweb/semweb/rdfs.pl +475 -0
  396. package/lib/swipl/library/ext/semweb/semweb/sparql_client.pl +643 -0
  397. package/lib/swipl/library/ext/semweb/semweb/turtle.pl +455 -0
  398. package/lib/swipl/library/ext/sgml/DTD/HTML4.dcl +88 -0
  399. package/lib/swipl/library/ext/sgml/DTD/HTML4.dtd +1092 -0
  400. package/lib/swipl/library/ext/sgml/DTD/HTML4.soc +6 -0
  401. package/lib/swipl/library/ext/sgml/DTD/HTML5.dtd +906 -0
  402. package/lib/swipl/library/ext/sgml/DTD/HTMLlat1.ent +195 -0
  403. package/lib/swipl/library/ext/sgml/DTD/HTMLspec.ent +77 -0
  404. package/lib/swipl/library/ext/sgml/DTD/HTMLsym.ent +241 -0
  405. package/lib/swipl/library/ext/sgml/INDEX.pl +64 -0
  406. package/lib/swipl/library/ext/sgml/c14n2.pl +203 -0
  407. package/lib/swipl/library/ext/sgml/iso_639.pl +631 -0
  408. package/lib/swipl/library/ext/sgml/pwp.pl +705 -0
  409. package/lib/swipl/library/ext/sgml/sgml.pl +815 -0
  410. package/lib/swipl/library/ext/sgml/sgml_write.pl +1003 -0
  411. package/lib/swipl/library/ext/sgml/xpath.pl +620 -0
  412. package/lib/swipl/library/ext/sgml/xsdp_types.pl +232 -0
  413. package/lib/swipl/library/ext/ssl/INDEX.pl +60 -0
  414. package/lib/swipl/library/ext/ssl/crypto.pl +1015 -0
  415. package/lib/swipl/library/ext/ssl/http/INDEX.pl +5 -0
  416. package/lib/swipl/library/ext/ssl/http/http_ssl_plugin.pl +296 -0
  417. package/lib/swipl/library/ext/ssl/saml.pl +609 -0
  418. package/lib/swipl/library/ext/ssl/ssl.pl +647 -0
  419. package/lib/swipl/library/ext/ssl/xmldsig.pl +391 -0
  420. package/lib/swipl/library/ext/ssl/xmlenc.pl +354 -0
  421. package/lib/swipl/library/ext/zlib/INDEX.pl +8 -0
  422. package/lib/swipl/library/ext/zlib/zlib.pl +112 -0
  423. package/lib/swipl/library/fastrw.pl +105 -0
  424. package/lib/swipl/library/files.pl +80 -0
  425. package/lib/swipl/library/gensym.pl +111 -0
  426. package/lib/swipl/library/git.pl +1027 -0
  427. package/lib/swipl/library/hashtable.pl +365 -0
  428. package/lib/swipl/library/heaps.pl +252 -0
  429. package/lib/swipl/library/hotfix.pl +239 -0
  430. package/lib/swipl/library/http/jquery.pl +103 -0
  431. package/lib/swipl/library/http/web/js/jquery-3.6.0.min.js +2 -0
  432. package/lib/swipl/library/increval.pl +217 -0
  433. package/lib/swipl/library/intercept.pl +263 -0
  434. package/lib/swipl/library/iostream.pl +237 -0
  435. package/lib/swipl/library/iri_scheme/file.pl +70 -0
  436. package/lib/swipl/library/lazy_lists.pl +481 -0
  437. package/lib/swipl/library/listing.pl +1362 -0
  438. package/lib/swipl/library/lists.pl +860 -0
  439. package/lib/swipl/library/lynx/INDEX.pl +14 -0
  440. package/lib/swipl/library/lynx/format.pl +380 -0
  441. package/lib/swipl/library/lynx/html_style.pl +129 -0
  442. package/lib/swipl/library/lynx/html_text.pl +865 -0
  443. package/lib/swipl/library/lynx/pldoc_style.pl +87 -0
  444. package/lib/swipl/library/macros.pl +451 -0
  445. package/lib/swipl/library/main.pl +1200 -0
  446. package/lib/swipl/library/make.pl +197 -0
  447. package/lib/swipl/library/modules.pl +129 -0
  448. package/lib/swipl/library/nb_rbtrees.pl +267 -0
  449. package/lib/swipl/library/nb_set.pl +203 -0
  450. package/lib/swipl/library/obfuscate.pl +115 -0
  451. package/lib/swipl/library/occurs.pl +241 -0
  452. package/lib/swipl/library/operators.pl +182 -0
  453. package/lib/swipl/library/option.pl +388 -0
  454. package/lib/swipl/library/optparse.pl +966 -0
  455. package/lib/swipl/library/ordsets.pl +518 -0
  456. package/lib/swipl/library/oset.pl +160 -0
  457. package/lib/swipl/library/pairs.pl +187 -0
  458. package/lib/swipl/library/persistency.pl +713 -0
  459. package/lib/swipl/library/pio.pl +47 -0
  460. package/lib/swipl/library/portray_text.pl +277 -0
  461. package/lib/swipl/library/pprint.pl +940 -0
  462. package/lib/swipl/library/predicate_options.pl +975 -0
  463. package/lib/swipl/library/prolog_autoload.pl +233 -0
  464. package/lib/swipl/library/prolog_breakpoints.pl +396 -0
  465. package/lib/swipl/library/prolog_clause.pl +1104 -0
  466. package/lib/swipl/library/prolog_code.pl +416 -0
  467. package/lib/swipl/library/prolog_codewalk.pl +1248 -0
  468. package/lib/swipl/library/prolog_colour.pl +3301 -0
  469. package/lib/swipl/library/prolog_colour.qlf +0 -0
  470. package/lib/swipl/library/prolog_config.pl +154 -0
  471. package/lib/swipl/library/prolog_coverage.pl +1333 -0
  472. package/lib/swipl/library/prolog_debug.pl +404 -0
  473. package/lib/swipl/library/prolog_deps.pl +675 -0
  474. package/lib/swipl/library/prolog_evaluable.pl +234 -0
  475. package/lib/swipl/library/prolog_format.pl +219 -0
  476. package/lib/swipl/library/prolog_history.pl +161 -0
  477. package/lib/swipl/library/prolog_jiti.pl +333 -0
  478. package/lib/swipl/library/prolog_locale.pl +61 -0
  479. package/lib/swipl/library/prolog_metainference.pl +307 -0
  480. package/lib/swipl/library/prolog_pack.pl +3906 -0
  481. package/lib/swipl/library/prolog_profile.pl +346 -0
  482. package/lib/swipl/library/prolog_qlfmake.pl +533 -0
  483. package/lib/swipl/library/prolog_source.pl +1188 -0
  484. package/lib/swipl/library/prolog_stack.pl +794 -0
  485. package/lib/swipl/library/prolog_trace.pl +365 -0
  486. package/lib/swipl/library/prolog_versions.pl +347 -0
  487. package/lib/swipl/library/prolog_wrap.pl +164 -0
  488. package/lib/swipl/library/prolog_xref.pl +3090 -0
  489. package/lib/swipl/library/prolog_xref.qlf +0 -0
  490. package/lib/swipl/library/pure_input.pl +266 -0
  491. package/lib/swipl/library/qpforeign.pl +695 -0
  492. package/lib/swipl/library/qsave.pl +1516 -0
  493. package/lib/swipl/library/quasi_quotations.pl +300 -0
  494. package/lib/swipl/library/quintus.pl +437 -0
  495. package/lib/swipl/library/random.pl +459 -0
  496. package/lib/swipl/library/rbtrees.pl +1153 -0
  497. package/lib/swipl/library/readln.pl +256 -0
  498. package/lib/swipl/library/readutil.pl +304 -0
  499. package/lib/swipl/library/record.pl +544 -0
  500. package/lib/swipl/library/rwlocks.pl +172 -0
  501. package/lib/swipl/library/sandbox.pl +1384 -0
  502. package/lib/swipl/library/semweb/dc.rdfs +198 -0
  503. package/lib/swipl/library/semweb/eor.rdfs +95 -0
  504. package/lib/swipl/library/semweb/owl.owl +287 -0
  505. package/lib/swipl/library/semweb/rdf_library.ttl +90 -0
  506. package/lib/swipl/library/semweb/rdfs.rdfs +251 -0
  507. package/lib/swipl/library/settings.pl +755 -0
  508. package/lib/swipl/library/shell.pl +462 -0
  509. package/lib/swipl/library/shlib.pl +670 -0
  510. package/lib/swipl/library/solution_sequences.pl +439 -0
  511. package/lib/swipl/library/sort.pl +119 -0
  512. package/lib/swipl/library/statistics.pl +541 -0
  513. package/lib/swipl/library/streams.pl +118 -0
  514. package/lib/swipl/library/strings.pl +469 -0
  515. package/lib/swipl/library/system.pl +95 -0
  516. package/lib/swipl/library/tables.pl +381 -0
  517. package/lib/swipl/library/tableutil.pl +771 -0
  518. package/lib/swipl/library/tabling.pl +42 -0
  519. package/lib/swipl/library/terms.pl +457 -0
  520. package/lib/swipl/library/theme/auto.pl +61 -0
  521. package/lib/swipl/library/theme/dark.pl +455 -0
  522. package/lib/swipl/library/theme/light.pl +45 -0
  523. package/lib/swipl/library/thread.pl +810 -0
  524. package/lib/swipl/library/thread_pool.pl +508 -0
  525. package/lib/swipl/library/threadutil.pl +574 -0
  526. package/lib/swipl/library/tty.pl +316 -0
  527. package/lib/swipl/library/ugraphs.pl +644 -0
  528. package/lib/swipl/library/unicode/INDEX.pl +6 -0
  529. package/lib/swipl/library/unicode/blocks.pl +414 -0
  530. package/lib/swipl/library/url.pl +1129 -0
  531. package/lib/swipl/library/utf8.pl +145 -0
  532. package/lib/swipl/library/varnumbers.pl +221 -0
  533. package/lib/swipl/library/vm.pl +251 -0
  534. package/lib/swipl/library/wfs.pl +205 -0
  535. package/lib/swipl/library/when.pl +263 -0
  536. package/lib/swipl/library/writef.pl +278 -0
  537. package/lib/swipl/library/www_browser.pl +251 -0
  538. package/lib/swipl/library/yall.pl +574 -0
  539. package/lib/swipl/library/zip.pl +211 -0
  540. package/lib/swipl/swipl.home +1 -0
  541. package/lib/vendor/libcrypto.so.3 +0 -0
  542. package/lib/vendor/libpcre2-8.so.0 +0 -0
  543. package/lib/vendor/libssl.so.3 +0 -0
  544. package/lib/vendor/libz.so.1 +0 -0
  545. package/licenses/OpenSSL-LICENSE.txt +177 -0
  546. package/licenses/PCRE2-COPYING +5 -0
  547. package/licenses/README.md +12 -0
  548. package/licenses/SWI-Prolog-LICENSE +41 -0
  549. package/licenses/zlib-LICENSE +22 -0
  550. package/package.json +27 -0
@@ -0,0 +1,261 @@
1
+ /* Part of SWI-Prolog
2
+
3
+ Author: Jan Wielemaker
4
+ E-mail: J.Wielemaker@vu.nl
5
+ WWW: http://www.swi-prolog.org
6
+ Copyright (c) 1985-2025, University of Amsterdam
7
+ VU University Amsterdam
8
+ SWI-Prolog Solutions b.v.
9
+ All rights reserved.
10
+
11
+ Redistribution and use in source and binary forms, with or without
12
+ modification, are permitted provided that the following conditions
13
+ are met:
14
+
15
+ 1. Redistributions of source code must retain the above copyright
16
+ notice, this list of conditions and the following disclaimer.
17
+
18
+ 2. Redistributions in binary form must reproduce the above copyright
19
+ notice, this list of conditions and the following disclaimer in
20
+ the documentation and/or other materials provided with the
21
+ distribution.
22
+
23
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34
+ POSSIBILITY OF SUCH DAMAGE.
35
+ */
36
+
37
+ :- module(toplevel_variables,
38
+ [ print_toplevel_variables/0,
39
+ verbose_expansion/1,
40
+ '$replace_toplevel_vars'/4,
41
+ '$save_toplevel_vars'/1, % +Bindings
42
+ '$switch_toplevel_mode'/1 % +Mode
43
+ ]).
44
+
45
+ :- dynamic
46
+ verbose/0.
47
+
48
+ % define the operator globally
49
+ :- op(1, fx, user:($)).
50
+
51
+ %! '$replace_toplevel_vars'(+Query0, -Query, +Bindings0, -Bindings) is det.
52
+ %
53
+ % These predicates realise reuse of toplevel variables using the
54
+ % $Var notation. These hooks are normally called by toplevel.pl.
55
+ % If the user defines rules for these hooks in the user module,
56
+ % these implementations may be called (or not) to define the
57
+ % interaction with the user hooks.
58
+
59
+ '$replace_toplevel_vars'(Query, Expanded, Bindings, ExpandedBindings) :-
60
+ expand_vars(Bindings, Query, Expanded, NewBindings),
61
+ term_variables(Expanded, Free),
62
+ delete_bound_vars(Bindings, Free, ExpandedBindings0),
63
+ '$append'(ExpandedBindings0, NewBindings, ExpandedBindings),
64
+ ( verbose,
65
+ Query \=@= Expanded
66
+ -> print_query(Expanded, ExpandedBindings)
67
+ ; true
68
+ ).
69
+
70
+ print_query(Query, Bindings) :-
71
+ bind_vars(Bindings),
72
+ writeq(Query), write('.'), nl,
73
+ fail. % undo bind_vars/2.
74
+ print_query(_, _).
75
+
76
+ bind_vars([]).
77
+ bind_vars([Name=Value|Rest]) :-
78
+ Name = Value,
79
+ bind_vars(Rest).
80
+
81
+ %! expand_vars(+Bindings, +Query, -Expanded, -NewBindings) is det.
82
+ %
83
+ % Replace $Var terms inside Query by the toplevel variable term
84
+ % and unify the result with Expanded. NewBindings gets Name=Value
85
+ % terms for toplevel variables that are bound to non-ground terms.
86
+ %
87
+ % @error existence_error(answer_variable, Name)
88
+
89
+ expand_vars(Bindings, Query, Expanded, NewBindings) :-
90
+ current_prolog_flag(toplevel_var_size, Count),
91
+ Count > 0,
92
+ !,
93
+ do_expand_vars(Bindings, Query, Expanded, NewBindings).
94
+ expand_vars(Bindings, Query, Query, Bindings).
95
+
96
+ do_expand_vars(Bindings, Query, Expanded, NewBindings) :-
97
+ acyclic_term(Bindings),
98
+ !,
99
+ phrase(expand_vars(Bindings, Query, Expanded), NewBindings).
100
+ do_expand_vars(Bindings, Query, Expanded, NewBindings) :-
101
+ '$factorize_term'(Query, Skel, Assignments),
102
+ !,
103
+ phrase(expand_vars(Bindings, Skel+Assignments, Expanded+EAssignments),
104
+ NewBindings),
105
+ rebind(EAssignments).
106
+
107
+ expand_vars(_, Var, Var) -->
108
+ { var(Var) },
109
+ !.
110
+ expand_vars(_, Atomic, Atomic) -->
111
+ { atomic(Atomic) },
112
+ !.
113
+ expand_vars(Bindings, $(Var), Value) -->
114
+ { name_var(Var, Bindings, Name),
115
+ ( toplevel_var(Name, Value)
116
+ -> !
117
+ ; throw(error(existence_error(answer_variable, Name), _))
118
+ )
119
+ },
120
+ [ Name = Value ].
121
+ expand_vars(Bindings, Term, Expanded) -->
122
+ { compound_name_arity(Term, Name, Arity),
123
+ !,
124
+ compound_name_arity(Expanded, Name, Arity),
125
+ End is Arity + 1
126
+ },
127
+ expand_args(1, End, Bindings, Term, Expanded).
128
+
129
+ expand_args(End, End, _, _, _) --> !.
130
+ expand_args(Arg0, End, Bindings, T0, T) -->
131
+ { arg(Arg0, T0, V0),
132
+ arg(Arg0, T, V1),
133
+ Arg1 is Arg0 + 1
134
+ },
135
+ expand_vars(Bindings, V0, V1),
136
+ expand_args(Arg1, End, Bindings, T0, T).
137
+
138
+ name_var(Var, [VarName = TheVar|_], VarName) :-
139
+ Var == TheVar,
140
+ !.
141
+ name_var(Var, [_|T], Name) :-
142
+ name_var(Var, T, Name).
143
+
144
+
145
+ delete_bound_vars([], _, []).
146
+ delete_bound_vars([H|T0], Free, [H|T1]) :-
147
+ H = (_Name = Value),
148
+ v_member(Value, Free),
149
+ !,
150
+ delete_bound_vars(T0, Free, T1).
151
+ delete_bound_vars([_|T0], Free, T1) :-
152
+ delete_bound_vars(T0, Free, T1).
153
+
154
+ v_member(V, [H|T]) :-
155
+ ( V == H
156
+ ; v_member(V, T)
157
+ ).
158
+
159
+ rebind([]).
160
+ rebind([Var=Value|T]) :-
161
+ Var = Value,
162
+ rebind(T).
163
+
164
+ %! '$save_toplevel_vars'(+Bindings) is det.
165
+ %
166
+ % Save toplevel variable bindings.
167
+
168
+ '$save_toplevel_vars'(Bindings) :-
169
+ ( current_prolog_flag(toplevel_var_size, Count),
170
+ Count > 0
171
+ -> assert_bindings(Bindings)
172
+ ; true
173
+ ).
174
+
175
+ assert_bindings([]).
176
+ assert_bindings([Var = Value|Tail]) :-
177
+ assert_binding(Var, Value),
178
+ assert_bindings(Tail).
179
+
180
+ assert_binding(Var, Value) :-
181
+ ( ( nonvar(Value) ; attvar(Value))
182
+ -> update_var(Var, Value)
183
+ ; true
184
+ ).
185
+
186
+ update_var(Name, Value) :-
187
+ current_prolog_flag(toplevel_mode, recursive),
188
+ !,
189
+ ( nb_current('$topvar', Bindings),
190
+ Bindings \== []
191
+ -> true
192
+ ; Bindings = '$topvar'{}
193
+ ),
194
+ put_dict(Name, Bindings, Value, NewBindings),
195
+ b_setval('$topvar', NewBindings).
196
+ update_var(Name, Value) :-
197
+ delete_var(Name),
198
+ set_var(Name, Value).
199
+
200
+ delete_var(Name) :-
201
+ forall(recorded('$topvar', Name = _, Ref), erase(Ref)).
202
+
203
+ set_var(Name, Value) :-
204
+ current_prolog_flag(toplevel_var_size, Count),
205
+ !,
206
+ ( '$term_size'(Value, Count, _)
207
+ -> recorda('$topvar', Name = Value, _)
208
+ ; true
209
+ ).
210
+ set_var(Name, Value) :-
211
+ recorda('$topvar', Name = Value, _).
212
+
213
+ toplevel_var(Var, Binding) :-
214
+ current_prolog_flag(toplevel_mode, recursive),
215
+ !,
216
+ nb_current('$topvar', Bindings),
217
+ Bindings \== [],
218
+ get_dict(Var, Bindings, Binding).
219
+ toplevel_var(Var, Binding) :-
220
+ recorded('$topvar', Var=Binding).
221
+
222
+ %! '$switch_toplevel_mode'(+Mode) is det.
223
+ %
224
+ % Migrate the variable database when switching to a new toplevel
225
+ % mode. Alternatively we may decide to wipe it as the semantics of
226
+ % the variables may be slightly different.
227
+
228
+ '$switch_toplevel_mode'(recursive) :-
229
+ findall(Name-Value, retract_topvar(Name, Value), Pairs),
230
+ dict_pairs(Bindings, '$topvar', Pairs),
231
+ b_setval('$topvar', Bindings).
232
+ '$switch_toplevel_mode'(backtracking) :-
233
+ ( nb_current('$topvar', Dict),
234
+ Dict \== []
235
+ -> forall(get_dict(Name, Dict, Value),
236
+ recorda('$topvar', Name = Value, _))
237
+ ),
238
+ nb_delete('$topvar').
239
+
240
+ retract_topvar(Name, Value) :-
241
+ recorded('$topvar', Name=Value, Ref),
242
+ erase(Ref).
243
+
244
+ %! print_toplevel_variables
245
+ %
246
+ % Print known bindings for toplevel ($Var) variables.
247
+
248
+ print_toplevel_variables :-
249
+ ( toplevel_var(Name, Value)
250
+ *-> format('$~w =~t~12|~p~n', [Name, Value]),
251
+ fail
252
+ ; format('No defined toplevel variables~n')
253
+ ).
254
+
255
+ verbose_expansion(on) :-
256
+ !,
257
+ retractall(verbose),
258
+ asserta(verbose).
259
+ verbose_expansion(off) :-
260
+ retractall(verbose).
261
+
Binary file
@@ -0,0 +1,131 @@
1
+ # This CMake include file is intended to facilitate building SWI-Prolog
2
+ # packs that include foreign code using CMake. It provides the
3
+ # following:
4
+ #
5
+ # - A library target `swipl::libswipl`. If this is a public
6
+ # installaton this is achieved by including
7
+ # `<prefix>/lib/cmake/swipl/SWIPLTargets.cmake` which is created
8
+ # by the SWI-Prolog build. Else it is assembled here from the
9
+ # environment variables that are provided by pack_install/1.
10
+ #
11
+ # - If figures out whether modules need to be linked against
12
+ # libswipl.so. Notably on ELF platforms this is not needed,
13
+ # which implies the module remains independent from the exact
14
+ # Prolog version.
15
+ #
16
+ # - It provides a function target_link_swipl(target) that uses
17
+ # the above to either add `swipl::libswipl` to your target,
18
+ # or, if linking is not needed, only the include directories.
19
+ #
20
+ # - It provides a function swipl_add_test(name) that runs a
21
+ # test file from test/test_${name}.pl
22
+
23
+ if("$ENV{SWIPL_PACK_VERSION}" EQUAL 2)
24
+ set(swipl_home_dir $ENV{SWIPL_HOME_DIR})
25
+ set(swipl_version $ENV{SWIPL_VERSION})
26
+ set(swipl_module_lib $ENV{SWIPL_MODULE_LIB})
27
+ set(swipl_module_dir $ENV{SWIPL_MODULE_DIR})
28
+ elseif($ENV{SWIHOME}) # Pack version 1
29
+ set(swipl_home_dir $ENV{SWIHOME})
30
+ set(swipl_version $ENV{SWIPLVERSION})
31
+ set(swipl_module_lib $ENV{SWISOLIB})
32
+ set(swipl_module_dir $ENV{PACKSODIR})
33
+ else() # Outside pack_install
34
+ function(swipl_config)
35
+ find_program(SWIPL swipl REQUIRED)
36
+ execute_process(
37
+ COMMAND ${SWIPL} --dump-runtime-variables
38
+ OUTPUT_VARIABLE swipl_config)
39
+ string(REGEX REPLACE "\n" ";" swipl_config_lines ${swipl_config})
40
+ foreach(swipl_config_line ${swipl_config_lines})
41
+ if(swipl_config_line MATCHES "^([A-Z_]*)=\"(.*)\"")
42
+ set(${CMAKE_MATCH_1} ${CMAKE_MATCH_2} PARENT_SCOPE)
43
+ endif()
44
+ endforeach()
45
+ endfunction()
46
+ swipl_config()
47
+ set(swipl_home_dir ${PLBASE})
48
+ set(swipl_version ${PLVERSION})
49
+ if(CMAKE_EXECUTABLE_FORMAT MATCHES ELF)
50
+ set(swipl_module_lib)
51
+ else()
52
+ set(swipl_module_lib ${PLLIB})
53
+ endif()
54
+ set(swipl_module_dir lib/${PLARCH})
55
+ endif()
56
+
57
+ math(EXPR swipl_version_major "${swipl_version} / 10000")
58
+
59
+ if(${swipl_home_dir} MATCHES "/home$")
60
+ cmake_path(GET swipl_home_dir PARENT_PATH swipl_build_dir)
61
+ message("Using swipl from build directory ${swipl_build_dir}.")
62
+
63
+ find_library(swipl_libs
64
+ NAMES swipl
65
+ PATHS "${swipl_build_dir}/src"
66
+ NO_CMAKE_ENVIRONMENT_PATH
67
+ NO_CMAKE_FIND_ROOT_PATH
68
+ NO_CMAKE_PATH
69
+ NO_CMAKE_SYSTEM_PATH
70
+ NO_DEFAULT_PATH
71
+ NO_PACKAGE_ROOT_PATH
72
+ NO_SYSTEM_ENVIRONMENT_PATH)
73
+ cmake_path(GET swipl_libs FILENAME swipl_soname)
74
+ set(swipl_soname "${swipl_soname}.${swipl_version_major}")
75
+
76
+ add_library(swipl::libswipl SHARED IMPORTED)
77
+ set_target_properties(swipl::libswipl PROPERTIES
78
+ INTERFACE_INCLUDE_DIRECTORIES ${swipl_home_dir}/include
79
+ IMPORTED_LOCATION ${swipl_libs}
80
+ IMPORTED_SONAME ${swipl_soname})
81
+ else()
82
+ cmake_path(GET swipl_home_dir PARENT_PATH libdir)
83
+ if(EXISTS "${libdir}/cmake/swipl/SWIPLTargets.cmake")
84
+ message("Using CMake exports from ${libdir}/cmake/swipl")
85
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${libdir}/cmake/swipl")
86
+ include(SWIPLTargets)
87
+ endif()
88
+ endif()
89
+
90
+ if(swipl_module_lib)
91
+ if("${swipl_module_lib}" STREQUAL "")
92
+ set(SWIPL_MODULE_LINK_LIBSWIPL OFF)
93
+ else()
94
+ set(SWIPL_MODULE_LINK_LIBSWIPL ON)
95
+ endif()
96
+ else()
97
+ if(CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF")
98
+ set(SWIPL_MODULE_LINK_LIBSWIPL OFF)
99
+ else()
100
+ set(SWIPL_MODULE_LINK_LIBSWIPL ON)
101
+ endif()
102
+ endif()
103
+
104
+ function(target_link_swipl target)
105
+ if(SWIPL_MODULE_LINK_LIBSWIPL)
106
+ message("Platform needs to link against libswipl.")
107
+ target_link_libraries(${target} PRIVATE swipl::libswipl)
108
+ else()
109
+ message("Platform does not need to link against libswipl.")
110
+ get_property(swipl_include_dir
111
+ TARGET swipl::libswipl
112
+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
113
+ target_include_directories(${target}
114
+ PRIVATE ${swipl_include_dir})
115
+ endif()
116
+ set_target_properties(${target} PROPERTIES
117
+ OUTPUT_NAME ${target} PREFIX "")
118
+ endfunction()
119
+
120
+ function(swipl_add_test name)
121
+ add_test(NAME ${name}
122
+ COMMAND ${SWIPL} -p foreign=${CMAKE_CURRENT_SOURCE_DIR}/${swipl_module_dir}
123
+ -p library=${CMAKE_CURRENT_SOURCE_DIR}/prolog
124
+ --on-error=status
125
+ -g test_${name}
126
+ -t halt
127
+ ${CMAKE_CURRENT_SOURCE_DIR}/test/test_${name}.pl)
128
+ endfunction()
129
+
130
+ # Avoid message on unused variable
131
+ set(SWIPL "${SWIPL}")
@@ -0,0 +1,23 @@
1
+ # SWI-Prolog customization files
2
+
3
+ This directory contains example user-customisation files. Please check
4
+ the files themselves for options and installation hints.
5
+
6
+ The file `init.pl` provides a template for personalizing SWI-Prolog. On
7
+ Unix systems it is installed using
8
+
9
+ mkdir -p ${XDG_DATA_HOME-$HOME/.config}/swi-prolog
10
+ cp init.pl ${XDG_DATA_HOME-$HOME/.config}/swi-prolog
11
+
12
+ On Windows systems it is searched for in `swi-prolog` subdirectory of
13
+ the CSIDL folder CSIDL_APPDATA.
14
+
15
+ The `edit` script is for asking a PceEmacs server to edit files for you.
16
+ PceEmacs normally creates a unix domain socket in its configuration
17
+ directory. After starting PceEmacs, edit can be used as
18
+
19
+ edit file
20
+ edit file:line
21
+ edit file:line:column
22
+
23
+ If PceEmacs cannot be contacted, `emacs` is called.
@@ -0,0 +1,101 @@
1
+ #!/bin/sh -f
2
+ #
3
+ # Ask PceEmacs to edit files for me. To use this package, make sure
4
+ # xpce-client is installed in your path and one XPCE process runs
5
+ # PceEmacs as a server. One way to do that is to put the following in
6
+ # your X startup:
7
+ #
8
+ # xterm -iconic -title 'PceEmacs server' -e swipl -g emacs_server
9
+ #
10
+ # If you use the `terminator` terminal emulator, consider adding the
11
+ # editor plugin from https://github.com/mchelem/terminator-editor-plugin
12
+ # and use the command ``edit --no-wait {filepath}:{line}``. This allows
13
+ # opening locations reported as `file:line` to be opened using
14
+ # ctrl-click in PceEmacs.
15
+ #
16
+ # Author: Jan Wielemaker
17
+ # Copying: Public domain
18
+
19
+ usage()
20
+ { echo "usage: `basename $0` [--no-wait] [+line] file[:line]"
21
+ exit 1
22
+ }
23
+
24
+ line=""
25
+ opts="-bc"
26
+ wait=wait
27
+
28
+ HOST=`hostname`
29
+ APPCONFIG=${XDG_DATA_HOME-$HOME/.config}/swi-prolog/xpce
30
+ serverbase="$APPCONFIG/emacs_server"
31
+
32
+ case "$DISPLAY" in
33
+ :*) server=$serverbase.$(echo "$DISPLAY" | sed 's/^:\([0-9]*\).*/\1/')
34
+ ;;
35
+ *) server=$serverbase.$HOST
36
+ ;;
37
+ esac
38
+
39
+ #echo "Server = $server"
40
+
41
+ if [ ! -S "$server" -o -z "$DISPLAY" ]; then
42
+ server="$serverbase"
43
+ if [ ! -S "$server" ]; then
44
+ echo "No PceEmacs server"
45
+ exec emacs "$*"
46
+ fi
47
+ fi
48
+
49
+ done=false
50
+ while [ $done = false ]; do
51
+ case "$1" in
52
+ +[0-9]*)
53
+ line=`echo "$1" | sed 's/^+//'`
54
+ shift
55
+ ;;
56
+ --no-wait)
57
+ opts=-c
58
+ wait=nowait
59
+ shift
60
+ ;;
61
+ *)
62
+ done=true
63
+ ;;
64
+ esac
65
+ done
66
+
67
+ file="$1"
68
+
69
+ case "$file" in
70
+ "") usage
71
+ ;;
72
+ [~/]*) ;;
73
+ *) file=`pwd`/$file ;;
74
+ esac
75
+
76
+ case "$file" in
77
+ *:[0-9]*:[0-9]*)
78
+ eval `echo $file | sed 's/\(.*\):\([0-9]*\):\([0-9]*\)$/file=\1;line=\2;charpos=\3/'`
79
+ ;;
80
+ *:[0-9]*)
81
+ eval `echo $file | sed 's/\(.*\):\([0-9]*\)$/file=\1;line=\2/'`
82
+ ;;
83
+ esac
84
+
85
+ if [ -z "$line" ]; then
86
+ cmd="edit('$file',[],[],$wait)"
87
+ elif [ -z "$charpos" ]; then
88
+ cmd="edit('$file',$line,[],$wait)"
89
+ else
90
+ cmd="edit('$file',$line,$charpos,$wait)"
91
+ fi
92
+
93
+ xpce-client $server $opts "$cmd"
94
+
95
+ if [ $? = 2 ]; then
96
+ if [ "$line" = "" ]; then
97
+ exec emacs "$file";
98
+ else
99
+ exec emacs "$file" +$line
100
+ fi
101
+ fi
@@ -0,0 +1,164 @@
1
+ /* -*- Prolog -*-
2
+
3
+ SWI-Prolog personalization file
4
+ */
5
+
6
+ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
7
+ This is a sample user-initialisation file for SWI-Prolog. If you wish to
8
+ customise prolog, make a copy of this file and edit it to your
9
+ preferences.
10
+
11
+ This file must be installed in <config>/init.pl. <config> can be found
12
+ using
13
+
14
+ ?- absolute_file_name(app_config(.), Dir, [file_type(directory)]).
15
+
16
+ More hints on useful things you can put into this file are in the
17
+ SWI-Prolog reference manual. Notably look at debugger settings, editor
18
+ hooks, file_search_path/2, set_prolog_flag/2 and portray/1.
19
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
20
+
21
+ /*******************************
22
+ * IDE *
23
+ *******************************/
24
+
25
+ % By default, xpce (the graphics library) runs in a separate
26
+ % thread. This allows editing and inspecting your program while it
27
+ % is running. All components of the Prolog development environment
28
+ % are aware of this. If you use your own xpce based applications
29
+ % and if you develop using xpce, it might be wise to disable this
30
+ % feature and keep xpce in the thread `main`.
31
+
32
+ % :- set_prolog_flag(xpce_threaded, false).
33
+
34
+
35
+ /*******************************
36
+ * EDITOR *
37
+ *******************************/
38
+
39
+ % Define the editor to use. Note that more advanced manipulation
40
+ % of this is defined in the SWI-Prolog reference manual, section
41
+ % "Listing and Editor Interface"
42
+ %
43
+ % The value pce_emacs (or built_in) causes the system to use the
44
+ % built-in editor PceEmacs if the environment provides for a GUI.
45
+ % pce_emacs is the default if XPCE is available.
46
+ %
47
+ % The second entry defines an arbitrary editor and how to tell
48
+ % SWI-Prolog to open a file with it on a specified line-number.
49
+
50
+ % :- set_prolog_flag(editor, pce_emacs).
51
+ % :- set_prolog_flag(editor, pico).
52
+
53
+ %:- multifile
54
+ % prolog_edit:edit_command/2.
55
+ %
56
+ %prolog_edit:edit_command(pico, '%e +%d "%f"').
57
+ %prolog_edit:edit_command(pico, '%e "%f"').
58
+
59
+
60
+ /*******************************
61
+ * DEBUGGING *
62
+ *******************************/
63
+
64
+ % If you prefer graphical tracing, add the line below.
65
+
66
+ % :- (current_prolog_flag(gui, true) -> guitracer ; true).
67
+
68
+ % Determine how terms are printed by the debugger and toplevel. The
69
+ % values here are defaults. max_depth(10) replaces all subterms at
70
+ % a greater depth with elipses (...). See write_term/3 for further
71
+ % explanation and more options.
72
+
73
+ % :- set_prolog_flag(answer_write_options,
74
+ % [quoted(true), portray(true), max_depth(10)]).
75
+ % :- set_prolog_flag(debugger_write_options,
76
+ % [quoted(true), portray(true), max_depth(10)]).
77
+
78
+ % If you want to suppress printing toplevel query variables
79
+ % starting with an `_'
80
+
81
+ % :- set_prolog_flag(toplevel_print_anon, false).
82
+
83
+ % If you do not want the tracer to stop at at the exit port.
84
+
85
+ % :- leash(-exit).
86
+
87
+ % control stacktraces for uncaught exceptions:
88
+ %
89
+ % - _depth_: max # frames displayed
90
+ % - _goal_depth_: copy depth for goals. Higher numbers show
91
+ % more details about the arguments, but may run out of
92
+ % memory or make the message too verbose.
93
+ % - _show_lines_: try to derive lines numbers. Makes generating
94
+ % stack traces a lot slower, but typically ok.
95
+
96
+ %:- set_prolog_flag(backtrace, true).
97
+ %:- set_prolog_flag(backtrace_depth, 20).
98
+ %:- set_prolog_flag(backtrace_goal_depth, 3).
99
+ %:- set_prolog_flag(backtrace_show_lines, true).
100
+
101
+
102
+ /*******************************
103
+ * CONSOLE FEEDBACK *
104
+ *******************************/
105
+
106
+ % Use the flag below to disable coloured output in all cases.
107
+ % Normally, coloured output is enabled if the output is a
108
+ % terminal.
109
+
110
+ % :- set_prolog_flag(color_term, false).
111
+
112
+ % Specify colors for the above, based on the message kind See
113
+ % ansi_format/3 for specifying visual effects. The table below
114
+ % duplicates the default behavior. Notably on terminals with a
115
+ % dark background, yellow might be a better choice for warnings
116
+ % and errors.
117
+
118
+ %:- multifile user:message_property/2.
119
+ %
120
+ %user:message_property(informational, color(fg(green))).
121
+ %user:message_property(information, color(fg(green))).
122
+ %user:message_property(debug, color(fg(blue))).
123
+ %user:message_property(warning, color(fg(red))).
124
+ %user:message_property(error, color([fg(red),bold])).
125
+
126
+ % Specify feedback for loading files. Values are `full` (feedback
127
+ % at start and end of each file), `normal` (feedback at end of
128
+ % each file), `brief` (feedback at end of toplevel file) and
129
+ % `silent` (no feedback).
130
+
131
+ % :- set_prolog_flag(verbose_load, silent).
132
+
133
+
134
+ /*******************************
135
+ * COMMAND LINE HISTORY *
136
+ *******************************/
137
+
138
+ % If you want to access the command-history like a Unix shell,
139
+ % set =history= to the number of commands to remember.
140
+
141
+ % :- set_prolog_flag(history, 50).
142
+
143
+ % Set =save_history= to =false= if you never want to save/restore the
144
+ % command history. Normally, the history is enabled if the system
145
+ % provides a history and the input comes from a terminal.
146
+
147
+ % :- set_prolog_flag(save_history, false).
148
+
149
+
150
+ /*******************************
151
+ * RATIONAL NUMBERS *
152
+ *******************************/
153
+
154
+ % As of version 8.1.22 SWI-Prolog provides native support for proper
155
+ % atomic rational nubers. This is controlled by the two flags below. The
156
+ % default is conservative, supporting rationals as `1r3` and use
157
+ % floating point numbers for integer divisions and exponentation with
158
+ % negative exponent (e.g., `2^(-2)`).
159
+ %
160
+ % Please try enabling the settings below. Future versions may switch to
161
+ % these defaults. Please report experience on the SWI-Prolog forum.
162
+
163
+ %:- set_prolog_flag(prefer_rationals, true). % Int/Int --> Rational
164
+ %:- set_prolog_flag(rational_syntax, natural). % Write as `1/3`