- Documentation
- Reference manual
- The SWI-Prolog library
- library(aggregate): Aggregation operators on backtrackable predicates
- library(apply): Apply predicates on a list
- library(assoc): Association lists
- library(broadcast): Broadcast and receive event notifications
- library(charsio): I/O on Lists of Character Codes
- library(check): Consistency checking
- library(clpb): CLP(B): Constraint Logic Programming over Boolean Variables
- library(clpfd): CLP(FD): Constraint Logic Programming over Finite Domains
- library(clpqr): Constraint Logic Programming over Rationals and Reals
- library(csv): Process CSV (Comma-Separated Values) data
- library(debug): Print debug messages and test assertions
- library(error): Error generating support
- library(gensym): Generate unique identifiers
- library(iostream): Utilities to deal with streams
- library(lists): List Manipulation
- library(main): Provide entry point for scripts
- library(nb_set): Non-backtrackable set
- library(www_browser): Activating your Web-browser
- library(option): Option list processing
- library(optparse): command line parsing
- library(ordsets): Ordered set manipulation
- library(pairs): Operations on key-value lists
- library(persistency): Provide persistent dynamic predicates
- library(pio): Pure I/O
- library(predicate_options): Declare option-processing of predicates
- library(prolog_pack): A package manager for Prolog
- library(prolog_xref): Cross-reference data collection library
- library(quasi_quotations): Define Quasi Quotation syntax
- library(random): Random numbers
- library(readutil): Reading lines, streams and files
- library(record): Access named fields in a term
- library(registry): Manipulating the Windows registry
- library(simplex): Solve linear programming problems
- library(solution_sequences): Modify solution sequences
- library(tabling): Tabled execution (SLG)
- library(thread_pool): Resource bounded thread management
- library(ugraphs): Unweighted Graphs
- library(url): Analysing and constructing URL
- library(varnumbers): Utilities for numbered terms
- library(yall): Lambda expressions
- The SWI-Prolog library
- Packages
- Reference manual
A.26 library(prolog_pack): A package manager for Prolog
- See also
- Installed packages can be inspected using
?- doc_browser.
- To be done
- - Version logic
- Find and resolve conflicts
- Upgrade git packages
- Validate git packages
- Test packages: run tests from directory `test'.
The library(prolog_pack)
provides the SWI-Prolog package
manager. This library lets you inspect installed packages, install
packages, remove packages, etc. It is complemented by the built-in attach_packs/0
that makes installed packages available as libaries.
- [det]pack_list_installed
- List currently installed packages. Unlike pack_list/1,
only locally installed packages are displayed and no connection is made
to the internet.
- See also
- Use pack_list/1 to find packages.
- pack_info(+Pack)
- Print more detailed information about Pack.
- [det]pack_search(+Query)
- [det]pack_list(+Query)
- Query package server and installed packages and display
results.
Query is matches case-insensitively against the name and
title of known and installed packages. For each matching package, a
single line is displayed that provides:
- Installation status
- p: package, not installed
- i: installed package; up-to-date with public version
- U: installed package; can be upgraded
- A: installed package; newer than publically available
- l: installed package; not on server
- Name@Version
- Name@Version(ServerVersion)
- Title
Hint:
?- pack_list('').
lists all packages.The predicates pack_list/1 and pack_search/1 are synonyms. Both contact the package server at http://www.swi-prolog.org to find available packages.
- See also
- pack_list_installed/0 to list installed packages without contacting the server.
- Installation status
- [det]pack_install(+Spec:atom)
- Install a package. Spec is one of
- Archive file name
- HTTP URL of an archive file name. This URL may contain a star (*) for the version. In this case pack_install asks for the deirectory content and selects the latest version.
- GIT URL (not well supported yet)
- A local directory name given as
file://
URL. - A package name. This queries the package repository at http://www.swi-prolog.org
After resolving the type of package, pack_install/2 is used to do the actual installation.
- [det]pack_install(+Name, +Options)
- Install package Name. Processes the options below. Default
options as would be used by pack_install/1
are used to complete the provided Options.
- url(+URL)
- Source for downloading the package
- package_directory(+Dir)
- Directory into which to install the package
- interactive(+Boolean)
- Use default answer without asking the user if there is a default action.
- silent(+Boolean)
- If
true
(default false), suppress informational progress messages. - upgrade(+Boolean)
- If
true
(defaultfalse
), upgrade package if it is already installed. - git(+Boolean)
- If
true
(defaultfalse
unless URL ends with =.git=), assume the URL is a GIT repository.
Non-interactive installation can be established using the option
interactive(false)
. It is adviced to install from a particular trusted URL instead of the plain pack name for unattented operation. - [det]pack_url_file(+URL, -File)
- True if File is a unique id for the referenced pack and version. Normally, that is simply the base name, but GitHub archives destroy this picture. Needed by the pack manager.
- [det]pack_rebuild(+Pack)
- Rebuilt possible foreign components of Pack.
- [det]pack_rebuild
- Rebuild foreign components of all packages.
- [nondet,multifile]environment(-Name, -Value)
- Hook to define the environment for building packs. This Multifile hook
extends the process environment for building foreign extensions. A value
provided by this hook overrules defaults provided by def_environment/2.
In addition to changing the environment, this may be used to pass
additional values to the environment, as in:
prolog_pack:environment('USER', User) :- getenv('USER', User).
Name is an atom denoting a valid variable name Value is either an atom or number representing the value of the variable. - [semidet]pack_upgrade(+Pack)
- Try to upgrade the package Pack.
- To be done
- Update dependencies when updating a pack from git?
- [det]pack_remove(+Name)
- Remove the indicated package.
- [nondet]pack_property(?Pack, ?Property)
- True when Property is a property of an installed Pack.
This interface is intended for programs that wish to interact with the
package manager. Defined properties are:
- directory(Directory)
- Directory into which the package is installed
- version(Version)
- Installed version
- title(Title)
- Full title of the package
- author(Author)
- Registered author
- download(URL)
- Official download URL
- readme(File)
- Package
README
file (if present) - todo(File)
- Package
TODO
file (if present)