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,167 @@
|
|
|
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, University of 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(sicstus_lists,
|
|
36
|
+
[ substitute/4, % +Elem, +List, +NewElem, -List
|
|
37
|
+
nth/3, % ?N, ?List, ?Element
|
|
38
|
+
nth/4, % ?N, ?List, ?Element, ?Rest
|
|
39
|
+
same_length/3, % ?List1, ?List2, ?Length
|
|
40
|
+
sublist/2, % ?Sub, +List
|
|
41
|
+
suffix/2, % ?Suffix, ?List
|
|
42
|
+
|
|
43
|
+
% The following predicates are built-in on SWI.
|
|
44
|
+
% We re-export them here to avoid warnings
|
|
45
|
+
% when SICStus code explicitly imports them from library(lists).
|
|
46
|
+
is_list/1, % +Term
|
|
47
|
+
memberchk/2 % +Element, +List
|
|
48
|
+
]).
|
|
49
|
+
:- reexport('../../lists',
|
|
50
|
+
[ append/3,
|
|
51
|
+
delete/3,
|
|
52
|
+
last/2,
|
|
53
|
+
max_list/2,
|
|
54
|
+
member/2,
|
|
55
|
+
min_list/2,
|
|
56
|
+
nextto/3,
|
|
57
|
+
nth0/3,
|
|
58
|
+
nth0/4,
|
|
59
|
+
permutation/2,
|
|
60
|
+
prefix/2,
|
|
61
|
+
reverse/2,
|
|
62
|
+
same_length/2,
|
|
63
|
+
select/3,
|
|
64
|
+
sum_list/2
|
|
65
|
+
]).
|
|
66
|
+
|
|
67
|
+
:- multifile sicstus:rename_module/2.
|
|
68
|
+
|
|
69
|
+
sicstus:rename_module(lists, sicstus_lists).
|
|
70
|
+
|
|
71
|
+
/** <module> SICStus 3-compatible library(lists).
|
|
72
|
+
|
|
73
|
+
@tbd This library is incomplete.
|
|
74
|
+
As of SICStus 3.12.11, the following predicates are missing:
|
|
75
|
+
|
|
76
|
+
* no_doubles/1
|
|
77
|
+
* non_member/2
|
|
78
|
+
* remove_duplicates/2
|
|
79
|
+
|
|
80
|
+
@see https://sicstus.sics.se/sicstus/docs/3.12.11/html/sicstus/Lists.html
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
%% substitute(+OldElem, +List, +NewElem, -NewList) is det.
|
|
84
|
+
%
|
|
85
|
+
% NewList is List with all values that are identical (==) to OldElem
|
|
86
|
+
% replaced by NewElem.
|
|
87
|
+
|
|
88
|
+
substitute(Old, List, New, NewList) :-
|
|
89
|
+
substitute_(List, Old, New, NewList).
|
|
90
|
+
|
|
91
|
+
substitute_([], _, _, []).
|
|
92
|
+
substitute_([O|T0], Old, New, [V|T]) :-
|
|
93
|
+
( Old == O
|
|
94
|
+
-> V = New
|
|
95
|
+
; V = O
|
|
96
|
+
),
|
|
97
|
+
substitute_(T0, Old, New, T).
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
%% nth(?Index, ?List, ?Element) is nondet.
|
|
101
|
+
%
|
|
102
|
+
% True if Element is the N-th element in List. Counting starts at
|
|
103
|
+
% 1.
|
|
104
|
+
%
|
|
105
|
+
% @deprecated use nth1/3.
|
|
106
|
+
|
|
107
|
+
nth(Index, List, Element) :-
|
|
108
|
+
nth1(Index, List, Element).
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
%% nth(?Index, ?List, ?Element, ?Rest) is nondet.
|
|
112
|
+
%
|
|
113
|
+
% True if Element is the N-th element in List and Rest is the
|
|
114
|
+
% remainder (as if by select/3) of List. Counting starts at 1.
|
|
115
|
+
%
|
|
116
|
+
% @deprecated use nth1/4.
|
|
117
|
+
|
|
118
|
+
nth(Index, List, Element, Rest) :-
|
|
119
|
+
nth1(Index, List, Element, Rest).
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
%% same_length(?List1, ?List2, ?Length) is nondet.
|
|
123
|
+
%
|
|
124
|
+
% True if List1 and List2 both have length Length.
|
|
125
|
+
|
|
126
|
+
same_length(List1, List2, Length) :-
|
|
127
|
+
( var(List1)
|
|
128
|
+
-> length(List2, Length),
|
|
129
|
+
length(List1, Length)
|
|
130
|
+
; length(List1, Length),
|
|
131
|
+
length(List2, Length)
|
|
132
|
+
).
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
%% sublist(?Sub, +List)
|
|
136
|
+
%
|
|
137
|
+
% True when all members of Sub are members of List in the same
|
|
138
|
+
% order.
|
|
139
|
+
%
|
|
140
|
+
% @compat sicstus. The order of generating sublists differs.
|
|
141
|
+
% @compat This predicate is known in many Prolog implementations,
|
|
142
|
+
% but the semantics differ. E.g. In YAP it is a continuous
|
|
143
|
+
% sub-list.
|
|
144
|
+
|
|
145
|
+
sublist(Sub, List) :-
|
|
146
|
+
sublist_(List, Sub).
|
|
147
|
+
|
|
148
|
+
sublist_([], []).
|
|
149
|
+
sublist_([H|T], Sub) :-
|
|
150
|
+
sublist__(T, H, Sub).
|
|
151
|
+
|
|
152
|
+
sublist__([], H, [H]).
|
|
153
|
+
sublist__([], _, []).
|
|
154
|
+
sublist__([H|T], X, [X|Sub]) :-
|
|
155
|
+
sublist__(T, H, Sub).
|
|
156
|
+
sublist__([H|T], _, Sub) :-
|
|
157
|
+
sublist__(T, H, Sub).
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
%% suffix(?Suffix, ?List) is nondet.
|
|
161
|
+
%
|
|
162
|
+
% True if Suffix is a suffix of List. Not the same as suffix/2
|
|
163
|
+
% in SICStus 4 - the arguments are reversed!
|
|
164
|
+
|
|
165
|
+
suffix(List, List).
|
|
166
|
+
suffix(Suffix, [_|Tail]) :-
|
|
167
|
+
suffix(Suffix, Tail).
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* Part of SWI-Prolog
|
|
2
|
+
|
|
3
|
+
WWW: http://www.swi-prolog.org
|
|
4
|
+
Copyright (c) 2021, SWI-Prolog Solutions b.v.
|
|
5
|
+
All rights reserved.
|
|
6
|
+
|
|
7
|
+
Redistribution and use in source and binary forms, with or without
|
|
8
|
+
modification, are permitted provided that the following conditions
|
|
9
|
+
are met:
|
|
10
|
+
|
|
11
|
+
1. Redistributions of source code must retain the above copyright
|
|
12
|
+
notice, this list of conditions and the following disclaimer.
|
|
13
|
+
|
|
14
|
+
2. Redistributions in binary form must reproduce the above copyright
|
|
15
|
+
notice, this list of conditions and the following disclaimer in
|
|
16
|
+
the documentation and/or other materials provided with the
|
|
17
|
+
distribution.
|
|
18
|
+
|
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
20
|
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
21
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
22
|
+
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
23
|
+
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
24
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
25
|
+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
26
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
27
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
28
|
+
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
29
|
+
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
30
|
+
POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
:- module(sicstus_ordsets,
|
|
34
|
+
[ ord_member/2 % +Elt, +Set
|
|
35
|
+
]).
|
|
36
|
+
:- reexport('../../ordsets').
|
|
37
|
+
|
|
38
|
+
:- multifile sicstus:rename_module/2.
|
|
39
|
+
|
|
40
|
+
sicstus:rename_module(ordsets, sicstus_ordsets).
|
|
41
|
+
|
|
42
|
+
/** <module> SICStus 3 library(ordsets).
|
|
43
|
+
|
|
44
|
+
@tbd This library is incomplete.
|
|
45
|
+
As of SICStus 3.2.11, the following predicates are missing:
|
|
46
|
+
|
|
47
|
+
* ord_setproduct/2
|
|
48
|
+
|
|
49
|
+
@see https://sicstus.sics.se/sicstus/docs/3.12.11/html/sicstus/Ordsets.html
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
ord_member(Elt, Set) :- ord_memberchk(Elt, Set).
|
|
@@ -0,0 +1,174 @@
|
|
|
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-2012, 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(sicstus_sockets,
|
|
37
|
+
[ socket/2, % +Domain, -Socket
|
|
38
|
+
socket_close/1, % +Socket
|
|
39
|
+
socket_bind/2, % +Socket, 'AF_INET'(+Host,+Port)
|
|
40
|
+
socket_connect/3, % +Socket, 'AF_INET'(+Host,+Port), -Stream
|
|
41
|
+
socket_listen/2, % +Socket, +Length
|
|
42
|
+
socket_accept/2, % +Socket, -Stream
|
|
43
|
+
socket_accept/3, % +Socket, -Client, -Stream
|
|
44
|
+
socket_select/5, % +TermsSockets, -NewTermsStreams,
|
|
45
|
+
% +TimeOut, +Streams, -ReadStreams
|
|
46
|
+
current_host/1, % ?HostName
|
|
47
|
+
hostname_address/2 % ?HostName, ?HostAddress
|
|
48
|
+
]).
|
|
49
|
+
:- use_module(library(socket)).
|
|
50
|
+
:- use_module(library(error)).
|
|
51
|
+
:- use_module(library(apply)).
|
|
52
|
+
:- use_module(library(pairs)).
|
|
53
|
+
:- use_module(library(lists)).
|
|
54
|
+
|
|
55
|
+
:- multifile sicstus:rename_module/2.
|
|
56
|
+
|
|
57
|
+
sicstus:rename_module(sockets, sicstus_sockets).
|
|
58
|
+
|
|
59
|
+
/** <module> SICStus 3-compatible library(sockets).
|
|
60
|
+
|
|
61
|
+
@tbd Our implementation does not support AF_UNIX sockets.
|
|
62
|
+
@see https://sicstus.sics.se/sicstus/docs/3.12.11/html/sicstus/Sockets.html
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
socket(Domain, Socket) :-
|
|
66
|
+
must_be(oneof(['AF_INET']), Domain),
|
|
67
|
+
tcp_socket(Socket).
|
|
68
|
+
|
|
69
|
+
socket_close(Socket) :-
|
|
70
|
+
tcp_close_socket(Socket).
|
|
71
|
+
|
|
72
|
+
socket_bind(Socket, Address) :-
|
|
73
|
+
( Address = 'AF_INET'(Host, Port)
|
|
74
|
+
-> true
|
|
75
|
+
; type_error(socket_address, Address)
|
|
76
|
+
),
|
|
77
|
+
( var(Host)
|
|
78
|
+
-> gethostname(Host)
|
|
79
|
+
; true % Warning?
|
|
80
|
+
),
|
|
81
|
+
tcp_bind(Socket, Port).
|
|
82
|
+
|
|
83
|
+
socket_connect(Socket, Address, StreamPair) :-
|
|
84
|
+
( Address = 'AF_INET'(Host, Port)
|
|
85
|
+
-> true
|
|
86
|
+
; type_error(socket_address, Address)
|
|
87
|
+
),
|
|
88
|
+
tcp_connect(Socket, Host:Port),
|
|
89
|
+
tcp_open_socket(Socket, Read, Write),
|
|
90
|
+
stream_pair(StreamPair, Read, Write).
|
|
91
|
+
|
|
92
|
+
socket_listen(Socket, Length) :-
|
|
93
|
+
tcp_listen(Socket, Length).
|
|
94
|
+
|
|
95
|
+
socket_accept(Socket, Client, StreamPair) :-
|
|
96
|
+
tcp_accept(Socket, Socket2, Peer),
|
|
97
|
+
peer_to_client(Peer, Client),
|
|
98
|
+
tcp_open_socket(Socket2, Read, Write),
|
|
99
|
+
stream_pair(StreamPair, Read, Write).
|
|
100
|
+
|
|
101
|
+
socket_accept(Socket, Stream) :-
|
|
102
|
+
socket_accept(Socket, _Client, Stream).
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
peer_to_client(ip(A,B,C,D), Client) :-
|
|
106
|
+
Parts = [A,B,C,D],
|
|
107
|
+
ground(Parts), !,
|
|
108
|
+
atomic_list_concat(Parts, '.', Client).
|
|
109
|
+
peer_to_client(ip(A,B,C,D), Client) :-
|
|
110
|
+
atomic_list_concat(Parts, '.', Client),
|
|
111
|
+
maplist(atom_number, Parts, Numbers),
|
|
112
|
+
length(Numbers, 4), !,
|
|
113
|
+
Numbers = [A,B,C,D].
|
|
114
|
+
peer_to_client(_, Client) :-
|
|
115
|
+
domain_error(ip_address, Client).
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
%% socket_select(+TermsSockets, -NewTermsStreams,
|
|
119
|
+
%% +TimeOut, +Streams, -ReadStreams) is det.
|
|
120
|
+
%
|
|
121
|
+
% The list of streams in Streams is checked for readable
|
|
122
|
+
% characters. A stream can be any stream associated with an I/O
|
|
123
|
+
% descriptor. The list ReadStreams returns the streams with
|
|
124
|
+
% readable data. socket_select/5 also waits for connections to the
|
|
125
|
+
% sockets specified by TermsSockets. This argument should be a
|
|
126
|
+
% list of Term-Socket pairs, where Term, which can be any term, is
|
|
127
|
+
% used as an identifier. NewTermsStreams is a list of
|
|
128
|
+
% Term-connection(Client,Stream) pairs, where Stream is a new
|
|
129
|
+
% stream open for communicating with a process connecting to the
|
|
130
|
+
% socket identified with Term, Client is the client host address
|
|
131
|
+
% (see socket_accept/3). If TimeOut is instantiated to off, the
|
|
132
|
+
% predicate waits until something is available. If TimeOut is S:U
|
|
133
|
+
% the predicate waits at most S seconds and U microseconds. Both S
|
|
134
|
+
% and U must be integers >=0. If there is a timeout, ReadStreams
|
|
135
|
+
% and NewTermsStreams are [].
|
|
136
|
+
|
|
137
|
+
socket_select(TermsSockets, NewTermsStreams, SicsTimeOut, Streams, ReadStreams) :-
|
|
138
|
+
pairs_values(TermsSockets, Sockets),
|
|
139
|
+
append(Sockets, Streams, AllStream),
|
|
140
|
+
map_timeout(SicsTimeOut, TimeOut),
|
|
141
|
+
wait_for_input(AllStream, ReadyStream, TimeOut),
|
|
142
|
+
process_ready(ReadyStream, TermsSockets, NewTermsStreams, ReadStreams).
|
|
143
|
+
|
|
144
|
+
map_timeout(off, infinite) :- !.
|
|
145
|
+
map_timeout(S:U, Seconds) :- !,
|
|
146
|
+
Seconds is S+U/1000000.
|
|
147
|
+
map_timeout(SicsTimeOut, _) :-
|
|
148
|
+
type_error(sicstus_timeout, SicsTimeOut).
|
|
149
|
+
|
|
150
|
+
process_ready([], _, [], []).
|
|
151
|
+
process_ready([H|T], TermsSockets, NewTermsStreams, ReadStreams) :-
|
|
152
|
+
memberchk(Term-H, TermsSockets), !,
|
|
153
|
+
socket_accept(H, Client, Stream),
|
|
154
|
+
NewTermsStreams = [Term-connection(Client,Stream)|NewTSTail],
|
|
155
|
+
process_ready(T, TermsSockets, NewTSTail, ReadStreams).
|
|
156
|
+
process_ready([H|T], TermsSockets, NewTermsStreams, [H|ReadStreams]) :-
|
|
157
|
+
process_ready(T, TermsSockets, NewTermsStreams, ReadStreams).
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
%% current_host(-Host) is det.
|
|
161
|
+
%
|
|
162
|
+
% True when Host is an atom that denotes the name of the host.
|
|
163
|
+
%
|
|
164
|
+
current_host(Host) :-
|
|
165
|
+
gethostname(Host).
|
|
166
|
+
|
|
167
|
+
%% hostname_address(+Host:atom, -Address:atom) is det.
|
|
168
|
+
%
|
|
169
|
+
% True when Address is the IP address of Host.
|
|
170
|
+
|
|
171
|
+
hostname_address(Host, Address) :-
|
|
172
|
+
nonvar(Host), !,
|
|
173
|
+
tcp_host_to_address(Host, IP),
|
|
174
|
+
peer_to_client(IP, Address).
|
|
@@ -0,0 +1,262 @@
|
|
|
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-2016, University of 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(sicstus_system,
|
|
36
|
+
[ environ/2, % ?Name, ?Value
|
|
37
|
+
|
|
38
|
+
exec/3, % +Command, -Streams, -PID
|
|
39
|
+
wait/2, % +PID, -Status
|
|
40
|
+
pid/1, % -PID
|
|
41
|
+
|
|
42
|
+
now/1, % -TimeStamp
|
|
43
|
+
datime/1, % -DaTime
|
|
44
|
+
datime/2, % +TimeStamp, -DaTime
|
|
45
|
+
sleep/1, % +Seconds
|
|
46
|
+
|
|
47
|
+
shell/0,
|
|
48
|
+
shell/1, % +Command
|
|
49
|
+
shell/2, % +Command, -Status
|
|
50
|
+
|
|
51
|
+
system/0,
|
|
52
|
+
system/1, % +Command
|
|
53
|
+
system/2, % +Command, -Status
|
|
54
|
+
|
|
55
|
+
popen/3, % +Command, +Mode, -Stream
|
|
56
|
+
|
|
57
|
+
host_name/1, % -HostName
|
|
58
|
+
|
|
59
|
+
working_directory/2, % -Old, +New
|
|
60
|
+
make_directory/1, % +DirName
|
|
61
|
+
file_exists/1, % +FileName
|
|
62
|
+
delete_file/1, % +FileName
|
|
63
|
+
rename_file/2, % +Old, +New
|
|
64
|
+
mktemp/2, % +Template, -FileName
|
|
65
|
+
tmpnam/1 % -FileName
|
|
66
|
+
]).
|
|
67
|
+
:- use_module(library(process)).
|
|
68
|
+
:- use_module(library(socket)).
|
|
69
|
+
:- use_module(library(shell), [shell/0]).
|
|
70
|
+
|
|
71
|
+
:- multifile sicstus:rename_module/2.
|
|
72
|
+
|
|
73
|
+
sicstus:rename_module(system, sicstus_system).
|
|
74
|
+
|
|
75
|
+
/** <module> SICStus 3-compatible library(system).
|
|
76
|
+
|
|
77
|
+
@tbd This library is incomplete.
|
|
78
|
+
As of SICStus 3.12.11, the following predicates are missing:
|
|
79
|
+
|
|
80
|
+
* delete_file/2
|
|
81
|
+
* directory_files/2
|
|
82
|
+
* file_exists/2
|
|
83
|
+
* file_property/2
|
|
84
|
+
* host_id/1
|
|
85
|
+
* kill/2
|
|
86
|
+
|
|
87
|
+
@see https://sicstus.sics.se/sicstus/docs/3.12.11/html/sicstus/System-Utilities.html
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
%% environ(?Name, ?Value) is nondet.
|
|
91
|
+
%
|
|
92
|
+
% True if Value is an atom associated with the environment variable
|
|
93
|
+
% or system property Name.
|
|
94
|
+
%
|
|
95
|
+
% @tbd Mode -Name is not supported.
|
|
96
|
+
%
|
|
97
|
+
% Because SWI-Prolog doesn't have an obvious equivalent to
|
|
98
|
+
% SICStus system properties, this predicate currently
|
|
99
|
+
% behaves as if no system properties are defined,
|
|
100
|
+
% i. e. only environment variables are returned.
|
|
101
|
+
%
|
|
102
|
+
% @compat sicstus
|
|
103
|
+
|
|
104
|
+
environ(Name, Value) :-
|
|
105
|
+
getenv(Name, Value).
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
/*******************************
|
|
109
|
+
* PROCESSES *
|
|
110
|
+
*******************************/
|
|
111
|
+
|
|
112
|
+
%% exec(+Command, +Streams, -PID)
|
|
113
|
+
%
|
|
114
|
+
% SICStus 3 compatible implementation of exec/3 on top of the
|
|
115
|
+
% SICStus 4 compatible process_create/3.
|
|
116
|
+
%
|
|
117
|
+
% @bug The SICStus version for Windows seems to hand Command
|
|
118
|
+
% directly to CreateProcess(). We hand it to
|
|
119
|
+
%
|
|
120
|
+
% ==
|
|
121
|
+
% %COMSPEC% /s /c "Command"
|
|
122
|
+
% ==
|
|
123
|
+
%
|
|
124
|
+
% In case of conflict, it is adviced to use
|
|
125
|
+
% process_create/3
|
|
126
|
+
|
|
127
|
+
exec(Command, Streams, PID) :-
|
|
128
|
+
Streams = [In, Out, Error],
|
|
129
|
+
shell(Shell, Command, Argv),
|
|
130
|
+
process_create(Shell, Argv,
|
|
131
|
+
[ stdin(In),
|
|
132
|
+
stdout(Out),
|
|
133
|
+
stderr(Error),
|
|
134
|
+
process(PID)
|
|
135
|
+
]).
|
|
136
|
+
|
|
137
|
+
shell(Shell, Command, ['/s', '/c', Command]) :-
|
|
138
|
+
current_prolog_flag(windows, true), !,
|
|
139
|
+
getenv('COMSPEC', Shell).
|
|
140
|
+
shell('/bin/sh', Command, ['-c', Command]).
|
|
141
|
+
|
|
142
|
+
%% wait(+PID, -Status)
|
|
143
|
+
%
|
|
144
|
+
% Wait for processes created using exec/3.
|
|
145
|
+
%
|
|
146
|
+
% @see exec/3
|
|
147
|
+
|
|
148
|
+
wait(PID, Status) :-
|
|
149
|
+
process_wait(PID, Status).
|
|
150
|
+
|
|
151
|
+
%% pid(-PID)
|
|
152
|
+
%
|
|
153
|
+
% Process ID of the current process.
|
|
154
|
+
%
|
|
155
|
+
% @compat sicstus.
|
|
156
|
+
|
|
157
|
+
pid(PID) :-
|
|
158
|
+
current_prolog_flag(pid, PID).
|
|
159
|
+
|
|
160
|
+
%% now(-When) is det.
|
|
161
|
+
%
|
|
162
|
+
% Unify when with the current time-stamp
|
|
163
|
+
%
|
|
164
|
+
% @compat sicstus
|
|
165
|
+
|
|
166
|
+
now(When) :-
|
|
167
|
+
get_time(Now),
|
|
168
|
+
When is integer(Now).
|
|
169
|
+
|
|
170
|
+
%% datime(+When, -Datime) is det.
|
|
171
|
+
%% datime(-When, +Datime) is det.
|
|
172
|
+
%
|
|
173
|
+
% True when Datime is a datime/6 record that reflects the time
|
|
174
|
+
% stamp When.
|
|
175
|
+
%
|
|
176
|
+
% @compat sicstus
|
|
177
|
+
|
|
178
|
+
datime(When, datime(Year,Month,Day,Hour,Min,Sec)) :-
|
|
179
|
+
var(When),
|
|
180
|
+
!,
|
|
181
|
+
date_time_stamp(date(Year,Month,Day,Hour,Min,Sec,_,_,_), When).
|
|
182
|
+
datime(When, datime(Year,Month,Day,Hour,Min,Sec)) :-
|
|
183
|
+
stamp_date_time(When, date(Year,Month,Day,Hour,Min,SecF,_,_,_), local),
|
|
184
|
+
Sec is integer(SecF).
|
|
185
|
+
|
|
186
|
+
%% datime(-Datime) is det.
|
|
187
|
+
%
|
|
188
|
+
% Unifies Datime with the current date and time as a datime/6
|
|
189
|
+
% record of the form datime(Year,Month,Day,Hour,Min,Sec). All
|
|
190
|
+
% fields are integers.
|
|
191
|
+
%
|
|
192
|
+
% @compat sicstus
|
|
193
|
+
|
|
194
|
+
datime(datime(Year,Month,Day,Hour,Min,Sec)) :-
|
|
195
|
+
get_time(Now),
|
|
196
|
+
stamp_date_time(Now, date(Year,Month,Day,Hour,Min,SecF,_,_,_), local),
|
|
197
|
+
Sec is integer(SecF).
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
%% system.
|
|
201
|
+
%% system(+Command).
|
|
202
|
+
%% system(+Command, -Status).
|
|
203
|
+
%
|
|
204
|
+
% Synomyms for shell/0, shell/1 and shell/2.
|
|
205
|
+
%
|
|
206
|
+
% @compat sicstus.
|
|
207
|
+
|
|
208
|
+
system :- shell.
|
|
209
|
+
system(Command) :- shell(Command).
|
|
210
|
+
system(Command, Status) :- shell(Command, Status).
|
|
211
|
+
|
|
212
|
+
%% popen(+Command, +Mode, ?Stream)
|
|
213
|
+
%
|
|
214
|
+
% @compat sicstus
|
|
215
|
+
|
|
216
|
+
popen(Command, Mode, Stream) :-
|
|
217
|
+
open(pipe(Command), Mode, Stream).
|
|
218
|
+
|
|
219
|
+
%% host_name(-HostName)
|
|
220
|
+
%
|
|
221
|
+
% @compat sicstus
|
|
222
|
+
% @see gethostname/1
|
|
223
|
+
|
|
224
|
+
host_name(HostName) :-
|
|
225
|
+
gethostname(HostName).
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
/*******************************
|
|
229
|
+
* FILE OPERATIONS *
|
|
230
|
+
*******************************/
|
|
231
|
+
|
|
232
|
+
%% mktemp(+Template, -File) is det.
|
|
233
|
+
%
|
|
234
|
+
% Interface to the Unix function. This emulation uses
|
|
235
|
+
% tmp_file/2 and ignores Template.
|
|
236
|
+
%
|
|
237
|
+
% @compat sicstus
|
|
238
|
+
% @deprecated This interface is a security-risc. Use
|
|
239
|
+
% tmp_file_stream/3.
|
|
240
|
+
|
|
241
|
+
mktemp(_Template, File) :-
|
|
242
|
+
tmp_file(mkstemp, File).
|
|
243
|
+
|
|
244
|
+
%% tmpnam(-FileName)
|
|
245
|
+
%
|
|
246
|
+
% Interface to tmpnam(). This emulation uses tmp_file/2.
|
|
247
|
+
%
|
|
248
|
+
% @compat sicstus
|
|
249
|
+
% @deprecated This interface is a security-risc. Use
|
|
250
|
+
% tmp_file_stream/3.
|
|
251
|
+
|
|
252
|
+
tmpnam(File) :-
|
|
253
|
+
tmp_file(tmpnam, File).
|
|
254
|
+
|
|
255
|
+
%% file_exists(+FileName) is semidet.
|
|
256
|
+
%
|
|
257
|
+
% True if a file named FileName exists.
|
|
258
|
+
%
|
|
259
|
+
% @compat sicstus
|
|
260
|
+
|
|
261
|
+
file_exists(FileName) :-
|
|
262
|
+
exists_file(FileName).
|
|
@@ -0,0 +1,57 @@
|
|
|
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) 2012, 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(sicstus_terms,
|
|
36
|
+
[ term_variables_bag/2 % +Term, -List
|
|
37
|
+
]).
|
|
38
|
+
:- reexport('../../terms').
|
|
39
|
+
|
|
40
|
+
:- multifile sicstus:rename_module/2.
|
|
41
|
+
|
|
42
|
+
sicstus:rename_module(terms, sicstus_terms).
|
|
43
|
+
|
|
44
|
+
/** <module> SICStus 3-compatible library(terms).
|
|
45
|
+
|
|
46
|
+
@see https://sicstus.sics.se/sicstus/docs/3.12.11/html/sicstus/Term-Utilities.html
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
%% term_variables_bag(+Term, -Variables) is det.
|
|
50
|
+
%
|
|
51
|
+
% Variables is a list of variables that appear in Term. The
|
|
52
|
+
% variables are ordered according to depth-first left-right walking
|
|
53
|
+
% of the term. Variables contains no duplicates. This is the same
|
|
54
|
+
% as SWI-Prolog's term_variables/2.
|
|
55
|
+
|
|
56
|
+
term_variables_bag(Term, Variables) :-
|
|
57
|
+
term_variables(Term, Variables).
|