I always wondered if Tcl's namespace mechanism could have been used for the config file, and by your example below, it is tending towards that. Again, the idea would be to utilize, where possible, existing Tcl mechanisms. So, something like:
namespace eval fastpath { set cache false set cachemaxsize 5120000 set cachemaxentry 512000 set mmap false } . . . namespace eval server::${servername} { set connsperthread 0 set flushcontent false set maxconnections 100 set maxthreads 10 set minthreads 0 set threadtimeout 120 } What's good about this as well, is if you needed to access that variable later on in the config file, then you could just use the FQ name, i.e. set some_val [$fastpath::cache] Haven't really thought this all the way through, so there might be some pitfalls. Just an idea, --brett ----- Original Message ---- From: Vlad Seryakov <[EMAIL PROTECTED]> To: naviserver-devel@lists.sourceforge.net Sent: Friday, August 10, 2007 3:37:07 PM Subject: Re: [naviserver-devel] Proposal: just an idea about config syntax Also if section command be made recursive-aware, so it will track current position then the syntax can be event more eaiser section "server/$servername" { connsperthread 0 flushcontent false maxconnections 100 maxthreads 10 minthreads 0 threadtimeout 120 section "modules" { nsdb nsdb.so nssock nssock.so } section "adp" { map "/*.adp" enableexpire false } section "tcl" { nsvbuckets 16 library ${homedir}/modules/tcl lazyloader false } section "module/nssock" { port $port address $address } } Vlad Seryakov wrote: > For example instead of this (or it could be used at the same time, it is > not a replacement) > > ns_section "ns/fastpath" > ns_param cache false > ns_param cachemaxsize 5120000 > ns_param cachemaxentry 512000 > ns_param mmap false > > it may look like this (still Tcl) > > section "fastpath" { > cache false > cachemaxsize 5120000 > cachemaxentry 512000 > mmap false > } > > section "server/${servername}" { > connsperthread 0 > flushcontent false > maxconnections 100 > maxthreads 10 > minthreads 0 > threadtimeout 120 > } > > > As you can see this is Tcl command section > > proc section { name args } { > > ns_section ns/$name > foreach { key val } $args { > ns_param $key $val > } > } > > But config looks like more 21 century and more structured and easier to > read. Very similar to lighttpd by the way. > > -- Vlad Seryakov [EMAIL PROTECTED] http://www.crystalballinc.com/vlad/ ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ naviserver-devel mailing list naviserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/naviserver-devel ____________________________________________________________________________________ Need a vacation? Get great deals to amazing places on Yahoo! Travel. http://travel.yahoo.com/ ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ naviserver-devel mailing list naviserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/naviserver-devel