summaryrefslogtreecommitdiffstats
path: root/doc/package.n
diff options
context:
space:
mode:
Diffstat (limited to 'doc/package.n')
-rw-r--r--doc/package.n193
1 files changed, 0 insertions, 193 deletions
diff --git a/doc/package.n b/doc/package.n
deleted file mode 100644
index f4d9f84..0000000
--- a/doc/package.n
+++ /dev/null
@@ -1,193 +0,0 @@
-'\"
-'\" Copyright (c) 1996 Sun Microsystems, Inc.
-'\"
-'\" See the file "license.terms" for information on usage and redistribution
-'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-'\"
-'\" RCS: @(#) $Id: package.n,v 1.3 1999/03/10 05:52:45 stanton Exp $
-'\"
-.so man.macros
-.TH package n 7.5 Tcl "Tcl Built-In Commands"
-.BS
-'\" Note: do not modify the .SH NAME line immediately below!
-.SH NAME
-package \- Facilities for package loading and version control
-.SH SYNOPSIS
-.nf
-\fBpackage forget \fIpackage\fR
-\fBpackage ifneeded \fIpackage version\fR ?\fIscript\fR?
-\fBpackage names\fR
-\fBpackage present \fR?\fB\-exact\fR? \fIpackage \fR?\fIversion\fR?
-\fBpackage provide \fIpackage \fR?\fIversion\fR?
-\fBpackage require \fR?\fB\-exact\fR? \fIpackage \fR?\fIversion\fR?
-\fBpackage unknown \fR?\fIcommand\fR?
-\fBpackage vcompare \fIversion1 version2\fR
-\fBpackage versions \fIpackage\fR
-\fBpackage vsatisfies \fIversion1 version2\fR
-.fi
-.BE
-
-.SH DESCRIPTION
-.PP
-This command keeps a simple database of the packages available for
-use by the current interpreter and how to load them into the
-interpreter.
-It supports multiple versions of each package and arranges
-for the correct version of a package to be loaded based on what
-is needed by the application.
-This command also detects and reports version clashes.
-Typically, only the \fBpackage require\fR and \fBpackage provide\fR
-commands are invoked in normal Tcl scripts; the other commands are used
-primarily by system scripts that maintain the package database.
-.PP
-The behavior of the \fBpackage\fR command is determined by its first argument.
-The following forms are permitted:
-.TP
-\fBpackage forget \fIpackage\fR
-Removes all information about \fIpackage\fR from this interpreter,
-including information provided by both \fBpackage ifneeded\fR and
-\fBpackage provide\fR.
-.TP
-\fBpackage ifneeded \fIpackage version\fR ?\fIscript\fR?
-This command typically appears only in system configuration
-scripts to set up the package database.
-It indicates that a particular version of
-a particular package is available if needed, and that the package
-can be added to the interpreter by executing \fIscript\fR.
-The script is saved in a database for use by subsequent
-\fBpackage require\fR commands; typically, \fIscript\fR
-sets up auto-loading for the commands in the package (or calls
-\fBload\fR and/or \fBsource\fR directly), then invokes
-\fBpackage provide\fR to indicate that the package is present.
-There may be information in the database for several different
-versions of a single package.
-If the database already contains information for \fIpackage\fR
-and \fIversion\fR, the new \fIscript\fR replaces the existing
-one.
-If the \fIscript\fR argument is omitted, the current script for
-version \fIversion\fR of package \fIpackage\fR is returned,
-or an empty string if no \fBpackage ifneeded\fR command has
-been invoked for this \fIpackage\fR and \fIversion\fR.
-.TP
-\fBpackage names\fR
-Returns a list of the names of all packages in the
-interpreter for which a version has been provided (via
-\fBpackage provide\fR) or for which a \fBpackage ifneeded\fR
-script is available.
-The order of elements in the list is arbitrary.
-.TP
-\fBpackage present \fR?\fB\-exact\fR? \fIpackage \fR?\fIversion\fR?
-This command is equivalent to \fBpackage require\fR except that it
-does not try and load the package if it is not already loaded.
-.TP
-\fBpackage provide \fIpackage \fR?\fIversion\fR?
-This command is invoked to indicate that version \fIversion\fR
-of package \fIpackage\fR is now present in the interpreter.
-It is typically invoked once as part of an \fBifneeded\fR script,
-and again by the package itself when it is finally loaded.
-An error occurs if a different version of \fIpackage\fR has been
-provided by a previous \fBpackage provide\fR command.
-If the \fIversion\fR argument is omitted, then the command
-returns the version number that is currently provided, or an
-empty string if no \fBpackage provide\fR command has been
-invoked for \fIpackage\fR in this interpreter.
-.TP
-\fBpackage require \fR?\fB\-exact\fR? \fIpackage \fR?\fIversion\fR?
-This command is typically invoked by Tcl code that wishes to use
-a particular version of a particular package. The arguments
-indicate which package is wanted, and the command ensures that
-a suitable version of the package is loaded into the interpreter.
-If the command succeeds, it returns the version number that is
-loaded; otherwise it generates an error.
-If both the \fB\-exact\fR
-switch and the \fIversion\fR argument are specified then only the
-given version is acceptable. If \fB\-exact\fR is omitted but
-\fIversion\fR is specified, then versions later than \fIversion\fR
-are also acceptable as long as they have the same major version
-number as \fIversion\fR.
-If both \fB\-exact\fR and \fIversion\fR are omitted then any
-version whatsoever is acceptable.
-If a version of \fIpackage\fR has already been provided (by invoking
-the \fBpackage provide\fR command), then its version number must
-satisfy the criteria given by \fB\-exact\fR and \fIversion\fR and
-the command returns immediately.
-Otherwise, the command searches the database of information provided by
-previous \fBpackage ifneeded\fR commands to see if an acceptable
-version of the package is available.
-If so, the script for the highest acceptable version number is invoked;
-it must do whatever is necessary to load the package,
-including calling \fBpackage provide\fR for the package.
-If the \fBpackage ifneeded\fR database does not contain an acceptable
-version of the package and a \fBpackage unknown\fR command has been
-specified for the interpreter then that command is invoked; when
-it completes, Tcl checks again to see if the package is now provided
-or if there is a \fBpackage ifneeded\fR script for it.
-If all of these steps fail to provide an acceptable version of the
-package, then the command returns an error.
-.TP
-\fBpackage unknown \fR?\fIcommand\fR?
-This command supplies a ``last resort'' command to invoke during
-\fBpackage require\fR if no suitable version of a package can be found
-in the \fBpackage ifneeded\fR database.
-If the \fIcommand\fR argument is supplied, it contains the first part
-of a command; when the command is invoked during a \fBpackage require\fR
-command, Tcl appends two additional arguments giving the desired package
-name and version.
-For example, if \fIcommand\fR is \fBfoo bar\fR and later the command
-\fBpackage require test 2.4\fR is invoked, then Tcl will execute
-the command \fBfoo bar test 2.4\fR to load the package.
-If no version number is supplied to the \fBpackage require\fR command,
-then the version argument for the invoked command will be an empty string.
-If the \fBpackage unknown\fR command is invoked without a \fIcommand\fR
-argument, then the current \fBpackage unknown\fR script is returned,
-or an empty string if there is none.
-If \fIcommand\fR is specified as an empty string, then the current
-\fBpackage unknown\fR script is removed, if there is one.
-.TP
-\fBpackage vcompare \fIversion1 version2\fR
-Compares the two version numbers given by \fIversion1\fR and \fIversion2\fR.
-Returns -1 if \fIversion1\fR is an earlier version than \fIversion2\fR,
-0 if they are equal, and 1 if \fIversion1\fR is later than \fBversion2\fR.
-.TP
-\fBpackage versions \fIpackage\fR
-Returns a list of all the version numbers of \fIpackage\fR
-for which information has been provided by \fBpackage ifneeded\fR
-commands.
-.TP
-\fBpackage vsatisfies \fIversion1 version2\fR
-Returns 1 if scripts written for \fIversion2\fR will work unchanged
-with \fIversion1\fR (i.e. \fIversion1\fR is equal to or greater
-than \fIversion2\fR and they both have the same major version
-number), 0 otherwise.
-
-.SH "VERSION NUMBERS"
-.PP
-Version numbers consist of one or more decimal numbers separated
-by dots, such as 2 or 1.162 or 3.1.13.1.
-The first number is called the major version number.
-Larger numbers correspond to later versions of a package, with
-leftmost numbers having greater significance.
-For example, version 2.1 is later than 1.3 and version
-3.4.6 is later than 3.3.5.
-Missing fields are equivalent to zeroes: version 1.3 is the
-same as version 1.3.0 and 1.3.0.0, so it is earlier than 1.3.1 or 1.3.0.2.
-A later version number is assumed to be upwards compatible with
-an earlier version number as long as both versions have the same
-major version number.
-For example, Tcl scripts written for version 2.3 of a package should
-work unchanged under versions 2.3.2, 2.4, and 2.5.1.
-Changes in the major version number signify incompatible changes:
-if code is written to use version 2.1 of a package, it is not guaranteed
-to work unmodified with either version 1.7.3 or version 3.1.
-
-.SH "PACKAGE INDICES"
-.PP
-The recommended way to use packages in Tcl is to invoke \fBpackage require\fR
-and \fBpackage provide\fR commands in scripts, and use the procedure
-\fBpkg_mkIndex\fR to create package index files.
-Once you've done this, packages will be loaded automatically
-in response to \fBpackage require\fR commands.
-See the documentation for \fBpkg_mkIndex\fR for details.
-
-.SH KEYWORDS
-package, version