You can subscribe to this list here.
2005 |
Jan
|
Feb
(53) |
Mar
(62) |
Apr
(88) |
May
(55) |
Jun
(204) |
Jul
(52) |
Aug
|
Sep
(1) |
Oct
(94) |
Nov
(15) |
Dec
(68) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(130) |
Feb
(105) |
Mar
(34) |
Apr
(61) |
May
(41) |
Jun
(92) |
Jul
(176) |
Aug
(102) |
Sep
(247) |
Oct
(69) |
Nov
(32) |
Dec
(140) |
2007 |
Jan
(58) |
Feb
(51) |
Mar
(11) |
Apr
(20) |
May
(34) |
Jun
(37) |
Jul
(18) |
Aug
(60) |
Sep
(41) |
Oct
(105) |
Nov
(19) |
Dec
(14) |
2008 |
Jan
(3) |
Feb
|
Mar
(7) |
Apr
(5) |
May
(123) |
Jun
(5) |
Jul
(1) |
Aug
(29) |
Sep
(15) |
Oct
(21) |
Nov
(51) |
Dec
(3) |
2009 |
Jan
|
Feb
(36) |
Mar
(29) |
Apr
|
May
|
Jun
(7) |
Jul
(4) |
Aug
|
Sep
(4) |
Oct
|
Nov
(13) |
Dec
|
2010 |
Jan
|
Feb
|
Mar
(9) |
Apr
(11) |
May
(16) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
(7) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
(92) |
Nov
(28) |
Dec
(16) |
2013 |
Jan
(9) |
Feb
(2) |
Mar
|
Apr
(4) |
May
(4) |
Jun
(6) |
Jul
(14) |
Aug
(12) |
Sep
(4) |
Oct
(13) |
Nov
(1) |
Dec
(6) |
2014 |
Jan
(23) |
Feb
(19) |
Mar
(10) |
Apr
(14) |
May
(11) |
Jun
(6) |
Jul
(11) |
Aug
(15) |
Sep
(41) |
Oct
(95) |
Nov
(23) |
Dec
(11) |
2015 |
Jan
(3) |
Feb
(9) |
Mar
(19) |
Apr
(3) |
May
(1) |
Jun
(3) |
Jul
(11) |
Aug
(1) |
Sep
(15) |
Oct
(5) |
Nov
(2) |
Dec
|
2016 |
Jan
(7) |
Feb
(11) |
Mar
(8) |
Apr
(1) |
May
(3) |
Jun
(17) |
Jul
(12) |
Aug
(3) |
Sep
(5) |
Oct
(19) |
Nov
(12) |
Dec
(6) |
2017 |
Jan
(30) |
Feb
(23) |
Mar
(12) |
Apr
(32) |
May
(27) |
Jun
(7) |
Jul
(13) |
Aug
(16) |
Sep
(6) |
Oct
(11) |
Nov
|
Dec
(12) |
2018 |
Jan
(1) |
Feb
(5) |
Mar
(6) |
Apr
(7) |
May
(23) |
Jun
(3) |
Jul
(2) |
Aug
(1) |
Sep
(6) |
Oct
(6) |
Nov
(10) |
Dec
(3) |
2019 |
Jan
(26) |
Feb
(15) |
Mar
(9) |
Apr
|
May
(8) |
Jun
(14) |
Jul
(10) |
Aug
(10) |
Sep
(4) |
Oct
(2) |
Nov
(20) |
Dec
(10) |
2020 |
Jan
(10) |
Feb
(14) |
Mar
(29) |
Apr
(11) |
May
(25) |
Jun
(21) |
Jul
(23) |
Aug
(12) |
Sep
(19) |
Oct
(6) |
Nov
(8) |
Dec
(12) |
2021 |
Jan
(29) |
Feb
(9) |
Mar
(8) |
Apr
(8) |
May
(2) |
Jun
(2) |
Jul
(9) |
Aug
(9) |
Sep
(3) |
Oct
(4) |
Nov
(12) |
Dec
(13) |
2022 |
Jan
(4) |
Feb
|
Mar
(4) |
Apr
(12) |
May
(15) |
Jun
(7) |
Jul
(10) |
Aug
(2) |
Sep
|
Oct
(1) |
Nov
(8) |
Dec
|
2023 |
Jan
(15) |
Feb
|
Mar
(23) |
Apr
(1) |
May
(2) |
Jun
(10) |
Jul
|
Aug
(22) |
Sep
(19) |
Oct
(2) |
Nov
(20) |
Dec
|
2024 |
Jan
(1) |
Feb
|
Mar
(16) |
Apr
(15) |
May
(6) |
Jun
(4) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(13) |
Nov
(18) |
Dec
(6) |
2025 |
Jan
(12) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(11) |
Jun
(5) |
Jul
(4) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Andrew P. <at...@pi...> - 2005-12-30 05:32:46
|
On Thu, Dec 29, 2005 at 07:11:35PM -0700, Stephen Deasey wrote: > Still to think about are per-thread Tcl caches. The main reason for > these are that you can put Tcl objects in the cache, not just their > string rep, which is particularly useful for already-compiled byte > code -- i.e. for *.tcl pages. Tcl code in *.tcl pages (not in procs) can be, has been, and I hope currently still is cached in OpenACS using the mechanism Rob Mayoff added to AOLserver 3.3 long ago. Essentially, all Tcl code in each *.tcl page is automatically "compiled" to Tcl procs on first execution, and those procs' bytecode is then cached via ns_cache. Each connection thread does its own entirely independent cacheing, but it worked fine and apparently was a substantial speed up for some ACS sites when switching from AOLserver 3.3+ad11 or 3.3+ad12 (I forget which) to 3.3+ad13. Actually, I'm not sure whether that code is currently active or not. It sounds as if the feature may have broke during the AOLserver 3.x to 4.x transition and never been repaired. See here for more info: http://sourceforge.net/tracker/?func=detail&aid=689515&group_id=3152&atid=353152 Does Rob's cacheing cover the functionality you want, or are you thinking of cacheing of some other sort of Tcl objects? > The best solution for caching byte code might be to share the > mechanism with ADP pages. They currently have a pre-thread cache of > script blocks, and a per-server cache of text blocks, for each page. > AOLserver 4.5 adds a per-server output cache. We could use this for > *.tcl pages as well, perhaps negating the need for per-thread Tcl > caches. That still leaves Tcl objects like lists or dictionaries that > you may not want to stringify on each access. Ah. I think Rob's code above solely cached compiled Tcl bytecode (in what form I don't know), not Tcl_Obj representations of anything. I've also no idea whether it plays nicely with Zoran's Ttrace extension or not. But, we already have centralized server-wide cacheing of Tcl_Obj's via Zoran's Tcl Threads Extension, right? So, is there any real use case for a per-thread Tcl_Obj cache? (Offhand I can't think of one, but then I don't think I've ever really used ns_cache directly at all, only the simplified util_memoize facility of OpenACS, so I'm not the right person to ask.) -- Andrew Piskorski <at...@pi...> http://www.piskorski.com/ |
From: Vlad S. <vl...@cr...> - 2005-12-30 02:26:20
|
Yes, i forgot about aolserver's way and people using it. So, now with your patch it works the same way as aolserver? Then keep it. Stephen Deasey wrote: > I'm all in favour of simplifying and clarifying, even when it means > some work is required on existing code. But in the case of filter > proc arg ordering there doesn't seem to be a clean way to write code > that will work on both AOLserver and NaviServer if the args are > reversed. Unless someone has any ideas..? > > There are a few people now who've expressed interest in running > OpenACS on NaviServer and I wouldn't want to break things > gratuitously. The more people testing the code the better! > > > > On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: > >>Between three of us do we have a lot of code that uses filter with >>aolserver's style of argument ordering? >>If none, then i do not see why we cannot change it. Compatibility with >>weird aolserver things never been our primary goal:-)) >> >>At least it will be one less confusing places in the code and API. >> >>Stephen Deasey wrote: >> >>>I added the comment because the argument order is confusing. We could >>>change the order, but it not be compatible with AOLserver. Do large >>>bodies of code such as OpenACS use filter args? I think they do... >>> >>> >>>Something we could change is registered procs. Currently, an extra >>>args is always passed to the registered proc (a blank string if you >>>don't specify anything else). Dropping this would be cleaner. This >>>is an incompatible change, but it's easy to write code that works on >>>both AOLserver and NaviServer using defaults: >>> >>> proc my_registered_proc {{context default}} { ... } >>> ns_register_proc GET /* my_registered_proc >>> ns_register_proc GET /* my_registered_proc my_context >>> >>>What do you think? >>> >>> >>>On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: >>> >>> >>>>It still has this comment, so we can get rid of that comment and fix the >>>>order at the same time:-)) >>>> >>>>/* >>>> * This really should be: cmd why ?arg?, but why and arg >>>> * are reversed for backwards compatibility. >>>> */ >>>> >>>> >>>>Stephen Deasey wrote: >>>> >>>> >>>>>Fixed in CVS a couple of days ago. My fault, I missread the original >>>>>code and thought that like registered procs, if you didn't explicitly >>>>>pass an arg a blank string was passed. Should work now. >>>>> >>>>> >>>>> >>>>> >>>>>On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: >>>>> >>>>> >>>>> >>>>>>It is in >>>>>> >>>>>>int NsTclFilterProc(void *arg, Ns_Conn *conn, int why) >>>>>> >>>>>>why arg is added after script args >>>>>> >>>>>>We can change it easily to always specify why first >>>>>> >>>>>> >>>>>>Zoran Vasiljevic wrote: >>>>>> >>>>>> >>>>>> >>>>>>>Am 29.12.2005 um 20:54 schrieb Vlad Seryakov: >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>>>>ns_register_filter trace GET * myfilter >>>>>>>>>> >>>>>>>>>>calls now "myfilter {} WHY" >>>>>>> >>>>>>> >>>>>>>But *why* is this so? IOW, what is this empty argument >>>>>>>passed to the myfilter? Is this something we overlooked >>>>>>>or is it something done on purpose, or what? >>>>>>> >>>>>>>I mean, maybe somebody has the answer out of the sleeve >>>>>>>and if not, I will have to dig into that... >>>>>>> >>>>>>>Cheers >>>>>>>Zoran >>>>>>> >>>>>>> >>>>>>>------------------------------------------------------- >>>>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log >>>>>>>files >>>>>>>for problems? Stop! Download the new AJAX search engine that makes >>>>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>>>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>>>>>>_______________________________________________ >>>>>>>naviserver-devel mailing list >>>>>>>nav...@li... >>>>>>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >>>>>>> >>>>>> >>>>>>-- >>>>>>Vlad Seryakov >>>>>>571 262-8608 office >>>>>>vl...@cr... >>>>>>http://www.crystalballinc.com/vlad/ >>>>>> >>>>>> >>>>>> >>>>>>------------------------------------------------------- >>>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files >>>>>>for problems? Stop! Download the new AJAX search engine that makes >>>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>>>>>_______________________________________________ >>>>>>naviserver-devel mailing list >>>>>>nav...@li... >>>>>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >>>>>> >>>>> >>>>> >>>>> >>>>>------------------------------------------------------- >>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files >>>>>for problems? Stop! Download the new AJAX search engine that makes >>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>>>http://ads.osdn.com/?ad_idv37&alloc_id865&op=click >>>>>_______________________________________________ >>>>>naviserver-devel mailing list >>>>>nav...@li... >>>>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >>>>> >>>> >>>>-- >>>>Vlad Seryakov >>>>571 262-8608 office >>>>vl...@cr... >>>>http://www.crystalballinc.com/vlad/ >>>> >>>> >>>> >>>>------------------------------------------------------- >>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files >>>>for problems? Stop! Download the new AJAX search engine that makes >>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>>>_______________________________________________ >>>>naviserver-devel mailing list >>>>nav...@li... >>>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >>>> >>> >>> >>> >>>------------------------------------------------------- >>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files >>>for problems? Stop! Download the new AJAX search engine that makes >>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>http://ads.osdn.com/?ad_idv37&alloc_id865&op=click >>>_______________________________________________ >>>naviserver-devel mailing list >>>nav...@li... >>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >>> >> >>-- >>Vlad Seryakov >>571 262-8608 office >>vl...@cr... >>http://www.crystalballinc.com/vlad/ >> >> >>------------------------------------------------------- >>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files >>for problems? Stop! Download the new AJAX search engine that makes >>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>_______________________________________________ >>naviserver-devel mailing list >>nav...@li... >>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >> > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_idv37&alloc_id865&op=click > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Stephen D. <sd...@gm...> - 2005-12-30 02:19:31
|
I'm all in favour of simplifying and clarifying, even when it means some work is required on existing code. But in the case of filter proc arg ordering there doesn't seem to be a clean way to write code that will work on both AOLserver and NaviServer if the args are reversed. Unless someone has any ideas..? There are a few people now who've expressed interest in running OpenACS on NaviServer and I wouldn't want to break things gratuitously. The more people testing the code the better! On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: > Between three of us do we have a lot of code that uses filter with > aolserver's style of argument ordering? > If none, then i do not see why we cannot change it. Compatibility with > weird aolserver things never been our primary goal:-)) > > At least it will be one less confusing places in the code and API. > > Stephen Deasey wrote: > > I added the comment because the argument order is confusing. We could > > change the order, but it not be compatible with AOLserver. Do large > > bodies of code such as OpenACS use filter args? I think they do... > > > > > > Something we could change is registered procs. Currently, an extra > > args is always passed to the registered proc (a blank string if you > > don't specify anything else). Dropping this would be cleaner. This > > is an incompatible change, but it's easy to write code that works on > > both AOLserver and NaviServer using defaults: > > > > proc my_registered_proc {{context default}} { ... } > > ns_register_proc GET /* my_registered_proc > > ns_register_proc GET /* my_registered_proc my_context > > > > What do you think? > > > > > > On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: > > > >>It still has this comment, so we can get rid of that comment and fix th= e > >>order at the same time:-)) > >> > >>/* > >> * This really should be: cmd why ?arg?, but why and arg > >> * are reversed for backwards compatibility. > >> */ > >> > >> > >>Stephen Deasey wrote: > >> > >>>Fixed in CVS a couple of days ago. My fault, I missread the original > >>>code and thought that like registered procs, if you didn't explicitly > >>>pass an arg a blank string was passed. Should work now. > >>> > >>> > >>> > >>> > >>>On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: > >>> > >>> > >>>>It is in > >>>> > >>>>int NsTclFilterProc(void *arg, Ns_Conn *conn, int why) > >>>> > >>>>why arg is added after script args > >>>> > >>>>We can change it easily to always specify why first > >>>> > >>>> > >>>>Zoran Vasiljevic wrote: > >>>> > >>>> > >>>>>Am 29.12.2005 um 20:54 schrieb Vlad Seryakov: > >>>>> > >>>>> > >>>>> > >>>>>>>>ns_register_filter trace GET * myfilter > >>>>>>>> > >>>>>>>>calls now "myfilter {} WHY" > >>>>> > >>>>> > >>>>>But *why* is this so? IOW, what is this empty argument > >>>>>passed to the myfilter? Is this something we overlooked > >>>>>or is it something done on purpose, or what? > >>>>> > >>>>>I mean, maybe somebody has the answer out of the sleeve > >>>>>and if not, I will have to dig into that... > >>>>> > >>>>>Cheers > >>>>>Zoran > >>>>> > >>>>> > >>>>>------------------------------------------------------- > >>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through l= og > >>>>>files > >>>>>for problems? Stop! Download the new AJAX search engine that makes > >>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLU= NK! > >>>>>http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick > >>>>>_______________________________________________ > >>>>>naviserver-devel mailing list > >>>>>nav...@li... > >>>>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel > >>>>> > >>>> > >>>>-- > >>>>Vlad Seryakov > >>>>571 262-8608 office > >>>>vl...@cr... > >>>>http://www.crystalballinc.com/vlad/ > >>>> > >>>> > >>>> > >>>>------------------------------------------------------- > >>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through lo= g files > >>>>for problems? Stop! Download the new AJAX search engine that makes > >>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUN= K! > >>>>http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick > >>>>_______________________________________________ > >>>>naviserver-devel mailing list > >>>>nav...@li... > >>>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel > >>>> > >>> > >>> > >>> > >>>------------------------------------------------------- > >>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log= files > >>>for problems? Stop! Download the new AJAX search engine that makes > >>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK= ! > >>>http://ads.osdn.com/?ad_idv37&alloc_id=16865&op=3Dclick > >>>_______________________________________________ > >>>naviserver-devel mailing list > >>>nav...@li... > >>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel > >>> > >> > >>-- > >>Vlad Seryakov > >>571 262-8608 office > >>vl...@cr... > >>http://www.crystalballinc.com/vlad/ > >> > >> > >> > >>------------------------------------------------------- > >>This SF.net email is sponsored by: Splunk Inc. Do you grep through log = files > >>for problems? Stop! Download the new AJAX search engine that makes > >>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > >>http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick > >>_______________________________________________ > >>naviserver-devel mailing list > >>nav...@li... > >>https://lists.sourceforge.net/lists/listinfo/naviserver-devel > >> > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. Do you grep through log = files > > for problems? Stop! Download the new AJAX search engine that makes > > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > > http://ads.osdn.com/?ad_idv37&alloc_id=16865&op=3Dclick > > _______________________________________________ > > naviserver-devel mailing list > > nav...@li... > > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > > > > -- > Vlad Seryakov > 571 262-8608 office > vl...@cr... > http://www.crystalballinc.com/vlad/ > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log fi= les > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > |
From: Stephen D. <sd...@gm...> - 2005-12-30 02:11:41
|
On 12/24/05, Zoran Vasiljevic <zv...@ar...> wrote: > > Am 23.12.2005 um 20:03 schrieb Stephen Deasey: > > > Yes, good points. I've uploaded a new patch which merges everything > > into the core with minimal changes to existing C code. Let me know > > how this looks. > > Great! > > > > > Regarding API compatibility for Tcl code, I thought a wrapper ns_cache > > command could be added to the tcl/cache.tcl file. What do you think? > > You mean "ns_cache eval" -> "ns_cache_eval" stuff? Yes, just place > them there. There are not too many of them anyways. > When I look thru our code, we just use ns_cache (create, eval, flush) > so I will go and rename them to ns_cache_create etc. > > And, commit that code. OK. It shouldn't cause any problems with existing code, and you can still load the nscache module, so I'll go ahead and we can see how it works out. It's only ~600 lines of code for the Tcl commands, and ~500 chopped out of cache.c, so I think it's going in the right direction. Still to think about are per-thread Tcl caches. The main reason for these are that you can put Tcl objects in the cache, not just their string rep, which is particularly useful for already-compiled byte code -- i.e. for *.tcl pages. The best solution for caching byte code might be to share the mechanism with ADP pages. They currently have a pre-thread cache of script blocks, and a per-server cache of text blocks, for each page.=20 AOLserver 4.5 adds a per-server output cache. We could use this for *.tcl pages as well, perhaps negating the need for per-thread Tcl caches. That still leaves Tcl objects like lists or dictionaries that you may not want to stringify on each access. Input welcome... |
From: Vlad S. <vl...@cr...> - 2005-12-30 02:04:15
|
Between three of us do we have a lot of code that uses filter with aolserver's style of argument ordering? If none, then i do not see why we cannot change it. Compatibility with weird aolserver things never been our primary goal:-)) At least it will be one less confusing places in the code and API. Stephen Deasey wrote: > I added the comment because the argument order is confusing. We could > change the order, but it not be compatible with AOLserver. Do large > bodies of code such as OpenACS use filter args? I think they do... > > > Something we could change is registered procs. Currently, an extra > args is always passed to the registered proc (a blank string if you > don't specify anything else). Dropping this would be cleaner. This > is an incompatible change, but it's easy to write code that works on > both AOLserver and NaviServer using defaults: > > proc my_registered_proc {{context default}} { ... } > ns_register_proc GET /* my_registered_proc > ns_register_proc GET /* my_registered_proc my_context > > What do you think? > > > On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: > >>It still has this comment, so we can get rid of that comment and fix the >>order at the same time:-)) >> >>/* >> * This really should be: cmd why ?arg?, but why and arg >> * are reversed for backwards compatibility. >> */ >> >> >>Stephen Deasey wrote: >> >>>Fixed in CVS a couple of days ago. My fault, I missread the original >>>code and thought that like registered procs, if you didn't explicitly >>>pass an arg a blank string was passed. Should work now. >>> >>> >>> >>> >>>On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: >>> >>> >>>>It is in >>>> >>>>int NsTclFilterProc(void *arg, Ns_Conn *conn, int why) >>>> >>>>why arg is added after script args >>>> >>>>We can change it easily to always specify why first >>>> >>>> >>>>Zoran Vasiljevic wrote: >>>> >>>> >>>>>Am 29.12.2005 um 20:54 schrieb Vlad Seryakov: >>>>> >>>>> >>>>> >>>>>>>>ns_register_filter trace GET * myfilter >>>>>>>> >>>>>>>>calls now "myfilter {} WHY" >>>>> >>>>> >>>>>But *why* is this so? IOW, what is this empty argument >>>>>passed to the myfilter? Is this something we overlooked >>>>>or is it something done on purpose, or what? >>>>> >>>>>I mean, maybe somebody has the answer out of the sleeve >>>>>and if not, I will have to dig into that... >>>>> >>>>>Cheers >>>>>Zoran >>>>> >>>>> >>>>>------------------------------------------------------- >>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log >>>>>files >>>>>for problems? Stop! Download the new AJAX search engine that makes >>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>>>>_______________________________________________ >>>>>naviserver-devel mailing list >>>>>nav...@li... >>>>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >>>>> >>>> >>>>-- >>>>Vlad Seryakov >>>>571 262-8608 office >>>>vl...@cr... >>>>http://www.crystalballinc.com/vlad/ >>>> >>>> >>>> >>>>------------------------------------------------------- >>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files >>>>for problems? Stop! Download the new AJAX search engine that makes >>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>>>_______________________________________________ >>>>naviserver-devel mailing list >>>>nav...@li... >>>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >>>> >>> >>> >>> >>>------------------------------------------------------- >>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files >>>for problems? Stop! Download the new AJAX search engine that makes >>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>http://ads.osdn.com/?ad_idv37&alloc_id865&op=click >>>_______________________________________________ >>>naviserver-devel mailing list >>>nav...@li... >>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >>> >> >>-- >>Vlad Seryakov >>571 262-8608 office >>vl...@cr... >>http://www.crystalballinc.com/vlad/ >> >> >> >>------------------------------------------------------- >>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files >>for problems? Stop! Download the new AJAX search engine that makes >>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>_______________________________________________ >>naviserver-devel mailing list >>nav...@li... >>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >> > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_idv37&alloc_id865&op=click > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Stephen D. <sd...@gm...> - 2005-12-30 01:49:13
|
On 12/24/05, Zoran Vasiljevic <zv...@ar...> wrote: > To all of you dear friends. > It was a very good year and it was a great > pleasure to work with you. > > Cheers > Zoran Don't drink *too* much on Saturday... :-) Cheers! |
From: Stephen D. <sd...@gm...> - 2005-12-30 01:40:36
|
I added the comment because the argument order is confusing. We could change the order, but it not be compatible with AOLserver. Do large bodies of code such as OpenACS use filter args? I think they do... Something we could change is registered procs. Currently, an extra args is always passed to the registered proc (a blank string if you don't specify anything else). Dropping this would be cleaner. This is an incompatible change, but it's easy to write code that works on both AOLserver and NaviServer using defaults: proc my_registered_proc {{context default}} { ... } ns_register_proc GET /* my_registered_proc ns_register_proc GET /* my_registered_proc my_context What do you think? On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: > It still has this comment, so we can get rid of that comment and fix the > order at the same time:-)) > > /* > * This really should be: cmd why ?arg?, but why and arg > * are reversed for backwards compatibility. > */ > > > Stephen Deasey wrote: > > Fixed in CVS a couple of days ago. My fault, I missread the original > > code and thought that like registered procs, if you didn't explicitly > > pass an arg a blank string was passed. Should work now. > > > > > > > > > > On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: > > > >>It is in > >> > >>int NsTclFilterProc(void *arg, Ns_Conn *conn, int why) > >> > >>why arg is added after script args > >> > >>We can change it easily to always specify why first > >> > >> > >>Zoran Vasiljevic wrote: > >> > >>>Am 29.12.2005 um 20:54 schrieb Vlad Seryakov: > >>> > >>> > >>>>>> ns_register_filter trace GET * myfilter > >>>>>> > >>>>>>calls now "myfilter {} WHY" > >>> > >>> > >>>But *why* is this so? IOW, what is this empty argument > >>>passed to the myfilter? Is this something we overlooked > >>>or is it something done on purpose, or what? > >>> > >>>I mean, maybe somebody has the answer out of the sleeve > >>>and if not, I will have to dig into that... > >>> > >>>Cheers > >>>Zoran > >>> > >>> > >>>------------------------------------------------------- > >>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log > >>>files > >>>for problems? Stop! Download the new AJAX search engine that makes > >>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK= ! > >>>http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick > >>>_______________________________________________ > >>>naviserver-devel mailing list > >>>nav...@li... > >>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel > >>> > >> > >>-- > >>Vlad Seryakov > >>571 262-8608 office > >>vl...@cr... > >>http://www.crystalballinc.com/vlad/ > >> > >> > >> > >>------------------------------------------------------- > >>This SF.net email is sponsored by: Splunk Inc. Do you grep through log = files > >>for problems? Stop! Download the new AJAX search engine that makes > >>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > >>http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick > >>_______________________________________________ > >>naviserver-devel mailing list > >>nav...@li... > >>https://lists.sourceforge.net/lists/listinfo/naviserver-devel > >> > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. Do you grep through log = files > > for problems? Stop! Download the new AJAX search engine that makes > > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > > http://ads.osdn.com/?ad_idv37&alloc_id=16865&op=3Dclick > > _______________________________________________ > > naviserver-devel mailing list > > nav...@li... > > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > > > > -- > Vlad Seryakov > 571 262-8608 office > vl...@cr... > http://www.crystalballinc.com/vlad/ > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log fi= les > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > |
From: Vlad S. <vl...@cr...> - 2005-12-29 21:17:50
|
It still has this comment, so we can get rid of that comment and fix the order at the same time:-)) /* * This really should be: cmd why ?arg?, but why and arg * are reversed for backwards compatibility. */ Stephen Deasey wrote: > Fixed in CVS a couple of days ago. My fault, I missread the original > code and thought that like registered procs, if you didn't explicitly > pass an arg a blank string was passed. Should work now. > > > > > On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: > >>It is in >> >>int NsTclFilterProc(void *arg, Ns_Conn *conn, int why) >> >>why arg is added after script args >> >>We can change it easily to always specify why first >> >> >>Zoran Vasiljevic wrote: >> >>>Am 29.12.2005 um 20:54 schrieb Vlad Seryakov: >>> >>> >>>>>> ns_register_filter trace GET * myfilter >>>>>> >>>>>>calls now "myfilter {} WHY" >>> >>> >>>But *why* is this so? IOW, what is this empty argument >>>passed to the myfilter? Is this something we overlooked >>>or is it something done on purpose, or what? >>> >>>I mean, maybe somebody has the answer out of the sleeve >>>and if not, I will have to dig into that... >>> >>>Cheers >>>Zoran >>> >>> >>>------------------------------------------------------- >>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log >>>files >>>for problems? Stop! Download the new AJAX search engine that makes >>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>>_______________________________________________ >>>naviserver-devel mailing list >>>nav...@li... >>>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >>> >> >>-- >>Vlad Seryakov >>571 262-8608 office >>vl...@cr... >>http://www.crystalballinc.com/vlad/ >> >> >> >>------------------------------------------------------- >>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files >>for problems? Stop! Download the new AJAX search engine that makes >>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>_______________________________________________ >>naviserver-devel mailing list >>nav...@li... >>https://lists.sourceforge.net/lists/listinfo/naviserver-devel >> > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_idv37&alloc_id865&op=click > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Stephen D. <sd...@gm...> - 2005-12-29 21:04:11
|
Fixed in CVS a couple of days ago. My fault, I missread the original code and thought that like registered procs, if you didn't explicitly pass an arg a blank string was passed. Should work now. On 12/29/05, Vlad Seryakov <vl...@cr...> wrote: > It is in > > int NsTclFilterProc(void *arg, Ns_Conn *conn, int why) > > why arg is added after script args > > We can change it easily to always specify why first > > > Zoran Vasiljevic wrote: > > > > Am 29.12.2005 um 20:54 schrieb Vlad Seryakov: > > > >>>> ns_register_filter trace GET * myfilter > >>>> > >>>> calls now "myfilter {} WHY" > > > > > > But *why* is this so? IOW, what is this empty argument > > passed to the myfilter? Is this something we overlooked > > or is it something done on purpose, or what? > > > > I mean, maybe somebody has the answer out of the sleeve > > and if not, I will have to dig into that... > > > > Cheers > > Zoran > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > > files > > for problems? Stop! Download the new AJAX search engine that makes > > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > > http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick > > _______________________________________________ > > naviserver-devel mailing list > > nav...@li... > > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > > > > -- > Vlad Seryakov > 571 262-8608 office > vl...@cr... > http://www.crystalballinc.com/vlad/ > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log fi= les > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > |
From: Vlad S. <vl...@cr...> - 2005-12-29 20:07:07
|
It is in int NsTclFilterProc(void *arg, Ns_Conn *conn, int why) why arg is added after script args We can change it easily to always specify why first Zoran Vasiljevic wrote: > > Am 29.12.2005 um 20:54 schrieb Vlad Seryakov: > >>>> ns_register_filter trace GET * myfilter >>>> >>>> calls now "myfilter {} WHY" > > > But *why* is this so? IOW, what is this empty argument > passed to the myfilter? Is this something we overlooked > or is it something done on purpose, or what? > > I mean, maybe somebody has the answer out of the sleeve > and if not, I will have to dig into that... > > Cheers > Zoran > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Zoran V. <zv...@ar...> - 2005-12-29 19:59:13
|
Am 29.12.2005 um 20:54 schrieb Vlad Seryakov: >>> ns_register_filter trace GET * myfilter >>> >>> calls now "myfilter {} WHY" But *why* is this so? IOW, what is this empty argument passed to the myfilter? Is this something we overlooked or is it something done on purpose, or what? I mean, maybe somebody has the answer out of the sleeve and if not, I will have to dig into that... Cheers Zoran |
From: Vlad S. <vl...@cr...> - 2005-12-29 19:53:17
|
In all my code i never used args in the filters, i always define filter as proc filter { args} so for me it does not matter the order of the arguments. Logically, WHY should be the first arg. Zoran Vasiljevic wrote: > Hi! > > I believe you guys are more familiar with this stuff > as I am. Can you please comment? > > Gustaf Neumann (XOTcl) is trying to get OACS to work > with our code and has some remarks. I'm forwarding the > relevant portion of an email sent to me today. > > >> i made some changes to oacs such it works with naviserver. The biggest >> problem was the changed argument passing conventions for filters. i am >> not sure, that the agument passing conventions of naviserver are the >> best >> possible choice, since >> >> ns_register_filter trace GET * myfilter >> >> calls now "myfilter {} WHY" >> instead of "myfilter WHY" as it was before. It should not be >> necessary to pass a nonexisting argument around. I would finde >> it more logically to have this as >> "myfilter WHY" >> or, when arguments are passed as >> "myfilter WHY arg1 arg2 ...." >> >> Since on has to alter the filter procs anyhow when moving from >> aolserver, >> this would not have beed a bad choice. With xotcl, i use e.g. >> an object handling the filter requests, such as >> Object create filter >> filter proc preauth .... >> filter proc postauth ... >> filter proc trace .... >> >> this worked nicely with the aolserver argument passing. now i have to >> use >> the strange looking method, that removes the empty first arg... >> >> filter proc {} args {my eval $args} >> >> Did you have some discussions about this? Is it to late to change this? >> >> In order to use oacs with naviserver, i had to introduce the following >> not very beautifiul mapping rules to keep the changes minimal and >> keep the server working for aolserver and naviserver. >> >> all the best >> -gustaf >> >> >> if {[ns_info name] eq "NaviServer"} { >> foreach filter {rp_filter rp_resources_filter request_denied_filter} { >> rename $filter ${filter}_aolserver >> proc $filter {_ why} [list ${filter}_aolserver \$why] >> } >> >> rename rp_invoke_filter rp_invoke_filter_conn >> proc rp_invoke_filter { filter_info why } { rp_invoke_filter_conn >> {} $filter_info $why } >> rename rp_invoke_proc rp_invoke_proc_conn >> proc rp_invoke_proc { argv } { rp_invoke_proc_conn {} >> $argv } >> >> rename rp_handler rp_handler_aolserver >> proc rp_handler {_} {rp_handler_aolserver} >> } >> >> >> > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Zoran V. <zv...@AR...> - 2005-12-29 19:37:21
|
Hi! I believe you guys are more familiar with this stuff as I am. Can you please comment? Gustaf Neumann (XOTcl) is trying to get OACS to work with our code and has some remarks. I'm forwarding the relevant portion of an email sent to me today. > i made some changes to oacs such it works with naviserver. The biggest > problem was the changed argument passing conventions for filters. i am > not sure, that the agument passing conventions of naviserver are > the best > possible choice, since > > ns_register_filter trace GET * myfilter > > calls now "myfilter {} WHY" > instead of "myfilter WHY" as it was before. It should not be > necessary to pass a nonexisting argument around. I would finde > it more logically to have this as > "myfilter WHY" > or, when arguments are passed as > "myfilter WHY arg1 arg2 ...." > > Since on has to alter the filter procs anyhow when moving from > aolserver, > this would not have beed a bad choice. With xotcl, i use e.g. > an object handling the filter requests, such as > Object create filter > filter proc preauth .... > filter proc postauth ... > filter proc trace .... > > this worked nicely with the aolserver argument passing. now i have > to use > the strange looking method, that removes the empty first arg... > > filter proc {} args {my eval $args} > > Did you have some discussions about this? Is it to late to change > this? > > In order to use oacs with naviserver, i had to introduce the following > not very beautifiul mapping rules to keep the changes minimal and > keep the server working for aolserver and naviserver. > > all the best > -gustaf > > > if {[ns_info name] eq "NaviServer"} { > foreach filter {rp_filter rp_resources_filter > request_denied_filter} { > rename $filter ${filter}_aolserver > proc $filter {_ why} [list ${filter}_aolserver \$why] > } > > rename rp_invoke_filter rp_invoke_filter_conn > proc rp_invoke_filter { filter_info why } > { rp_invoke_filter_conn {} $filter_info $why } > rename rp_invoke_proc rp_invoke_proc_conn > proc rp_invoke_proc { argv } { rp_invoke_proc_conn > {} $argv } > > rename rp_handler rp_handler_aolserver > proc rp_handler {_} {rp_handler_aolserver} > } > > > |
From: Zoran V. <zv...@ar...> - 2005-12-24 18:55:32
|
To all of you dear friends. It was a very good year and it was a great pleasure to work with you. Cheers Zoran |
From: Zoran V. <zv...@ar...> - 2005-12-24 10:10:30
|
Am 23.12.2005 um 20:03 schrieb Stephen Deasey: > Yes, good points. I've uploaded a new patch which merges everything > into the core with minimal changes to existing C code. Let me know > how this looks. Great! > > Regarding API compatibility for Tcl code, I thought a wrapper ns_cache > command could be added to the tcl/cache.tcl file. What do you think? You mean "ns_cache eval" -> "ns_cache_eval" stuff? Yes, just place them there. There are not too many of them anyways. When I look thru our code, we just use ns_cache (create, eval, flush) so I will go and rename them to ns_cache_create etc. And, commit that code. And, happy christmas to you all! Thanks, Zoran |
From: Vlad S. <vl...@cr...> - 2005-12-24 00:15:17
|
Looks like a good patch, can you just commit it. Happy Holidays! Stephen Deasey wrote: > On 12/11/05, Vlad Seryakov <vl...@cr...> wrote: > >>Yes, "just-create" policy is fine, clearing the cache but keeping it >>empty is not bad. Reduceing locks with nscache is actually a big deal >>but at this point compatibility with old API is a higher priority, too >>much production code. >> >>Let's see what Stephen will say :-)) >> >>Zoran Vasiljevic wrote: >> >>>On 11.12.2005, at 18:39, Vlad Seryakov wrote: >>> >>> >>>>Can we just put existing module into the core? It's been working good >>>>in the past. >>> >>> >>>I have nothing against. We use this module for years and it just works >>>fine. >>>I also like Stephens less-locking approach but only one thing bothers me >>>there: inability to create new caches during runtime. >>>I'd also accept "just creating and not tearing down" caches as this would >>>suffice us. > > > Yes, good points. I've uploaded a new patch which merges everything > into the core with minimal changes to existing C code. Let me know > how this looks. > > Regarding API compatibility for Tcl code, I thought a wrapper ns_cache > command could be added to the tcl/cache.tcl file. What do you think? > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_idv37&alloc_id865&op=click > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Stephen D. <sd...@gm...> - 2005-12-23 19:03:46
|
On 12/11/05, Vlad Seryakov <vl...@cr...> wrote: > Yes, "just-create" policy is fine, clearing the cache but keeping it > empty is not bad. Reduceing locks with nscache is actually a big deal > but at this point compatibility with old API is a higher priority, too > much production code. > > Let's see what Stephen will say :-)) > > Zoran Vasiljevic wrote: > > > > On 11.12.2005, at 18:39, Vlad Seryakov wrote: > > > >> > >> Can we just put existing module into the core? It's been working good > >> in the past. > > > > > > I have nothing against. We use this module for years and it just works > > fine. > > I also like Stephens less-locking approach but only one thing bothers m= e > > there: inability to create new caches during runtime. > > I'd also accept "just creating and not tearing down" caches as this wo= uld > > suffice us. Yes, good points. I've uploaded a new patch which merges everything into the core with minimal changes to existing C code. Let me know how this looks. Regarding API compatibility for Tcl code, I thought a wrapper ns_cache command could be added to the tcl/cache.tcl file. What do you think? |
From: Vlad S. <vl...@cr...> - 2005-12-11 22:52:51
|
Yes, "just-create" policy is fine, clearing the cache but keeping it empty is not bad. Reduceing locks with nscache is actually a big deal but at this point compatibility with old API is a higher priority, too much production code. Let's see what Stephen will say :-)) Zoran Vasiljevic wrote: > > On 11.12.2005, at 18:39, Vlad Seryakov wrote: > >> >> Can we just put existing module into the core? It's been working good >> in the past. > > > I have nothing against. We use this module for years and it just works > fine. > I also like Stephens less-locking approach but only one thing bothers me > there: inability to create new caches during runtime. > I'd also accept "just creating and not tearing down" caches as this would > suffice us. > > Cheers > Zoran > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Zoran V. <zv...@ar...> - 2005-12-11 22:06:43
|
On 11.12.2005, at 18:39, Vlad Seryakov wrote: > > Can we just put existing module into the core? It's been working > good in the past. I have nothing against. We use this module for years and it just works fine. I also like Stephens less-locking approach but only one thing bothers me there: inability to create new caches during runtime. I'd also accept "just creating and not tearing down" caches as this would suffice us. Cheers Zoran |
From: Vlad S. <vl...@cr...> - 2005-12-11 17:37:25
|
Helo Guys, Can we close nscache incorporating into the core? I will be soon producing some product involving naviserver which uses nscache and having it in the core would simplify life a little bit. But if it will not be backward compatible, this will introduce more problems because ther are a lot of software using ns_cache API. Can we just put existing module into the core? It's been working good in the past. -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Stephen D. <sd...@gm...> - 2005-12-09 20:10:16
|
You can continue to call ns_unregister_proc. The comment was for Ns_UrlSpecificDestroy: Side effects: Will remove data from urlspace; don't call this after server startup. I think this is wrong, so I removed the comment. If this isn't the case, I guess we've had a problem all along... Re compatibility, there are a couple of notes for C module writers in the patch description. On 12/9/05, Vlad Seryakov <vl...@cr...> wrote: > So, that means ns_register_proc i can call, but not ns_unregister_proc? > > I have nothing against the patch if no incompabilities will be raised. > > Stephen Deasey wrote: > > Yes, you must still be able to register procs at runtime. (There is a > > comment in urlspace.c saying you musn't call destroy at runtime...?) > > > > I guess my real question was is this the right way to do it? I > > originally thought that maybe the urlspace code should hadle all the > > locking. I think the idea below is simpler and more flexible. So > > here's a patch: > > > > http://sourceforge.net/tracker/index.php?func=3Ddetail&aid=3D1377113&gr= oup_id=3D130646&atid=3D719009 > > > > > > The conn pool code is now lock free! > > > > > > On 12/7/05, Vlad Seryakov <vl...@cr...> wrote: > > > >>I think ns_register_proc/ns_register_filter uses Trie and canbe called > >>at any time, that's why it still needs locking. > >> > >>Double locking should be avoided but i would keep the ability to call > >>ns_registerXXX procs at any time. > >> > >>Stephen Deasey wrote: > >> > >>>Ns_ConnRunRequest in op.c does something like: > >>> > >>>Ns_MutexLock(&ulock); > >>>reqPtr =3D Ns_UrlSpecificGet(server, method, url, id); > >>>... > >>>Ns_MutexUnlock(&ulock); > >>> > >>> > >>>Ns_UrlSpecificGet in urlspace.c does something like: > >>> > >>>MkSeq(&seq, server, method, url); > >>>Ns_MutexLock(&lock); > >>>data =3D JunctionFind(&urlspace, seq, id, 0); > >>>Ns_MutexUnlock(&lock); > >>> > >>> > >>>i.e. there's double locking going on. The second lock, in the > >>>urlspace code, is under contention by all callers of urlspace > >>>(requests, url2file, etc.), and many of these are very common > >>>operations. > >>> > >>> > >>>Users of urlspace need to call Ns_UrlSpecificAlloc() in their > >>>initialisation code to get a magic ID. This ID partitions the data of > >>>each subsystem. But the ID is stored within the 'Trie' and so needs > >>>to be protected by the global lock. > >>> > >>>What if instead the ID was used as in Thread Local Storage? There's > >>>an array of slots, where each slot contains a separate Trie, and the > >>>ID is an index into this array. Because ID's are allocated at start > >>>up and aren't destroyed there need be no locking at run time to locate > >>>the appropriate Trie for the caller. > >>> > >>>The urlspace locking can now be removed because the callers locking > >>>perfectly protects the Trie from concurrent access. It would also > >>>allow the caller to run lock-free in the case where all urlspace > >>>entries are created at start up and only read at run time. > >>> > >>> > >>>Does this make sense? |
From: Vlad S. <vl...@cr...> - 2005-12-09 14:55:32
|
So, that means ns_register_proc i can call, but not ns_unregister_proc? I have nothing against the patch if no incompabilities will be raised. Stephen Deasey wrote: > Yes, you must still be able to register procs at runtime. (There is a > comment in urlspace.c saying you musn't call destroy at runtime...?) > > I guess my real question was is this the right way to do it? I > originally thought that maybe the urlspace code should hadle all the > locking. I think the idea below is simpler and more flexible. So > here's a patch: > > http://sourceforge.net/tracker/index.php?func=detail&aid=1377113&group_id=130646&atid=719009 > > > The conn pool code is now lock free! > > > On 12/7/05, Vlad Seryakov <vl...@cr...> wrote: > >>I think ns_register_proc/ns_register_filter uses Trie and canbe called >>at any time, that's why it still needs locking. >> >>Double locking should be avoided but i would keep the ability to call >>ns_registerXXX procs at any time. >> >>Stephen Deasey wrote: >> >>>Ns_ConnRunRequest in op.c does something like: >>> >>>Ns_MutexLock(&ulock); >>>reqPtr = Ns_UrlSpecificGet(server, method, url, id); >>>... >>>Ns_MutexUnlock(&ulock); >>> >>> >>>Ns_UrlSpecificGet in urlspace.c does something like: >>> >>>MkSeq(&seq, server, method, url); >>>Ns_MutexLock(&lock); >>>data = JunctionFind(&urlspace, seq, id, 0); >>>Ns_MutexUnlock(&lock); >>> >>> >>>i.e. there's double locking going on. The second lock, in the >>>urlspace code, is under contention by all callers of urlspace >>>(requests, url2file, etc.), and many of these are very common >>>operations. >>> >>> >>>Users of urlspace need to call Ns_UrlSpecificAlloc() in their >>>initialisation code to get a magic ID. This ID partitions the data of >>>each subsystem. But the ID is stored within the 'Trie' and so needs >>>to be protected by the global lock. >>> >>>What if instead the ID was used as in Thread Local Storage? There's >>>an array of slots, where each slot contains a separate Trie, and the >>>ID is an index into this array. Because ID's are allocated at start >>>up and aren't destroyed there need be no locking at run time to locate >>>the appropriate Trie for the caller. >>> >>>The urlspace locking can now be removed because the callers locking >>>perfectly protects the Trie from concurrent access. It would also >>>allow the caller to run lock-free in the case where all urlspace >>>entries are created at start up and only read at run time. >>> >>> >>>Does this make sense? > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_idv37&alloc_id865&op=click > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Stephen D. <sd...@gm...> - 2005-12-09 13:28:35
|
Yes, you must still be able to register procs at runtime. (There is a comment in urlspace.c saying you musn't call destroy at runtime...?) I guess my real question was is this the right way to do it? I originally thought that maybe the urlspace code should hadle all the locking. I think the idea below is simpler and more flexible. So here's a patch: http://sourceforge.net/tracker/index.php?func=3Ddetail&aid=3D1377113&group_= id=3D130646&atid=3D719009 The conn pool code is now lock free! On 12/7/05, Vlad Seryakov <vl...@cr...> wrote: > I think ns_register_proc/ns_register_filter uses Trie and canbe called > at any time, that's why it still needs locking. > > Double locking should be avoided but i would keep the ability to call > ns_registerXXX procs at any time. > > Stephen Deasey wrote: > > Ns_ConnRunRequest in op.c does something like: > > > > Ns_MutexLock(&ulock); > > reqPtr =3D Ns_UrlSpecificGet(server, method, url, id); > > ... > > Ns_MutexUnlock(&ulock); > > > > > > Ns_UrlSpecificGet in urlspace.c does something like: > > > > MkSeq(&seq, server, method, url); > > Ns_MutexLock(&lock); > > data =3D JunctionFind(&urlspace, seq, id, 0); > > Ns_MutexUnlock(&lock); > > > > > > i.e. there's double locking going on. The second lock, in the > > urlspace code, is under contention by all callers of urlspace > > (requests, url2file, etc.), and many of these are very common > > operations. > > > > > > Users of urlspace need to call Ns_UrlSpecificAlloc() in their > > initialisation code to get a magic ID. This ID partitions the data of > > each subsystem. But the ID is stored within the 'Trie' and so needs > > to be protected by the global lock. > > > > What if instead the ID was used as in Thread Local Storage? There's > > an array of slots, where each slot contains a separate Trie, and the > > ID is an index into this array. Because ID's are allocated at start > > up and aren't destroyed there need be no locking at run time to locate > > the appropriate Trie for the caller. > > > > The urlspace locking can now be removed because the callers locking > > perfectly protects the Trie from concurrent access. It would also > > allow the caller to run lock-free in the case where all urlspace > > entries are created at start up and only read at run time. > > > > > > Does this make sense? |
From: Vlad S. <vl...@cr...> - 2005-12-07 14:45:11
|
I think ns_register_proc/ns_register_filter uses Trie and canbe called at any time, that's why it still needs locking. Double locking should be avoided but i would keep the ability to call ns_registerXXX procs at any time. Stephen Deasey wrote: > Ns_ConnRunRequest in op.c does something like: > > Ns_MutexLock(&ulock); > reqPtr = Ns_UrlSpecificGet(server, method, url, id); > ... > Ns_MutexUnlock(&ulock); > > > Ns_UrlSpecificGet in urlspace.c does something like: > > MkSeq(&seq, server, method, url); > Ns_MutexLock(&lock); > data = JunctionFind(&urlspace, seq, id, 0); > Ns_MutexUnlock(&lock); > > > i.e. there's double locking going on. The second lock, in the > urlspace code, is under contention by all callers of urlspace > (requests, url2file, etc.), and many of these are very common > operations. > > > Users of urlspace need to call Ns_UrlSpecificAlloc() in their > initialisation code to get a magic ID. This ID partitions the data of > each subsystem. But the ID is stored within the 'Trie' and so needs > to be protected by the global lock. > > What if instead the ID was used as in Thread Local Storage? There's > an array of slots, where each slot contains a separate Trie, and the > ID is an index into this array. Because ID's are allocated at start > up and aren't destroyed there need be no locking at run time to locate > the appropriate Trie for the caller. > > The urlspace locking can now be removed because the callers locking > perfectly protects the Trie from concurrent access. It would also > allow the caller to run lock-free in the case where all urlspace > entries are created at start up and only read at run time. > > > Does this make sense? > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_idv37&alloc_id865&op=click > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Stephen D. <sd...@gm...> - 2005-12-07 11:12:16
|
Ns_ConnRunRequest in op.c does something like: Ns_MutexLock(&ulock); reqPtr =3D Ns_UrlSpecificGet(server, method, url, id); ... Ns_MutexUnlock(&ulock); Ns_UrlSpecificGet in urlspace.c does something like: MkSeq(&seq, server, method, url); Ns_MutexLock(&lock); data =3D JunctionFind(&urlspace, seq, id, 0); Ns_MutexUnlock(&lock); i.e. there's double locking going on. The second lock, in the urlspace code, is under contention by all callers of urlspace (requests, url2file, etc.), and many of these are very common operations. Users of urlspace need to call Ns_UrlSpecificAlloc() in their initialisation code to get a magic ID. This ID partitions the data of each subsystem. But the ID is stored within the 'Trie' and so needs to be protected by the global lock. What if instead the ID was used as in Thread Local Storage? There's an array of slots, where each slot contains a separate Trie, and the ID is an index into this array. Because ID's are allocated at start up and aren't destroyed there need be no locking at run time to locate the appropriate Trie for the caller. The urlspace locking can now be removed because the callers locking perfectly protects the Trie from concurrent access. It would also allow the caller to run lock-free in the case where all urlspace entries are created at start up and only read at run time. Does this make sense? |