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.
- package/README.md +29 -0
- package/bin/swipl +0 -0
- package/bin/swipl-win +0 -0
- package/build-manifest.json +70 -0
- package/lib/cmake/swipl/SWIPLConfig.cmake +21 -0
- package/lib/cmake/swipl/SWIPLConfigVersion.cmake +65 -0
- package/lib/cmake/swipl/SWIPLTargets-release.cmake +28 -0
- package/lib/cmake/swipl/SWIPLTargets.cmake +109 -0
- package/lib/swipl/ABI +1 -0
- package/lib/swipl/LICENSE +41 -0
- package/lib/swipl/README.md +116 -0
- package/lib/swipl/app/README.md +25 -0
- package/lib/swipl/app/app.pl +87 -0
- package/lib/swipl/app/pack.pl +350 -0
- package/lib/swipl/app/qlf.pl +521 -0
- package/lib/swipl/app/splfr.pl +177 -0
- package/lib/swipl/app/sys.pl +310 -0
- package/lib/swipl/bin/swipl.home +1 -0
- package/lib/swipl/boot/apply.pl +73 -0
- package/lib/swipl/boot/attvar.pl +344 -0
- package/lib/swipl/boot/autoload.pl +1226 -0
- package/lib/swipl/boot/bags.pl +283 -0
- package/lib/swipl/boot/dcg.pl +388 -0
- package/lib/swipl/boot/dicts.pl +193 -0
- package/lib/swipl/boot/dwim.pl +485 -0
- package/lib/swipl/boot/engines.pl +152 -0
- package/lib/swipl/boot/expand.pl +1628 -0
- package/lib/swipl/boot/gc.pl +65 -0
- package/lib/swipl/boot/history.pl +304 -0
- package/lib/swipl/boot/init.pl +4682 -0
- package/lib/swipl/boot/iri.pl +64 -0
- package/lib/swipl/boot/license.pl +390 -0
- package/lib/swipl/boot/load.pl +81 -0
- package/lib/swipl/boot/messages.pl +2521 -0
- package/lib/swipl/boot/packs.pl +306 -0
- package/lib/swipl/boot/predopts.pl +154 -0
- package/lib/swipl/boot/qlf.pl +141 -0
- package/lib/swipl/boot/rc.pl +263 -0
- package/lib/swipl/boot/syspred.pl +1634 -0
- package/lib/swipl/boot/tabling.pl +2321 -0
- package/lib/swipl/boot/threads.pl +42 -0
- package/lib/swipl/boot/toplevel.pl +2248 -0
- package/lib/swipl/boot/topvars.pl +261 -0
- package/lib/swipl/boot.prc +0 -0
- package/lib/swipl/cmake/swipl.cmake +131 -0
- package/lib/swipl/customize/README.md +23 -0
- package/lib/swipl/customize/edit +101 -0
- package/lib/swipl/customize/init.pl +164 -0
- package/lib/swipl/demo/README.md +33 -0
- package/lib/swipl/demo/likes.pl +44 -0
- package/lib/swipl/doc/packages/examples/chr/bool.chr +281 -0
- package/lib/swipl/doc/packages/examples/chr/chrdif.chr +87 -0
- package/lib/swipl/doc/packages/examples/chr/chrfreeze.chr +6 -0
- package/lib/swipl/doc/packages/examples/chr/family.chr +116 -0
- package/lib/swipl/doc/packages/examples/chr/fib.chr +24 -0
- package/lib/swipl/doc/packages/examples/chr/fibonacci.chr +31 -0
- package/lib/swipl/doc/packages/examples/chr/gcd.chr +28 -0
- package/lib/swipl/doc/packages/examples/chr/leq.chr +34 -0
- package/lib/swipl/doc/packages/examples/chr/listdom.chr +138 -0
- package/lib/swipl/doc/packages/examples/chr/primes.chr +29 -0
- package/lib/swipl/doc/packages/examples/http/README.md +98 -0
- package/lib/swipl/doc/packages/examples/http/calc.pl +92 -0
- package/lib/swipl/doc/packages/examples/http/demo_body.pl +232 -0
- package/lib/swipl/doc/packages/examples/http/demo_client.pl +165 -0
- package/lib/swipl/doc/packages/examples/http/demo_daemon.pl +38 -0
- package/lib/swipl/doc/packages/examples/http/demo_files.pl +50 -0
- package/lib/swipl/doc/packages/examples/http/demo_hello.pl +15 -0
- package/lib/swipl/doc/packages/examples/http/demo_login.pl +280 -0
- package/lib/swipl/doc/packages/examples/http/demo_openid.pl +177 -0
- package/lib/swipl/doc/packages/examples/http/demo_pwp.pl +20 -0
- package/lib/swipl/doc/packages/examples/http/demo_rest.pl +56 -0
- package/lib/swipl/doc/packages/examples/http/demo_threads.pl +52 -0
- package/lib/swipl/doc/packages/examples/http/linux-init-script +126 -0
- package/lib/swipl/doc/packages/examples/http/pwp/context.pwp +23 -0
- package/lib/swipl/doc/packages/examples/http/pwp/index.pwp +25 -0
- package/lib/swipl/doc/packages/examples/http/pwp/pwp1.pwp +12 -0
- package/lib/swipl/doc/packages/examples/http/pwp/pwp2.pwp +10 -0
- package/lib/swipl/doc/packages/examples/http/pwp/pwp3.pwp +25 -0
- package/lib/swipl/doc/packages/examples/http/pwp/pwp4.pwp +23 -0
- package/lib/swipl/doc/packages/examples/http/pwp/pwp5.pwp +11 -0
- package/lib/swipl/doc/packages/examples/http/pwp/pwp6.pwp +3 -0
- package/lib/swipl/doc/packages/examples/http/pwp/pwp7.pwp +3 -0
- package/lib/swipl/doc/packages/examples/http/pwp/pwp8.pwp +3 -0
- package/lib/swipl/doc/packages/examples/http/pwp/pwpdb.pl +12 -0
- package/lib/swipl/doc/packages/examples/http/systemd-script.service +18 -0
- package/lib/swipl/doc/packages/examples/http/upstart-script.conf +20 -0
- package/lib/swipl/doc/packages/examples/plunit/read.pl +17 -0
- package/lib/swipl/doc/packages/examples/plunit/simple.pl +33 -0
- package/lib/swipl/doc/packages/examples/ssl/client.pl +83 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/README +52 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.p12 +0 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.pem +85 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/client/client-key.pem +30 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/cacert.pem +82 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/careq.pem +18 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/crlnumber +1 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt +3 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt.attr +1 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7C.pem +85 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7D.pem +85 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/private/cakey.pem +30 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/serial +1 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/server/server-cert.pem +85 -0
- package/lib/swipl/doc/packages/examples/ssl/etc/server/server-key.pem +30 -0
- package/lib/swipl/doc/packages/examples/ssl/https.pl +267 -0
- package/lib/swipl/doc/packages/examples/ssl/server.pl +106 -0
- package/lib/swipl/include/SWI-Prolog.h +1544 -0
- package/lib/swipl/include/SWI-Stream.h +537 -0
- package/lib/swipl/include/Yap/YapInterface.h +283 -0
- package/lib/swipl/include/sicstus/sicstus.h +452 -0
- package/lib/swipl/lib/x86_64-linux/cgi.so +0 -0
- package/lib/swipl/lib/x86_64-linux/crypt.so +0 -0
- package/lib/swipl/lib/x86_64-linux/crypto4pl.so +0 -0
- package/lib/swipl/lib/x86_64-linux/double_metaphone.so +0 -0
- package/lib/swipl/lib/x86_64-linux/files.so +0 -0
- package/lib/swipl/lib/x86_64-linux/hashstream.so +0 -0
- package/lib/swipl/lib/x86_64-linux/http_stream.so +0 -0
- package/lib/swipl/lib/x86_64-linux/isub.so +0 -0
- package/lib/swipl/lib/x86_64-linux/json.so +0 -0
- package/lib/swipl/lib/x86_64-linux/libswipl.so.10 +0 -0
- package/lib/swipl/lib/x86_64-linux/mallocinfo.so +0 -0
- package/lib/swipl/lib/x86_64-linux/md54pl.so +0 -0
- package/lib/swipl/lib/x86_64-linux/memfile.so +0 -0
- package/lib/swipl/lib/x86_64-linux/ntriples.so +0 -0
- package/lib/swipl/lib/x86_64-linux/pcre4pl.so +0 -0
- package/lib/swipl/lib/x86_64-linux/porter_stem.so +0 -0
- package/lib/swipl/lib/x86_64-linux/process.so +0 -0
- package/lib/swipl/lib/x86_64-linux/prolog_stream.so +0 -0
- package/lib/swipl/lib/x86_64-linux/rdf_db.so +0 -0
- package/lib/swipl/lib/x86_64-linux/readutil.so +0 -0
- package/lib/swipl/lib/x86_64-linux/rlimit.so +0 -0
- package/lib/swipl/lib/x86_64-linux/sched.so +0 -0
- package/lib/swipl/lib/x86_64-linux/sgml2pl.so +0 -0
- package/lib/swipl/lib/x86_64-linux/sha4pl.so +0 -0
- package/lib/swipl/lib/x86_64-linux/snowball.so +0 -0
- package/lib/swipl/lib/x86_64-linux/socket.so +0 -0
- package/lib/swipl/lib/x86_64-linux/ssl4pl.so +0 -0
- package/lib/swipl/lib/x86_64-linux/streaminfo.so +0 -0
- package/lib/swipl/lib/x86_64-linux/syslog.so +0 -0
- package/lib/swipl/lib/x86_64-linux/time.so +0 -0
- package/lib/swipl/lib/x86_64-linux/turtle.so +0 -0
- package/lib/swipl/lib/x86_64-linux/uid.so +0 -0
- package/lib/swipl/lib/x86_64-linux/unix.so +0 -0
- package/lib/swipl/lib/x86_64-linux/uri.so +0 -0
- package/lib/swipl/lib/x86_64-linux/websocket.so +0 -0
- package/lib/swipl/lib/x86_64-linux/zlib4pl.so +0 -0
- package/lib/swipl/library/INDEX.pl +1020 -0
- package/lib/swipl/library/aggregate.pl +755 -0
- package/lib/swipl/library/ansi_term.pl +653 -0
- package/lib/swipl/library/apply.pl +426 -0
- package/lib/swipl/library/apply_macros.pl +497 -0
- package/lib/swipl/library/arithmetic.pl +320 -0
- package/lib/swipl/library/assoc.pl +522 -0
- package/lib/swipl/library/atom.pl +169 -0
- package/lib/swipl/library/backcomp.pl +688 -0
- package/lib/swipl/library/base32.pl +291 -0
- package/lib/swipl/library/base64.pl +441 -0
- package/lib/swipl/library/broadcast.pl +161 -0
- package/lib/swipl/library/build/cmake.pl +137 -0
- package/lib/swipl/library/build/conan.pl +232 -0
- package/lib/swipl/library/build/make.pl +168 -0
- package/lib/swipl/library/build/tools.pl +825 -0
- package/lib/swipl/library/charsio.pl +195 -0
- package/lib/swipl/library/check.pl +1097 -0
- package/lib/swipl/library/check_installation.pl +912 -0
- package/lib/swipl/library/clp/INDEX.pl +157 -0
- package/lib/swipl/library/clp/bounds.pl +2036 -0
- package/lib/swipl/library/clp/clp_distinct.pl +263 -0
- package/lib/swipl/library/clp/clp_events.pl +92 -0
- package/lib/swipl/library/clp/clpb.pl +1896 -0
- package/lib/swipl/library/clp/clpfd.pl +7906 -0
- package/lib/swipl/library/clp/simplex.pl +1580 -0
- package/lib/swipl/library/codesio.pl +182 -0
- package/lib/swipl/library/coinduction.pl +183 -0
- package/lib/swipl/library/console_input.pl +289 -0
- package/lib/swipl/library/csv.pl +611 -0
- package/lib/swipl/library/ctypes.pl +161 -0
- package/lib/swipl/library/date.pl +370 -0
- package/lib/swipl/library/dcg/INDEX.pl +35 -0
- package/lib/swipl/library/dcg/basics.pl +514 -0
- package/lib/swipl/library/dcg/high_order.pl +227 -0
- package/lib/swipl/library/debug.pl +499 -0
- package/lib/swipl/library/dialect/bim.pl +186 -0
- package/lib/swipl/library/dialect/commons.pl +77 -0
- package/lib/swipl/library/dialect/eclipse/test_util_iso.pl +355 -0
- package/lib/swipl/library/dialect/hprolog/format.pl +44 -0
- package/lib/swipl/library/dialect/hprolog.pl +314 -0
- package/lib/swipl/library/dialect/ifprolog.pl +1317 -0
- package/lib/swipl/library/dialect/iso/iso_predicates.pl +277 -0
- package/lib/swipl/library/dialect/sicstus/README.TXT +1 -0
- package/lib/swipl/library/dialect/sicstus/arrays.pl +121 -0
- package/lib/swipl/library/dialect/sicstus/block.pl +278 -0
- package/lib/swipl/library/dialect/sicstus/lists.pl +167 -0
- package/lib/swipl/library/dialect/sicstus/ordsets.pl +52 -0
- package/lib/swipl/library/dialect/sicstus/sockets.pl +174 -0
- package/lib/swipl/library/dialect/sicstus/system.pl +262 -0
- package/lib/swipl/library/dialect/sicstus/terms.pl +57 -0
- package/lib/swipl/library/dialect/sicstus/timeout.pl +92 -0
- package/lib/swipl/library/dialect/sicstus.pl +582 -0
- package/lib/swipl/library/dialect/sicstus4/aggregate.pl +60 -0
- package/lib/swipl/library/dialect/sicstus4/between.pl +62 -0
- package/lib/swipl/library/dialect/sicstus4/clpfd.pl +75 -0
- package/lib/swipl/library/dialect/sicstus4/file_systems.pl +413 -0
- package/lib/swipl/library/dialect/sicstus4/lists.pl +274 -0
- package/lib/swipl/library/dialect/sicstus4/ordsets.pl +54 -0
- package/lib/swipl/library/dialect/sicstus4/samsort.pl +86 -0
- package/lib/swipl/library/dialect/sicstus4/sets.pl +124 -0
- package/lib/swipl/library/dialect/sicstus4/sockets.pl +164 -0
- package/lib/swipl/library/dialect/sicstus4/system.pl +80 -0
- package/lib/swipl/library/dialect/sicstus4/terms.pl +89 -0
- package/lib/swipl/library/dialect/sicstus4/timeout.pl +43 -0
- package/lib/swipl/library/dialect/sicstus4/types.pl +103 -0
- package/lib/swipl/library/dialect/sicstus4.pl +200 -0
- package/lib/swipl/library/dialect/swi/syspred_options.pl +250 -0
- package/lib/swipl/library/dialect/xsb/README.md +20 -0
- package/lib/swipl/library/dialect/xsb/basics.pl +318 -0
- package/lib/swipl/library/dialect/xsb/consult.pl +87 -0
- package/lib/swipl/library/dialect/xsb/curr_sym.pl +57 -0
- package/lib/swipl/library/dialect/xsb/error_handler.pl +111 -0
- package/lib/swipl/library/dialect/xsb/gensym.pl +53 -0
- package/lib/swipl/library/dialect/xsb/gpp.pl +138 -0
- package/lib/swipl/library/dialect/xsb/intern.pl +48 -0
- package/lib/swipl/library/dialect/xsb/lists.pl +47 -0
- package/lib/swipl/library/dialect/xsb/machine.pl +295 -0
- package/lib/swipl/library/dialect/xsb/ordsets.pl +53 -0
- package/lib/swipl/library/dialect/xsb/setof.pl +54 -0
- package/lib/swipl/library/dialect/xsb/source.pl +308 -0
- package/lib/swipl/library/dialect/xsb/standard.pl +169 -0
- package/lib/swipl/library/dialect/xsb/storage.pl +70 -0
- package/lib/swipl/library/dialect/xsb/string.pl +76 -0
- package/lib/swipl/library/dialect/xsb/thread.pl +62 -0
- package/lib/swipl/library/dialect/xsb/timed_call.pl +158 -0
- package/lib/swipl/library/dialect/xsb.pl +688 -0
- package/lib/swipl/library/dialect/yap/README.TXT +8 -0
- package/lib/swipl/library/dialect/yap.pl +283 -0
- package/lib/swipl/library/dialect.pl +123 -0
- package/lib/swipl/library/dicts.pl +399 -0
- package/lib/swipl/library/dif.pl +426 -0
- package/lib/swipl/library/edinburgh.pl +138 -0
- package/lib/swipl/library/edit.pl +783 -0
- package/lib/swipl/library/error.pl +495 -0
- package/lib/swipl/library/exceptions.pl +231 -0
- package/lib/swipl/library/explain.pl +543 -0
- package/lib/swipl/library/ext/RDF/INDEX.pl +25 -0
- package/lib/swipl/library/ext/RDF/rdf.pl +450 -0
- package/lib/swipl/library/ext/RDF/rdf_parser.pl +649 -0
- package/lib/swipl/library/ext/RDF/rdf_triple.pl +448 -0
- package/lib/swipl/library/ext/RDF/rdf_write.pl +701 -0
- package/lib/swipl/library/ext/RDF/rewrite_term.pl +177 -0
- package/lib/swipl/library/ext/chr/chr/a_star.pl +80 -0
- package/lib/swipl/library/ext/chr/chr/binomialheap.pl +142 -0
- package/lib/swipl/library/ext/chr/chr/builtins.pl +629 -0
- package/lib/swipl/library/ext/chr/chr/chr_compiler_errors.pl +179 -0
- package/lib/swipl/library/ext/chr/chr/chr_compiler_options.pl +382 -0
- package/lib/swipl/library/ext/chr/chr/chr_compiler_utility.pl +338 -0
- package/lib/swipl/library/ext/chr/chr/chr_debug.pl +59 -0
- package/lib/swipl/library/ext/chr/chr/chr_hashtable_store.pl +425 -0
- package/lib/swipl/library/ext/chr/chr/chr_integertable_store.pl +139 -0
- package/lib/swipl/library/ext/chr/chr/chr_messages.pl +176 -0
- package/lib/swipl/library/ext/chr/chr/chr_op.pl +53 -0
- package/lib/swipl/library/ext/chr/chr/chr_runtime.pl +1016 -0
- package/lib/swipl/library/ext/chr/chr/chr_translate.pl +25424 -0
- package/lib/swipl/library/ext/chr/chr/clean_code.pl +252 -0
- package/lib/swipl/library/ext/chr/chr/find.pl +78 -0
- package/lib/swipl/library/ext/chr/chr/guard_entailment.pl +19432 -0
- package/lib/swipl/library/ext/chr/chr/listmap.pl +108 -0
- package/lib/swipl/library/ext/chr/chr/pairlist.pl +78 -0
- package/lib/swipl/library/ext/chr/chr.pl +686 -0
- package/lib/swipl/library/ext/clib/INDEX.pl +158 -0
- package/lib/swipl/library/ext/clib/cgi.pl +86 -0
- package/lib/swipl/library/ext/clib/crypt.pl +44 -0
- package/lib/swipl/library/ext/clib/filesex.pl +644 -0
- package/lib/swipl/library/ext/clib/hash_stream.pl +119 -0
- package/lib/swipl/library/ext/clib/mallocinfo.pl +138 -0
- package/lib/swipl/library/ext/clib/md5.pl +68 -0
- package/lib/swipl/library/ext/clib/memfile.pl +61 -0
- package/lib/swipl/library/ext/clib/process.pl +573 -0
- package/lib/swipl/library/ext/clib/prolog_server.pl +157 -0
- package/lib/swipl/library/ext/clib/prolog_stream.pl +80 -0
- package/lib/swipl/library/ext/clib/rlimit.pl +54 -0
- package/lib/swipl/library/ext/clib/sched.pl +85 -0
- package/lib/swipl/library/ext/clib/sha.pl +162 -0
- package/lib/swipl/library/ext/clib/socket.pl +1102 -0
- package/lib/swipl/library/ext/clib/streaminfo.pl +103 -0
- package/lib/swipl/library/ext/clib/streampool.pl +136 -0
- package/lib/swipl/library/ext/clib/syslog.pl +180 -0
- package/lib/swipl/library/ext/clib/time.pl +194 -0
- package/lib/swipl/library/ext/clib/udp_broadcast.pl +975 -0
- package/lib/swipl/library/ext/clib/uid.pl +220 -0
- package/lib/swipl/library/ext/clib/unix.pl +317 -0
- package/lib/swipl/library/ext/clib/uri.pl +530 -0
- package/lib/swipl/library/ext/clib/uuid.pl +207 -0
- package/lib/swipl/library/ext/http/http/INDEX.pl +266 -0
- package/lib/swipl/library/ext/http/http/README.md +34 -0
- package/lib/swipl/library/ext/http/http/ax.pl +189 -0
- package/lib/swipl/library/ext/http/http/dcg_basics.pl +49 -0
- package/lib/swipl/library/ext/http/http/graphql.pl +1367 -0
- package/lib/swipl/library/ext/http/http/html_decl.pl +416 -0
- package/lib/swipl/library/ext/http/http/html_head.pl +654 -0
- package/lib/swipl/library/ext/http/http/html_quasiquotations.pl +120 -0
- package/lib/swipl/library/ext/http/http/html_write.pl +1425 -0
- package/lib/swipl/library/ext/http/http/htmx.pl +139 -0
- package/lib/swipl/library/ext/http/http/http_authenticate.pl +364 -0
- package/lib/swipl/library/ext/http/http/http_client.pl +412 -0
- package/lib/swipl/library/ext/http/http/http_cookie.pl +245 -0
- package/lib/swipl/library/ext/http/http/http_cors.pl +176 -0
- package/lib/swipl/library/ext/http/http/http_digest.pl +820 -0
- package/lib/swipl/library/ext/http/http/http_dirindex.pl +296 -0
- package/lib/swipl/library/ext/http/http/http_dispatch.pl +1552 -0
- package/lib/swipl/library/ext/http/http/http_dyn_workers.pl +214 -0
- package/lib/swipl/library/ext/http/http/http_error.pl +126 -0
- package/lib/swipl/library/ext/http/http/http_exception.pl +225 -0
- package/lib/swipl/library/ext/http/http/http_files.pl +163 -0
- package/lib/swipl/library/ext/http/http/http_header.pl +2820 -0
- package/lib/swipl/library/ext/http/http/http_hook.pl +106 -0
- package/lib/swipl/library/ext/http/http/http_host.pl +204 -0
- package/lib/swipl/library/ext/http/http/http_load.pl +113 -0
- package/lib/swipl/library/ext/http/http/http_log.pl +738 -0
- package/lib/swipl/library/ext/http/http/http_multipart_plugin.pl +232 -0
- package/lib/swipl/library/ext/http/http/http_open.pl +1821 -0
- package/lib/swipl/library/ext/http/http/http_openid.pl +1561 -0
- package/lib/swipl/library/ext/http/http/http_parameters.pl +504 -0
- package/lib/swipl/library/ext/http/http/http_path.pl +380 -0
- package/lib/swipl/library/ext/http/http/http_proxy.pl +80 -0
- package/lib/swipl/library/ext/http/http/http_pwp.pl +351 -0
- package/lib/swipl/library/ext/http/http/http_redis_plugin.pl +332 -0
- package/lib/swipl/library/ext/http/http/http_server.pl +105 -0
- package/lib/swipl/library/ext/http/http/http_server_files.pl +126 -0
- package/lib/swipl/library/ext/http/http/http_server_health.pl +186 -0
- package/lib/swipl/library/ext/http/http/http_session.pl +1040 -0
- package/lib/swipl/library/ext/http/http/http_sgml_plugin.pl +137 -0
- package/lib/swipl/library/ext/http/http/http_stream.pl +376 -0
- package/lib/swipl/library/ext/http/http/http_unix_daemon.pl +989 -0
- package/lib/swipl/library/ext/http/http/http_wrapper.pl +559 -0
- package/lib/swipl/library/ext/http/http/hub.pl +600 -0
- package/lib/swipl/library/ext/http/http/js_write.pl +461 -0
- package/lib/swipl/library/ext/http/http/mimepack.pl +224 -0
- package/lib/swipl/library/ext/http/http/mimetype.pl +276 -0
- package/lib/swipl/library/ext/http/http/term_html.pl +797 -0
- package/lib/swipl/library/ext/http/http/thread_httpd.pl +1181 -0
- package/lib/swipl/library/ext/http/http/web/css/dirindex.css +24 -0
- package/lib/swipl/library/ext/http/http/web/css/openid.css +57 -0
- package/lib/swipl/library/ext/http/http/web/icons/back.png +0 -0
- package/lib/swipl/library/ext/http/http/web/icons/c.png +0 -0
- package/lib/swipl/library/ext/http/http/web/icons/compressed.png +0 -0
- package/lib/swipl/library/ext/http/http/web/icons/folder.png +0 -0
- package/lib/swipl/library/ext/http/http/web/icons/generic.png +0 -0
- package/lib/swipl/library/ext/http/http/web/icons/layout.png +0 -0
- package/lib/swipl/library/ext/http/http/web/icons/openid-logo-square.png +0 -0
- package/lib/swipl/library/ext/http/http/web/icons/openid-logo-tiny.png +0 -0
- package/lib/swipl/library/ext/http/http/websocket.pl +729 -0
- package/lib/swipl/library/ext/http/http/yadis.pl +205 -0
- package/lib/swipl/library/ext/json/INDEX.pl +36 -0
- package/lib/swipl/library/ext/json/http/INDEX.pl +16 -0
- package/lib/swipl/library/ext/json/http/http_json.pl +490 -0
- package/lib/swipl/library/ext/json/http/js_grammar.pl +53 -0
- package/lib/swipl/library/ext/json/http/json.pl +48 -0
- package/lib/swipl/library/ext/json/http/json_convert.pl +48 -0
- package/lib/swipl/library/ext/json/json.pl +1215 -0
- package/lib/swipl/library/ext/json/json_convert.pl +681 -0
- package/lib/swipl/library/ext/json/json_grammar.pl +349 -0
- package/lib/swipl/library/ext/json/json_rpc_client.pl +423 -0
- package/lib/swipl/library/ext/json/json_rpc_common.pl +104 -0
- package/lib/swipl/library/ext/json/json_rpc_server.pl +489 -0
- package/lib/swipl/library/ext/json/json_schema.pl +2111 -0
- package/lib/swipl/library/ext/nlp/INDEX.pl +15 -0
- package/lib/swipl/library/ext/nlp/double_metaphone.pl +86 -0
- package/lib/swipl/library/ext/nlp/isub.pl +162 -0
- package/lib/swipl/library/ext/nlp/porter_stem.pl +50 -0
- package/lib/swipl/library/ext/nlp/snowball.pl +97 -0
- package/lib/swipl/library/ext/pcre/INDEX.pl +17 -0
- package/lib/swipl/library/ext/pcre/pcre.pl +974 -0
- package/lib/swipl/library/ext/plunit/INDEX.pl +20 -0
- package/lib/swipl/library/ext/plunit/plunit.pl +2631 -0
- package/lib/swipl/library/ext/plunit/test_wizard.pl +249 -0
- package/lib/swipl/library/ext/semweb/semweb/INDEX.pl +288 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf11.pl +2106 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf11_containers.pl +299 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_cache.pl +278 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_compare.pl +132 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_db.pl +3468 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_edit.pl +1145 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_http_plugin.pl +274 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_library.pl +1021 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_litindex.pl +1035 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_ntriples.pl +422 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_persistency.pl +1576 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_portray.pl +182 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_prefixes.pl +681 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_sandbox.pl +153 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_turtle.pl +54 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_turtle_write.pl +1587 -0
- package/lib/swipl/library/ext/semweb/semweb/rdf_zlib_plugin.pl +52 -0
- package/lib/swipl/library/ext/semweb/semweb/rdfa.pl +1510 -0
- package/lib/swipl/library/ext/semweb/semweb/rdfs.pl +475 -0
- package/lib/swipl/library/ext/semweb/semweb/sparql_client.pl +643 -0
- package/lib/swipl/library/ext/semweb/semweb/turtle.pl +455 -0
- package/lib/swipl/library/ext/sgml/DTD/HTML4.dcl +88 -0
- package/lib/swipl/library/ext/sgml/DTD/HTML4.dtd +1092 -0
- package/lib/swipl/library/ext/sgml/DTD/HTML4.soc +6 -0
- package/lib/swipl/library/ext/sgml/DTD/HTML5.dtd +906 -0
- package/lib/swipl/library/ext/sgml/DTD/HTMLlat1.ent +195 -0
- package/lib/swipl/library/ext/sgml/DTD/HTMLspec.ent +77 -0
- package/lib/swipl/library/ext/sgml/DTD/HTMLsym.ent +241 -0
- package/lib/swipl/library/ext/sgml/INDEX.pl +64 -0
- package/lib/swipl/library/ext/sgml/c14n2.pl +203 -0
- package/lib/swipl/library/ext/sgml/iso_639.pl +631 -0
- package/lib/swipl/library/ext/sgml/pwp.pl +705 -0
- package/lib/swipl/library/ext/sgml/sgml.pl +815 -0
- package/lib/swipl/library/ext/sgml/sgml_write.pl +1003 -0
- package/lib/swipl/library/ext/sgml/xpath.pl +620 -0
- package/lib/swipl/library/ext/sgml/xsdp_types.pl +232 -0
- package/lib/swipl/library/ext/ssl/INDEX.pl +60 -0
- package/lib/swipl/library/ext/ssl/crypto.pl +1015 -0
- package/lib/swipl/library/ext/ssl/http/INDEX.pl +5 -0
- package/lib/swipl/library/ext/ssl/http/http_ssl_plugin.pl +296 -0
- package/lib/swipl/library/ext/ssl/saml.pl +609 -0
- package/lib/swipl/library/ext/ssl/ssl.pl +647 -0
- package/lib/swipl/library/ext/ssl/xmldsig.pl +391 -0
- package/lib/swipl/library/ext/ssl/xmlenc.pl +354 -0
- package/lib/swipl/library/ext/zlib/INDEX.pl +8 -0
- package/lib/swipl/library/ext/zlib/zlib.pl +112 -0
- package/lib/swipl/library/fastrw.pl +105 -0
- package/lib/swipl/library/files.pl +80 -0
- package/lib/swipl/library/gensym.pl +111 -0
- package/lib/swipl/library/git.pl +1027 -0
- package/lib/swipl/library/hashtable.pl +365 -0
- package/lib/swipl/library/heaps.pl +252 -0
- package/lib/swipl/library/hotfix.pl +239 -0
- package/lib/swipl/library/http/jquery.pl +103 -0
- package/lib/swipl/library/http/web/js/jquery-3.6.0.min.js +2 -0
- package/lib/swipl/library/increval.pl +217 -0
- package/lib/swipl/library/intercept.pl +263 -0
- package/lib/swipl/library/iostream.pl +237 -0
- package/lib/swipl/library/iri_scheme/file.pl +70 -0
- package/lib/swipl/library/lazy_lists.pl +481 -0
- package/lib/swipl/library/listing.pl +1362 -0
- package/lib/swipl/library/lists.pl +860 -0
- package/lib/swipl/library/lynx/INDEX.pl +14 -0
- package/lib/swipl/library/lynx/format.pl +380 -0
- package/lib/swipl/library/lynx/html_style.pl +129 -0
- package/lib/swipl/library/lynx/html_text.pl +865 -0
- package/lib/swipl/library/lynx/pldoc_style.pl +87 -0
- package/lib/swipl/library/macros.pl +451 -0
- package/lib/swipl/library/main.pl +1200 -0
- package/lib/swipl/library/make.pl +197 -0
- package/lib/swipl/library/modules.pl +129 -0
- package/lib/swipl/library/nb_rbtrees.pl +267 -0
- package/lib/swipl/library/nb_set.pl +203 -0
- package/lib/swipl/library/obfuscate.pl +115 -0
- package/lib/swipl/library/occurs.pl +241 -0
- package/lib/swipl/library/operators.pl +182 -0
- package/lib/swipl/library/option.pl +388 -0
- package/lib/swipl/library/optparse.pl +966 -0
- package/lib/swipl/library/ordsets.pl +518 -0
- package/lib/swipl/library/oset.pl +160 -0
- package/lib/swipl/library/pairs.pl +187 -0
- package/lib/swipl/library/persistency.pl +713 -0
- package/lib/swipl/library/pio.pl +47 -0
- package/lib/swipl/library/portray_text.pl +277 -0
- package/lib/swipl/library/pprint.pl +940 -0
- package/lib/swipl/library/predicate_options.pl +975 -0
- package/lib/swipl/library/prolog_autoload.pl +233 -0
- package/lib/swipl/library/prolog_breakpoints.pl +396 -0
- package/lib/swipl/library/prolog_clause.pl +1104 -0
- package/lib/swipl/library/prolog_code.pl +416 -0
- package/lib/swipl/library/prolog_codewalk.pl +1248 -0
- package/lib/swipl/library/prolog_colour.pl +3301 -0
- package/lib/swipl/library/prolog_colour.qlf +0 -0
- package/lib/swipl/library/prolog_config.pl +154 -0
- package/lib/swipl/library/prolog_coverage.pl +1333 -0
- package/lib/swipl/library/prolog_debug.pl +404 -0
- package/lib/swipl/library/prolog_deps.pl +675 -0
- package/lib/swipl/library/prolog_evaluable.pl +234 -0
- package/lib/swipl/library/prolog_format.pl +219 -0
- package/lib/swipl/library/prolog_history.pl +161 -0
- package/lib/swipl/library/prolog_jiti.pl +333 -0
- package/lib/swipl/library/prolog_locale.pl +61 -0
- package/lib/swipl/library/prolog_metainference.pl +307 -0
- package/lib/swipl/library/prolog_pack.pl +3906 -0
- package/lib/swipl/library/prolog_profile.pl +346 -0
- package/lib/swipl/library/prolog_qlfmake.pl +533 -0
- package/lib/swipl/library/prolog_source.pl +1188 -0
- package/lib/swipl/library/prolog_stack.pl +794 -0
- package/lib/swipl/library/prolog_trace.pl +365 -0
- package/lib/swipl/library/prolog_versions.pl +347 -0
- package/lib/swipl/library/prolog_wrap.pl +164 -0
- package/lib/swipl/library/prolog_xref.pl +3090 -0
- package/lib/swipl/library/prolog_xref.qlf +0 -0
- package/lib/swipl/library/pure_input.pl +266 -0
- package/lib/swipl/library/qpforeign.pl +695 -0
- package/lib/swipl/library/qsave.pl +1516 -0
- package/lib/swipl/library/quasi_quotations.pl +300 -0
- package/lib/swipl/library/quintus.pl +437 -0
- package/lib/swipl/library/random.pl +459 -0
- package/lib/swipl/library/rbtrees.pl +1153 -0
- package/lib/swipl/library/readln.pl +256 -0
- package/lib/swipl/library/readutil.pl +304 -0
- package/lib/swipl/library/record.pl +544 -0
- package/lib/swipl/library/rwlocks.pl +172 -0
- package/lib/swipl/library/sandbox.pl +1384 -0
- package/lib/swipl/library/semweb/dc.rdfs +198 -0
- package/lib/swipl/library/semweb/eor.rdfs +95 -0
- package/lib/swipl/library/semweb/owl.owl +287 -0
- package/lib/swipl/library/semweb/rdf_library.ttl +90 -0
- package/lib/swipl/library/semweb/rdfs.rdfs +251 -0
- package/lib/swipl/library/settings.pl +755 -0
- package/lib/swipl/library/shell.pl +462 -0
- package/lib/swipl/library/shlib.pl +670 -0
- package/lib/swipl/library/solution_sequences.pl +439 -0
- package/lib/swipl/library/sort.pl +119 -0
- package/lib/swipl/library/statistics.pl +541 -0
- package/lib/swipl/library/streams.pl +118 -0
- package/lib/swipl/library/strings.pl +469 -0
- package/lib/swipl/library/system.pl +95 -0
- package/lib/swipl/library/tables.pl +381 -0
- package/lib/swipl/library/tableutil.pl +771 -0
- package/lib/swipl/library/tabling.pl +42 -0
- package/lib/swipl/library/terms.pl +457 -0
- package/lib/swipl/library/theme/auto.pl +61 -0
- package/lib/swipl/library/theme/dark.pl +455 -0
- package/lib/swipl/library/theme/light.pl +45 -0
- package/lib/swipl/library/thread.pl +810 -0
- package/lib/swipl/library/thread_pool.pl +508 -0
- package/lib/swipl/library/threadutil.pl +574 -0
- package/lib/swipl/library/tty.pl +316 -0
- package/lib/swipl/library/ugraphs.pl +644 -0
- package/lib/swipl/library/unicode/INDEX.pl +6 -0
- package/lib/swipl/library/unicode/blocks.pl +414 -0
- package/lib/swipl/library/url.pl +1129 -0
- package/lib/swipl/library/utf8.pl +145 -0
- package/lib/swipl/library/varnumbers.pl +221 -0
- package/lib/swipl/library/vm.pl +251 -0
- package/lib/swipl/library/wfs.pl +205 -0
- package/lib/swipl/library/when.pl +263 -0
- package/lib/swipl/library/writef.pl +278 -0
- package/lib/swipl/library/www_browser.pl +251 -0
- package/lib/swipl/library/yall.pl +574 -0
- package/lib/swipl/library/zip.pl +211 -0
- package/lib/swipl/swipl.home +1 -0
- package/lib/vendor/libcrypto.so.3 +0 -0
- package/lib/vendor/libpcre2-8.so.0 +0 -0
- package/lib/vendor/libssl.so.3 +0 -0
- package/lib/vendor/libz.so.1 +0 -0
- package/licenses/OpenSSL-LICENSE.txt +177 -0
- package/licenses/PCRE2-COPYING +5 -0
- package/licenses/README.md +12 -0
- package/licenses/SWI-Prolog-LICENSE +41 -0
- package/licenses/zlib-LICENSE +22 -0
- 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`
|