diff options
Diffstat (limited to 'doc/load.n')
-rw-r--r-- | doc/load.n | 29 |
1 files changed, 17 insertions, 12 deletions
@@ -9,7 +9,7 @@ .BS '\" Note: do not modify the .SH NAME line immediately below! .SH NAME -load \- Load machine code and initialize new commands. +load \- Load machine code and initialize new commands .SH SYNOPSIS \fBload \fIfileName\fR .br @@ -71,7 +71,12 @@ in an application. If a given \fIfileName\fR is loaded into multiple interpreters, then the first \fBload\fR will load the code and call the initialization procedure; subsequent \fBload\fRs will call the initialization procedure without loading the code again. -It is not possible to unload or reload a package. +.VS 8.5 +For Tcl versions lower than 8.5, it is not possible to unload or reload a +package. From version 8.5 however, the \fBunload\fR command allows the unloading +of libraries loaded with \fBload\fR, for libraries that are aware of the +Tcl's unloading mechanism. +.VE 8.5 .PP The \fBload\fR command also supports packages that are statically linked with the application, if those packages have been registered @@ -85,13 +90,10 @@ This may be done differently on different platforms. The default guess, which is used on most UNIX platforms, is to take the last element of \fIfileName\fR, strip off the first three characters if they are \fBlib\fR, and use any following -.VS alphabetic and underline characters as the module name. -.VE For example, the command \fBload libxyz4.2.so\fR uses the module name \fBxyz\fR and the command \fBload bin/last.so {}\fR uses the module name \fBlast\fR. -.VS "" br .PP If \fIfileName\fR is an empty string, then \fIpackageName\fR must be specified. @@ -102,17 +104,20 @@ Otherwise, the \fBload\fR command searches for a dynamically loaded package by that name, and uses it if it is found. If several different files have been \fBload\fRed with different versions of the package, Tcl picks the file that was loaded first. -.VE .SH "PORTABILITY ISSUES" .TP \fBWindows\fR\0\0\0\0\0 . -When a load fails with "library not found" error, it is also possible +When a load fails with +.QW "library not found" +error, it is also possible that a dependent library was not found. To see the dependent libraries, -type ``dumpbin -imports <dllname>'' in a DOS console to see what the -library must import. -When loading a DLL in the current directory, Windows will ignore ``./'' as -a path specifier and use a search heuristic to find the DLL instead. +type +.QW "dumpbin -imports <dllname>" +in a DOS console to see what the library must import. +When loading a DLL in the current directory, Windows will ignore +.QW ./ +as a path specifier and use a search heuristic to find the DLL instead. To avoid this, load the DLL with: .CS \fBload\fR [file join [pwd] mylib.DLL] @@ -131,7 +136,7 @@ The following is a minimal extension: #include <stdio.h> static int fooCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { - printf("called with %d arguments\\n", objc); + printf("called with %d arguments\en", objc); return TCL_OK; } int Foo_Init(Tcl_Interp *interp) { |