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,182 @@
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) 2011-2015, University of Amsterdam
7
+ VU University Amsterdam
8
+ All rights reserved.
9
+
10
+ Redistribution and use in source and binary forms, with or without
11
+ modification, are permitted provided that the following conditions
12
+ are met:
13
+
14
+ 1. Redistributions of source code must retain the above copyright
15
+ notice, this list of conditions and the following disclaimer.
16
+
17
+ 2. Redistributions in binary form must reproduce the above copyright
18
+ notice, this list of conditions and the following disclaimer in
19
+ the documentation and/or other materials provided with the
20
+ distribution.
21
+
22
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
+ POSSIBILITY OF SUCH DAMAGE.
34
+ */
35
+
36
+ :- module(codesio,
37
+ [ format_to_codes/3, % +Format, +Args, -Codes
38
+ format_to_codes/4, % +Format, +Args, -Codes, ?Tail
39
+ write_to_codes/2, % +Term, -Codes
40
+ write_to_codes/3, % +Term, -Codes, ?Tail
41
+ write_term_to_codes/3, % +Term, -Codes, +Options
42
+ write_term_to_codes/4, % +Term, -Codes, ?Tail, +Options
43
+ % read predicates
44
+ read_from_codes/2, % +Codes, -Term
45
+ read_term_from_codes/3, % +Codes, -Term, +Options
46
+ open_codes_stream/2, % +Codes, -Stream
47
+ with_output_to_codes/2, % :Goal, -Codes
48
+ with_output_to_codes/3, % :Goal, -Codes, ?Tail
49
+ with_output_to_codes/4 % :Goal, -Stream, -Codes, ?Tail
50
+ ]).
51
+
52
+ :- meta_predicate
53
+ with_output_to_codes(0, -),
54
+ with_output_to_codes(0, -, ?),
55
+ with_output_to_codes(0, -, -, ?).
56
+
57
+ :- predicate_options(read_term_from_codes/3, 3,
58
+ [pass_to(system:read_term/3, 3)]).
59
+ :- predicate_options(write_term_to_codes/3, 3,
60
+ [pass_to(system:write_term/3, 3)]).
61
+ :- predicate_options(write_term_to_codes/4, 4,
62
+ [pass_to(system:write_term/3, 3)]).
63
+
64
+ /** <module> I/O on Lists of Character Codes
65
+
66
+ This module emulates the SICStus library codesio.pl for reading and
67
+ writing from/to lists of character codes. Most of these predicates are
68
+ straight calls into similar SWI-Prolog primitives.
69
+
70
+ This library is based on library(charsio) that originates from Quintus
71
+ Prolog. The naming is updated to reflect the ISO naming conventions and
72
+ the ISO predicates atom_codes/2, etc are obviously removed from this
73
+ library.
74
+
75
+ @compat SICStus 4
76
+ */
77
+
78
+ %! format_to_codes(+Format, +Args, -Codes) is det.
79
+ %
80
+ % Use format/2 to write to a list of character codes.
81
+
82
+ format_to_codes(Format, Args, Codes) :-
83
+ format(codes(Codes), Format, Args).
84
+
85
+ %! format_to_codes(+Format, +Args, -Codes, ?Tail) is det.
86
+ %
87
+ % Use format/2 to write to a difference list of character codes.
88
+
89
+ format_to_codes(Format, Args, Codes, Tail) :-
90
+ format(codes(Codes, Tail), Format, Args).
91
+
92
+ %! write_to_codes(+Term, -Codes)
93
+ %
94
+ % Codes is a list of character codes produced by write/1 on Term.
95
+
96
+ write_to_codes(Term, Codes) :-
97
+ format(codes(Codes), '~w', [Term]).
98
+
99
+ %! write_to_codes(+Term, -Codes, ?Tail)
100
+ %
101
+ % Codes is a difference-list of character codes produced by write/1 on Term.
102
+
103
+ write_to_codes(Term, Codes, Tail) :-
104
+ format(codes(Codes, Tail), '~w', [Term]).
105
+
106
+ %! write_term_to_codes(+Term, -Codes, +Options) is det.
107
+ %
108
+ % True when Codes is a string that matches the output of
109
+ % write_term/3 using Options.
110
+
111
+ write_term_to_codes(Term, Codes, Options) :-
112
+ format(codes(Codes), '~W', [Term, Options]).
113
+
114
+ %! write_term_to_codes(+Term, -Codes, ?Tail, +Options) is det.
115
+ %
116
+ % True when Codes\Tail is a difference list containing the
117
+ % character codes that matches the output of write_term/3 using
118
+ % Options.
119
+
120
+ write_term_to_codes(Term, Codes, Tail, Options) :-
121
+ format(codes(Codes, Tail), '~W', [Term, Options]).
122
+
123
+ %! read_from_codes(+Codes, -Term) is det.
124
+ %
125
+ % Read Codes into Term.
126
+ %
127
+ % @compat The SWI-Prolog version does not require Codes to end
128
+ % in a full-stop.
129
+
130
+ read_from_codes([], Term) :-
131
+ !,
132
+ Term = end_of_file.
133
+ read_from_codes(List, Term) :-
134
+ atom_to_term(List, Term, _).
135
+
136
+ %! read_term_from_codes(+Codes, -Term, +Options) is det.
137
+ %
138
+ % Read Codes into Term. Options are processed by read_term/3.
139
+ %
140
+ % @compat sicstus
141
+
142
+ read_term_from_codes(Codes, Term, Options) :-
143
+ read_term_from_atom(Codes, Term, Options).
144
+
145
+ %! open_codes_stream(+Codes, -Stream) is det.
146
+ %
147
+ % Open Codes as an input stream.
148
+ %
149
+ % @see open_string/2.
150
+
151
+ open_codes_stream(Codes, Stream) :-
152
+ open_string(Codes, Stream).
153
+
154
+ %! with_output_to_codes(:Goal, Codes) is det.
155
+ %
156
+ % Run Goal with as once/1. Output written to =current_output=
157
+ % is collected in Codes.
158
+
159
+ with_output_to_codes(Goal, Codes) :-
160
+ with_output_to(codes(Codes), Goal).
161
+
162
+ %! with_output_to_codes(:Goal, -Codes, ?Tail) is det.
163
+ %
164
+ % Run Goal with as once/1. Output written to =current_output=
165
+ % is collected in Codes\Tail.
166
+
167
+ with_output_to_codes(Goal, Codes, Tail) :-
168
+ with_output_to(codes(Codes, Tail), Goal).
169
+
170
+ %! with_output_to_codes(:Goal, -Stream, -Codes, ?Tail) is det.
171
+ %
172
+ % As with_output_to_codes/3, but Stream is unified with the
173
+ % temporary stream. This predicate exists for compatibility
174
+ % reasons. In SWI-Prolog, the temporary stream is also available
175
+ % as `current_output`.
176
+
177
+ with_output_to_codes(Goal, Stream, Codes, Tail) :-
178
+ with_output_to(codes(Codes, Tail), with_stream(Stream, Goal)).
179
+
180
+ with_stream(Stream, Goal) :-
181
+ current_output(Stream),
182
+ call(Goal).
@@ -0,0 +1,183 @@
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) 2010-2011, VU University Amsterdam
7
+ All rights reserved.
8
+
9
+ Redistribution and use in source and binary forms, with or without
10
+ modification, are permitted provided that the following conditions
11
+ are met:
12
+
13
+ 1. Redistributions of source code must retain the above copyright
14
+ notice, this list of conditions and the following disclaimer.
15
+
16
+ 2. Redistributions in binary form must reproduce the above copyright
17
+ notice, this list of conditions and the following disclaimer in
18
+ the documentation and/or other materials provided with the
19
+ distribution.
20
+
21
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
+ POSSIBILITY OF SUCH DAMAGE.
33
+ */
34
+
35
+ :- module(coinduction,
36
+ [ (coinductive)/1,
37
+ op(1150, fx, (coinductive))
38
+ ]).
39
+ :- autoload(library(error),[instantiation_error/1,must_be/2]).
40
+
41
+
42
+ /** <module> Co-Logic Programming
43
+
44
+ This simple module implements the directive coinductive/1 as described
45
+ in "Co-Logic Programming: Extending Logic Programming with Coinduction"
46
+ by Luke Simon et al. The idea behind coinduction is that a goal succeeds
47
+ if it unifies to a parent goal. This enables some interesting programs,
48
+ notably on infinite trees (cyclic terms).
49
+
50
+ ==
51
+ :- use_module(library(coinduction)).
52
+
53
+ :- coinductive p/1.
54
+
55
+ p([1|T]) :- p(T).
56
+ ==
57
+
58
+ This predicate is true for any cyclic list containing only 1-s,
59
+ regardless of the cycle-length.
60
+
61
+ @bug Programs mixing normal predicates and coinductive predicates must
62
+ be _stratified_. The theory does not apply to normal Prolog calling
63
+ coinductive predicates, calling normal Prolog predicates, etc.
64
+
65
+ Stratification is not checked or enforced in any other way and thus
66
+ left as a responsibility to the user.
67
+ @see "Co-Logic Programming: Extending Logic Programming with Coinduction"
68
+ by Luke Simon et al.
69
+ */
70
+
71
+ :- multifile
72
+ system:term_expansion/2,
73
+ coinductive_declaration/2. % Head, Module
74
+
75
+ %! head(+Term, -QHead) is semidet.
76
+ %
77
+ % Must be first to allow reloading!
78
+
79
+ head(Var, _) :-
80
+ var(Var), !, fail.
81
+ head((H:-_B), Head) :-
82
+ !,
83
+ head(H, Head).
84
+ head(H, Head) :-
85
+ ( H = _:_
86
+ -> Head = H
87
+ ; prolog_load_context(module, M),
88
+ Head = M:H
89
+ ).
90
+
91
+ %! coinductive(:Spec)
92
+ %
93
+ % The declaration :- coinductive name/arity, ... defines
94
+ % predicates as _coinductive_. The predicate definition is wrapped
95
+ % such that goals unify with their ancestors. This directive must
96
+ % precede all clauses of the predicate.
97
+
98
+ coinductive(Spec) :-
99
+ throw(error(context_error(nodirective, coinductive(Spec)), _)).
100
+
101
+ expand_coinductive_declaration(Spec, Clauses) :-
102
+ prolog_load_context(module, Module),
103
+ phrase(expand_specs(Spec, Module), Clauses).
104
+
105
+ expand_specs(Var, _) -->
106
+ { var(Var),
107
+ !,
108
+ instantiation_error(Var)
109
+ }.
110
+ expand_specs(M:Spec, _) -->
111
+ !,
112
+ expand_specs(Spec, M).
113
+ expand_specs((A,B), Module) -->
114
+ !,
115
+ expand_specs(A, Module),
116
+ expand_specs(B, Module).
117
+ expand_specs(Head, Module) -->
118
+ { valid_pi(Head, Name, Arity),
119
+ functor(GenHead, Name, Arity)
120
+ },
121
+ [ coinduction:coinductive_declaration(GenHead, Module) ].
122
+
123
+
124
+ valid_pi(Name/Arity, Name, Arity) :-
125
+ must_be(atom, Name),
126
+ must_be(integer, Arity).
127
+
128
+
129
+ %! wrap_coinductive(+Head, +Term, -Clauses) is det.
130
+ %
131
+ % Create a wrapper. The first clause deal with the case where we
132
+ % already created the wrapper. The second creates the wrapper and
133
+ % the first clause.
134
+
135
+ wrap_coinductive(Pred, Term, Clause) :-
136
+ current_predicate(_, Pred),
137
+ !,
138
+ rename_clause(Term, 'coinductive ', Clause).
139
+ wrap_coinductive(Pred, Term, [Wrapper_1,Wrapper_2,FirstClause]) :-
140
+ Pred = M:Head,
141
+ functor(Head, Name, Arity),
142
+ length(Args, Arity),
143
+ GenHead =.. [Name|Args],
144
+ atom_concat('coinductive ', Name, WrappedName),
145
+ WrappedHead =.. [WrappedName|Args],
146
+ Wrapper_1 = (GenHead :-
147
+ prolog_current_frame(F),
148
+ prolog_frame_attribute(F, parent, FP),
149
+ prolog_frame_attribute(FP, parent_goal, M:GenHead)),
150
+ Wrapper_2 = (GenHead :- WrappedHead, coinduction:no_lco),
151
+ rename_clause(Term, 'coinductive ', FirstClause).
152
+
153
+ :- public no_lco/0.
154
+
155
+ no_lco. % true, but do not optimize away
156
+
157
+ %! rename_clause(+Clause, +Prefix, -Renamed) is det.
158
+ %
159
+ % Rename a clause by prefixing its old name wit h Prefix.
160
+
161
+ rename_clause((Head :- Body), Prefix, (NewHead :- Body)) :-
162
+ !,
163
+ rename_clause(Head, Prefix, NewHead).
164
+ rename_clause(M:Head, Prefix, M:NewHead) :-
165
+ rename_clause(Head, Prefix, NewHead).
166
+ rename_clause(Head, Prefix, NewHead) :-
167
+ Head =.. [Name|Args],
168
+ atom_concat(Prefix, Name, WrapName),
169
+ NewHead =.. [WrapName|Args].
170
+
171
+
172
+ /*******************************
173
+ * EXPANSION HOOKS *
174
+ *******************************/
175
+
176
+ system:term_expansion((:- coinductive(Spec)), Clauses) :-
177
+ expand_coinductive_declaration(Spec, Clauses).
178
+ system:term_expansion(Term, Wrapper) :-
179
+ head(Term, Module:Head),
180
+ coinductive_declaration(Head, Module),
181
+ wrap_coinductive(Module:Head, Term, Wrapper).
182
+
183
+
@@ -0,0 +1,289 @@
1
+ /* Part of SWI-Prolog
2
+
3
+ Author: Jan Wielemaker
4
+ E-mail: jan@swi-prolog.org
5
+ WWW: https://www.swi-prolog.org
6
+ Copyright (c) 2013-2026, VU University Amsterdam
7
+ SWI-Prolog Solutions b.v.
8
+ All rights reserved.
9
+
10
+ Redistribution and use in source and binary forms, with or without
11
+ modification, are permitted provided that the following conditions
12
+ are met:
13
+
14
+ 1. Redistributions of source code must retain the above copyright
15
+ notice, this list of conditions and the following disclaimer.
16
+
17
+ 2. Redistributions in binary form must reproduce the above copyright
18
+ notice, this list of conditions and the following disclaimer in
19
+ the documentation and/or other materials provided with the
20
+ distribution.
21
+
22
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
+ POSSIBILITY OF SUCH DAMAGE.
34
+ */
35
+
36
+ :- module(prolog_console_input,
37
+ [
38
+ ]).
39
+ :- autoload(library(lists), [reverse/2, append/2]).
40
+ :- autoload(library(dcg/basics), [remainder/3]).
41
+ :- autoload(library(apply), [maplist/3, convlist/3]).
42
+
43
+ /** <module> Support entering toplevel queries
44
+
45
+ This module implements prolog:complete_input/4, which is used notably by
46
+ the command line editor library(edit) to perform context aware TAB
47
+ completion. It is a seperate library such that other input scenarios can
48
+ reuse this code.
49
+ */
50
+
51
+
52
+ :- multifile
53
+ prolog:complete_input/4.
54
+
55
+ %! prolog:complete_input(+BeforeCursor:string, +AfterCursor:string,
56
+ %! -Delete:atom, -Completions:list) is semidet.
57
+ %
58
+ % Compute auto completions for the input line
59
+ % BeforeCursor+AfterCursor. Implemented completions
60
+ %
61
+ % - Files<br>
62
+ % - Text starting ``'<prefix>`` (single quotes) is completed as a
63
+ % file. If there is a single matching file a terminating `'` is
64
+ % added.
65
+ % - If the start of the line is ``[<prefix>`` and text can be
66
+ % a non-quoted atom, look for Prolog files with this name.
67
+ % Directories can be inserted as `/` (unquoted), as long as
68
+ % each _segment_ is a valid atom. If a single ``.pl`` file
69
+ % is found it is closed with ``]``, _without_ the extension.
70
+ % - Text starting ``library(<prefix>`` is completed as a
71
+ % library file using the same rules as ``[<prefix>``, but
72
+ % looking in all library directories instead of the current
73
+ % directory.
74
+ % - Atoms<br>
75
+ % ``<prefix>`` is used to complete atoms that can be written
76
+ % without quotes (excluding symbol atoms such as ``-->``) and
77
+ % are _permanent_, i.e., have references from clauses records,
78
+ % flags, foreign code, etc.
79
+ % - Variables<br>
80
+ % ``<Prefix>`` is completed as an atom if it is a valid variable
81
+ % name. It is completed with other atoms from the query being
82
+ % edited using the same search as Emacs _dabbrev_ (_Dynamic
83
+ % Abbreviation_). ``$<Prefix>`` expands to saved toplevel
84
+ % variables.
85
+ %
86
+ % @arg Delete is an atom or string representing the text that is
87
+ % replaced by the completion
88
+ % @arg Completions is a list of elements of this shape:
89
+ %
90
+ % - Atom
91
+ % Used for a plain completion without comment
92
+ % - Atom-Comment
93
+ % Used for a completion with comment. This will be
94
+ % used for predicates.
95
+
96
+ prolog:complete_input(Before, After, Delete, Completions) :-
97
+ string_codes(Before, Chars),
98
+ reverse(Chars, BeforeRev),
99
+ complete(BeforeRev, After, Delete, Completions).
100
+
101
+ complete(BeforeRev, _After, Prefix, Files) :- % complete files
102
+ phrase(file_prefix(Prefix, Type), BeforeRev),
103
+ !,
104
+ ( Type = library(Close)
105
+ -> complete_library(Prefix, Close, Files)
106
+ ; atom_concat(Prefix, '*', Pattern),
107
+ expand_file_name(Pattern, Files0),
108
+ finish_file_name(Files0, Type, Files)
109
+ ).
110
+ complete(BeforeRev, After, Prefix, Completions) :- % complete atoms
111
+ phrase(identifier_prefix_r(Prefix, Type), BeforeRev, BeforeRev1),
112
+ !,
113
+ identifier_completions(Type, Prefix, BeforeRev1, After, Completions).
114
+
115
+ identifier_completions(atom, Prefix, _, _, Atoms) :-
116
+ '$atom_completions'(Prefix, Atoms).
117
+ identifier_completions(var, Prefix, BeforeRev, After, Vars) :-
118
+ findall(Var, var_starts(Prefix, BeforeRev, After, Var), Vars0),
119
+ sort(Vars0, Vars).
120
+
121
+ var_starts(Prefix, [0'$|_], _After, Var) :- % $Var
122
+ !,
123
+ recorded('$topvar', Var = _),
124
+ sub_atom(Var, 0, _, _, Prefix).
125
+ var_starts(Prefix, BeforeRev, _After, Var) :- % Backard search
126
+ phrase((..., nonid_char, identifier_prefix_r(Var, var)),
127
+ BeforeRev, _),
128
+ sub_string(Var, 0, _, _, Prefix).
129
+ var_starts(Prefix, _BeforeRev, AfterString, Var) :- % Forward search
130
+ string_codes(AfterString, After),
131
+ phrase((..., nonid_char, identifier_prefix(Var, var)),
132
+ After, _),
133
+ sub_string(Var, 0, _, _, Prefix).
134
+
135
+ ... --> [] ; [_], ... .
136
+
137
+ nonid_char -->
138
+ [C],
139
+ { \+ code_type(C, prolog_identifier_continue) }.
140
+
141
+ %! identifier_prefix(-Prefix, -Type) is semidet.
142
+ %! identifier_prefix_r(-Prefix, -Type) is semidet.
143
+
144
+ identifier_prefix(Prefix, Type) -->
145
+ atom_chars(String),
146
+ { String = [H|_],
147
+ ( code_type(H, prolog_var_start)
148
+ -> Type = var
149
+ ; Type = atom
150
+ ),
151
+ string_codes(Prefix, String) % do not create an atom
152
+ }.
153
+
154
+ identifier_prefix_r(Prefix, Type) -->
155
+ atom_chars(RevString),
156
+ { reverse(RevString, String),
157
+ String = [H|_],
158
+ ( code_type(H, prolog_var_start)
159
+ -> Type = var
160
+ ; Type = atom
161
+ ),
162
+ string_codes(Prefix, String) % do not create an atom
163
+ }.
164
+
165
+ atom_chars([H|T]) --> atom_char(H), !, atom_chars(T).
166
+ atom_chars([]) --> [].
167
+
168
+ atom_char(C) --> [C], { atom_char(C) }.
169
+
170
+ atom_char(C) :- code_type(C, prolog_identifier_continue).
171
+
172
+ %! file_prefix(-Prefix, -Type)// is semidet.
173
+ %
174
+ % True when the part before the cursor looks like a file name.
175
+
176
+ file_prefix(Prefix, file) -->
177
+ file_chars(RevString, quoted('\'')), "'",
178
+ !,
179
+ remainder(_),
180
+ { reverse(RevString, String),
181
+ atom_codes(Prefix, String)
182
+ }.
183
+ file_prefix(Prefix, consult(']')) -->
184
+ file_chars(RevString, unquoted), "[",
185
+ !,
186
+ { reverse(RevString, String),
187
+ atom_codes(Prefix, String)
188
+ }.
189
+ file_prefix(Prefix, library(')')) -->
190
+ file_chars(RevString, unquoted), "(yrarbil",
191
+ !,
192
+ remainder(_),
193
+ { reverse(RevString, String),
194
+ atom_codes(Prefix, String)
195
+ }.
196
+
197
+ file_chars([H|T], Style) --> file_char(H, Style), !, file_chars(T, Style).
198
+ file_chars([], _) --> [].
199
+
200
+ file_char(C, Style) --> [C], { file_char(C, Style) }.
201
+
202
+ file_char(C, _) :- code_type(C, csym).
203
+ file_char(0'/, _).
204
+ file_char(C, quoted(_)) :-
205
+ file_char(C).
206
+
207
+ file_char(0'.).
208
+ file_char(0'-).
209
+ file_char(0'~).
210
+ :- if(current_prolog_flag(windows,true)).
211
+ file_char(0':).
212
+ file_char(0'\s).
213
+ :- endif.
214
+
215
+ %! finish_file_name(+Matches, -Completions) is det.
216
+ %
217
+ % Add closing quote for a unique file name.
218
+
219
+ finish_file_name([Dir0], _, [Dir]) :-
220
+ exists_directory(Dir0),
221
+ !,
222
+ atom_concat(Dir0, '/', Dir).
223
+ finish_file_name([File0], Close, [File]) :-
224
+ exists_file(File0),
225
+ close_file_name(File0, Close, File),
226
+ !.
227
+ finish_file_name(Files0, _, Files) :-
228
+ maplist(tag_dir, Files0, Files).
229
+
230
+ tag_dir(Dir, DirS) :-
231
+ exists_directory(Dir),
232
+ !,
233
+ atom_concat(Dir, /, DirS).
234
+ tag_dir(File, File).
235
+
236
+ close_file_name(File0, consult(Close), File) :-
237
+ file_name_extension(Base, Ext, File0),
238
+ user:prolog_file_type(Ext, prolog),
239
+ atom_concat(Base, Close, File).
240
+ close_file_name(File0, quoted(Close), File) :-
241
+ atom_concat(File0, Close, File).
242
+
243
+ %! complete_library(+Prefix:atom, +Close:atom, -Completions:list) is
244
+ %! semidet.
245
+ %
246
+ % Complete to a library entry on "library(Prefix".
247
+
248
+ complete_library(Prefix, Close, Libraries) :-
249
+ findall(Pairs, complete_one_libdir(Prefix, Pairs), DirPairs),
250
+ ( DirPairs = [LibDir-[f(File)]]
251
+ -> atom_concat(LibDir, Local, File),
252
+ atom_concat(Local, Close, Completion),
253
+ Libraries = [Completion]
254
+ ; DirPairs = [LibDir-[d(Dir)]]
255
+ -> atom_concat(LibDir, Local, Dir),
256
+ atom_concat(Local, '/', Completion),
257
+ Libraries = [Completion]
258
+ ; maplist(local_libs, DirPairs, FilesLists),
259
+ append(FilesLists, Libraries0),
260
+ sort(Libraries0, Libraries)
261
+ ).
262
+
263
+ complete_one_libdir(Prefix, LibdirS-Files) :-
264
+ absolute_file_name(library(.), LibDir,
265
+ [ file_type(directory),
266
+ solutions(all)
267
+ ]),
268
+ atom_concat(LibDir, /, LibdirS),
269
+ atomic_list_concat([LibdirS, Prefix, '*'], Pattern),
270
+ expand_file_name(Pattern, Entries),
271
+ convlist(dir_or_source, Entries, Files0),
272
+ sort(Files0, Files),
273
+ Files \== [].
274
+
275
+ local_libs(LibDir-Members, Locals) :-
276
+ maplist(local_file_name(LibDir), Members, Locals).
277
+
278
+ local_file_name(LibDir, f(File), Local) :-
279
+ atom_concat(LibDir, Local, File).
280
+ local_file_name(LibDir, d(Dir), Local) :-
281
+ atom_concat(LibDir, Local0, Dir),
282
+ atom_concat(Local0, /, Local).
283
+
284
+ dir_or_source(Entry, f(Plain)) :-
285
+ file_name_extension(Plain, Ext, Entry),
286
+ user:prolog_file_type(Ext, prolog),
287
+ !.
288
+ dir_or_source(Entry, d(Entry)) :-
289
+ exists_directory(Entry).