Very nice, i wonder how it will work for legacy code

Stephen Deasey wrote:
> On 3/6/07, Zoran Vasiljevic <[EMAIL PROTECTED]> wrote:
>>
>> Am 06.03.2007 um 15:35 schrieb Stephen Deasey:
>>
>> >
>> > How does the lazy loader compare to Tcl's -lazy switch to pkg_mkIndex?
>> >
>> >   http://www.tcl.tk/man/tcl8.4/TclCmd/pkgMkIndex.htm
>>
>> I have absolutely no idea. Our lazy-loader depends on the command trace
>> utility. I yet have to see what pkgindex is using.
>>
>> Overall, I still think that using ns_ictl is the real solution to interp
>> init problem. Perhaps not the fastest but most definietly the most
>> flexible
>> and universal one.
>>
>> Simply, we'd collect list of all files we'd need to source and
>> just register callback's to run them at interp init. This is trivially
>> implemented and would IMHO run more/less at the same speed but be more
>> generic and foolproof.
>>
>> It would not save us memory as the lazy loader does, but it would
>> be more generic.
>>
> 
> 
> OK. A single, simple way for modules to initialise themselves.
> 
> Re the laz-loading, the difference seems to be: our tracing lazy
> loader works on a per-proc (or other Tcl object) level, and it tries
> to be transparent to the user; whereas the Tcl pkgIndex mechanism
> works at the file level, and you explicitly hook into this (although
> you can automate it).
> 
> I wasn't really interested in the laziness of the loading, but the
> searching and packaging and other funky stuff you have to be aware of
> just to get some code loaded.
> 
> So, how about we make NaviServer modules a super set of Tcl packages?
> The only difference I think we need is that a naviserver module (a
> package) should register a config callback when it is 'package
> require'd, which will get called once for each time the module/package
> name appears in the ns/server/serverx/modules section.
> 
> Loading modules then becomes a 'package require modulex' (which will
> be cached by Tcl) and then a series of calls to the registered module
> config callback, i.e. if you load the nssock module twice, sock1 and
> sock2 to listen on different ports.
> 
> What do y'all think, NaviServer modules == Tcl packages..?
> 
> I've been experimenting a little with this. Attached is what a
> pkgIndex.tcl file might look like for the nsd package.
> 
> Ultimately, I guess we could turn the server inside-out. /usr/sbin/nsd
> would become a script which package requires nsd. Just need to turn
> the stuff in nsd/nsmain.c etc. into commands...
> 
> 
> ------------------------------------------------------------------------
> 
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> naviserver-devel mailing list
> naviserver-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/naviserver-devel


-- 
Vlad Seryakov
[EMAIL PROTECTED]
http://www.crystalballinc.com/vlad/

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to