Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Tcl_StaticPackage (3tcl)

Name

Tcl_StaticPackage - make a statically linked package available via the 'load' command

Synopsis

#include <tcl.h>

Tcl_StaticPackage(interp, pkgName, initProc, safeInitProc)

Description

Tcl_StaticPackage(3tcl)     Tcl Library Procedures     Tcl_StaticPackage(3tcl)



______________________________________________________________________________

NAME
       Tcl_StaticPackage  - make a statically linked package available via the
       'load' command

SYNOPSIS
       #include <tcl.h>

       Tcl_StaticPackage(interp, pkgName, initProc, safeInitProc)

ARGUMENTS
       Tcl_Interp *interp (in)                         If not NULL, points  to
                                                       an   interpreter   into
                                                       which the  package  has
                                                       already   been   loaded
                                                       (i.e., the  caller  has
                                                       already   invoked   the
                                                       appropriate initializa-
                                                       tion  procedure).  NULL
                                                       means the  package  has
                                                       not  yet  been incorpo-
                                                       rated into  any  inter-
                                                       preter.

       const char *pkgName (in)                        Name  of  the  package;
                                                       should be properly cap-
                                                       italized  (first letter
                                                       upper-case, all  others
                                                       lower-case).

       Tcl_PackageInitProc *initProc (in)              Procedure  to invoke to
                                                       incorporate this  pack-
                                                       age   into   a  trusted
                                                       interpreter.

       Tcl_PackageInitProc *safeInitProc (in)          Procedure  to  call  to
                                                       incorporate  this pack-
                                                       age into a safe  inter-
                                                       preter  (one  that will
                                                       execute       untrusted
                                                       scripts).   NULL  means
                                                       the package  cannot  be
                                                       used   in  safe  inter-
                                                       preters.
______________________________________________________________________________

DESCRIPTION
       This procedure may be invoked to  announce  that  a  package  has  been
       linked  statically  with a Tcl application and, optionally, that it has
       already been loaded into an interpreter.   Once  Tcl_StaticPackage  has
       been  invoked  for  a package, it may be loaded into interpreters using
       the load command.  Tcl_StaticPackage is normally invoked  only  by  the
       Tcl_AppInit  procedure  for  the application, not by packages for them-
       selves (Tcl_StaticPackage should only be invoked for statically  loaded
       packages,  and  code  in  the  package  itself  should not need to know
       whether the package is dynamically or statically loaded).

       When the load command is used later to load the package into an  inter-
       preter,  one of initProc and safeInitProc will be invoked, depending on
       whether the target interpreter is safe or not.  initProc and  safeInit-
       Proc must both match the following prototype:

              typedef int Tcl_PackageInitProc(
                      Tcl_Interp *interp);

       The  interp argument identifies the interpreter in which the package is
       to be loaded.  The  initialization  procedure  must  return  TCL_OK  or
       TCL_ERROR  to indicate whether or not it completed successfully; in the
       event of an error it should set the interpreter's result to point to an
       error  message.   The result or error from the initialization procedure
       will be returned as the result of the load command that caused the ini-
       tialization procedure to be invoked.

KEYWORDS
       initialization procedure, package, static linking


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | runtime/tcl-8    |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       load(n), package(n), Tcl_PkgRequire(3)



NOTES
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source was downloaded from  http://prdownloads.sourceforge.net/tcl/tcl-
       core8.6.7-src.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.tcl.tk/.



Tcl                                   7.5              Tcl_StaticPackage(3tcl)