Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Tcl_StaticPackage(3)	    Tcl	Library	Procedures	  Tcl_StaticPackage(3)

______________________________________________________________________________

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 ap-
						       propriate   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 in-
						       terpreter.

       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.

       This  function  can  not	be used	in stub-enabled	extensions. Its	symbol
       entry in	the stub table is deprecated and it will  be  removed  in  Tcl
       9.0.

KEYWORDS
       initialization procedure, package, static linking

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

Tcl				      7.5		  Tcl_StaticPackage(3)

NAME | SYNOPSIS | ARGUMENTS | DESCRIPTION | KEYWORDS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Tcl_StaticPackage.tcl87&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help