Purpose: collect information, pointers, etc. regarding issues relating to Tcl and dynamic libraries. Dynamic libraries - in Windows known as DLLs and in Unix often called shared libraries - are bodies of C code compiled and linked in a manner that make it possible for the code to be read into memory and made a part of running [processes]. In Tcl, if the appropriate C code is provided, and the code is compiled properly, one can make use of Tcl's [load] command to load a dynamic library into an interpreter creating one or more new tcl commands. ---- Configuring Source code issues ---- When configuing tcl, one seems to need to make certain that one specifies --enable-shared and not specify --disable-load . Anyone know ''why'' the flags are two different words? Is shared and load really two different conditions? [DGP] Yes, those configuration options specify two different things. ''--enable-shared'' (default) vs. ''--disable-shared'' determines whether or not the Tcl library you build is a shared library or a static library. ''--enable-load'' (default) vs. ''--disable-load'' determines whether or not the Tcl library you build supports a working [load] command. [LV] When you say "[[...] supports a working load command", do you mean that --disable-load results in a Tcl library which does not recognize load as a valid command? [DGP] No. When a ''--disable-load'' configuration of the Tcl library is built, it contains a [load] command that is the functional equivalent of the command [[error "dynamic loading is not currently available on this system"]] [LV] However, the --enable-shared/--disable-shared , at least if present, would indicate that the extension (or, in the case of Tcl itself, the base Tcl library) that is generated will be able to be ''load''ed. Right? [DGP] I don't understand the rest of your question. [MSW] Nope. You can [load] an extension into a static interpreter, but only if [load] is functionally available. Whether or not your tcl library is static or dynamic '''itself''' doesn't matter. [LV] Now I am confused. Are you saying that it doesn't matter how an extension is built, as long as one has a functional load command? [MSW] Nope, I'm saying that you can [load] any ''dynamic'' library as long as a functional load command is there, no matter whether tcl ''itself'' is a dynamic lib or linked statically (which --enable/--disable-shared governs). It doesn't matter how tcl itself is built as long as you can load others stuff dynamically... ---- Stubs issues See [Stubs], [Extension Stubs Tables], and [Writing extensions for stubs and pre-stubs Tcl]. ---- [[Are there any wiki or non-wiki web references which could be inserted here that discuss the approrpriate calls one must make in a library for this?]] [[What other wiki and non-wiki references would be useful here?]] What about [Direct Shared Library Use for Tcl9]? ---- [Category Internals]