From: Jeff R. <dv...@di...> - 2013-09-26 18:26:58
|
Hi David, This is a known deficiency - the introspection script that creates the tcl initialization script doesn't capture interp aliases. I don't think it's difficult to add, just hasn't been done yet. -J David Osborne wrote: > Hi, > > Wondering if you can help with a problem. > > I am attempting to preload the trf accelerated version of tcllib's > ::md5::md5 in our naviserver config. > > As a simplified testcase to demonstrate what's happening I can do the > following: > > - use a default configuration of naviserver, e.g. in /usr/local/ns > - copy osborne-procs.tcl to/usr/local/ns/modules/tcl/osborne-procs.tcl > where osborne-procs.tcl contains: > > package require Trf > package require md5 > > - use the sample config as distributed with naviserver > /usr/local/ns/bin/nsd -c -u nsadmin -t /usr/local/ns/conf/nsd-config.tcl > > I get the following result: > > % ::md5::md5 -hex teststring > invalid command name "Hex" > > This seems to be because the tcllib md5x.tcl code, checks for the Trf > package, and if present sets up aninterp alias for the::md5::Hex > command. And this seems to be getting lost somewhere. > > line 502: > http://tcllib.cvs.sourceforge.net/viewvc/tcllib/tcllib/modules/md5/md5x.tcl?revision=1.19&view=markup > > If I subsequently add the alias manually everything is fine: > % interp alias {} ::md5::Hex {} ::hex -mode encode -- > ::md5::Hex > % ::md5::md5 -hex teststring > D67C5CBF5B01C9F91932E3B8DEF5E5F8 > > Can anyone shed any light as to what's going on here? > > > # info patchlevel > 8.5.8 > > tcllib: > Installed: 1.12-dfsg-2 > tcl-trf: > Installed: 2.1.4-dfsg-2 > > # /usr/local/ns/bin/nsd -V > NaviServer/4.99.6 > Tag: 16f91bafc825+ default tip > Built: Aug 19 2013 at 11:26:14 > Tcl version: 8.5 > Platform: linux > > > -- > David > |