Tcl Source Code

View Ticket
Ticket UUID: 2891616
Title: TIP 357: export TclLoadFile
Type: Patch Version: TIP Implementation
Submitter: kennykb Created on: 2009-11-04 02:06:55
Subsystem: 40. Dynamic Loading Assigned To: kennykb
Priority: 9 Immediate Severity:
Status: Closed Last Modified: 2010-04-20 09:20:27
Resolution: Accepted Closed By: sf-robot
    Closed on: 2010-04-20 02:20:27
This patch set reflects where I am with TIP 357 implementation.  Notes:

(1) [unload] of modules loaded from VFS is totally untested in the test suite.  And I *know* it won't work with these patches, because I haven't done anything about wrapping the FSDivertLoad structure (in tclLoadUtil.c) into a Tcl_LoadHandle.  That will have to be done (and a test case added) before this ships.

(2) There has been no attempt to test, or even build, on a platform other than Win32 and Linux-ix86. 

(3) The code will not work for preloading DLLs because the DLL  name changes to a TclpTempFileName when it gets copied to the native filesystem, losing the identity of the DLL symbols for cross-linking.

(4) patthoyts, mistachkin, and tclguy are talking about making load-from-memory work on Windows.

(5) jenglish wants Tcl_LoadFile to fail (and unload the library) if any symbol is missing. (Optional symbols can be processed with Tcl_FindSymbol.) I'm willing to go along with that, but haven't done it.  When we do, the calling code in the [load] command needs to be adapted to use Tcl_FindSymbol for the _SafeInit, _Unload and _SafeUnload entry points.

(6) There are no man pages for the new APIs.

(7) The code probably s*ks and definitely needs another pair of eyeballs or three.
User Comments: sf-robot added on 2010-04-20 09:20:26:

allow_comments - 1

This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).

dkf added on 2010-04-05 14:24:45:
TIP is now formally done; there's docs and tests and the tests pass on at least some platforms. Remaining work is now engineering things up to quality I'm marking Pending and assuming that we can probably fix anything with bug reports.

kennykb added on 2010-03-17 10:22:58:
Updated patch once again, adding the 'flags' argument from Joe English's proposal

kennykb added on 2010-03-17 10:22:27:

File Added - 367052: 357.patch

kennykb added on 2010-03-17 10:21:35:

File Deleted - 365198:

kennykb added on 2010-03-03 09:59:28:

File Added - 365198: tip357.patch

kennykb added on 2010-03-03 09:58:37:

File Deleted - 364908:

kennykb added on 2010-03-03 09:58:25:
Updated patch yet again.

Draft code added to the source files for HPUX, MacOSX, Next, OSF. TESTERS STILL NEEDED..

The signature of 'Tcl_LoadLibrary' is changed to make 'procPtrs' simply a void*.

Man pages are still missing.

kennykb added on 2010-03-01 08:41:26:
Patch updated to build against the current HEAD.

(1) Unload-from-VFS has at least rudimentary testing.
(3) The temp file name now matches the DLL name, which should allow for preloading. The latter is as yet untested.
(5) jenglish's suggestion is adopted.

(2) is still beyond my reach. TESTERS NEEDED.
(4) probably will not happen soon. The required code turns out to be proprietary.
(6-7) are still open issues as well.

(8) In addition, there needs to be some way to clean up the DLLs that have been processed by copy-to-native at process exit.

kennykb added on 2010-03-01 08:36:41:

File Deleted - 349449:

kennykb added on 2010-03-01 08:36:26:

File Added - 364908: tip357.patch

kennykb added on 2009-11-04 09:06:56:

File Added - 349449: 357.patch