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: Zoran V. <zv...@ar...> - 2006-04-13 22:03:41
|
On 13.04.2006, at 23:58, Stephen Deasey wrote: > Unless anyone has any bright ideas, I'm going to test snapshots from > CVS until the problem goes away, when I get time... > I have Purify. Can you get me a sequence of commands which expose memory corrruption so I can replay it under purify control? Cheers Zoran |
From: Stephen D. <sd...@gm...> - 2006-04-13 21:58:29
|
Uh oh... There could well be problems with the cache code, but I think it runs deeper than that. I've found a couple of problems which are easier to trigger, for testing: make runtest ns_info nsd ...produces garbage. make runtest ns_cache_create c 1000 ns_cache_incr c k 1 ns_cache_create c k ...produces an error. Memory corruption. Looking a little deeper, I don't see how the first ever passed it's test. nsconf.nsd end up pointing to heap memory, allocated by Tcl.=20 But the Tcl function is called twice (don't have it in front of me, FindExecutable?), and the second time it frees and then allocates a buffer for the path again, so the original nsconf.nsd is pointing at deallocated memory. Easy to fix, but puzzling why this didn't show up before. The code for ns_cache_incr looks reasonable. The error seems to happen in the Tcl core when it tries to parse the cache value as an integer by using the regexp engine. I think by this point memory is already trashed. Whatever is trashing memory it's happening really early. I tried with only one virtual server configured, tried using the control port instead of the built in command shell etc. but it's still there. I've also tried running with Tcl mem debugging enabled, thread allocator disabled, Linux MALLOC_CHECK_ enabled -- no joy. The bad news is that I noticed something months ago. I tried linking against a Tcl 8.5 snapshot from CVS and the test suite crashed it every time. I thought it was just an unstable Tcl. Unless anyone has any bright ideas, I'm going to test snapshots from CVS until the problem goes away, when I get time... On 4/7/06, Vlad Seryakov <vl...@cr...> wrote: > This is what i discovered yesterday, i ported my application from > ns_cache module to internal Tcl cache API and got SEGV crashes. Under > high concurrency when inside ns_cache_eval i call another ns_cache_set C > cache API crashes, using ns_cache it was working the last couple of > years. It always crashes in this place. > > Loaded symbols for /lib/libresolv.so.2 > #0 Push (ePtr=3D0xa92ab878) at cache.c:904 > 904 ePtr->cachePtr->firstEntryPtr->prevPtr =3D ePtr; > (gdb) bt > #0 Push (ePtr=3D0xa92ab878) at cache.c:904 > #1 0xb7f59cb5 in Ns_CacheWaitCreateEntry (cache=3D0x839e858, > key=3D0x867fb98 "6", newPtr=3D0xabc3575c, timeout=3D360) at cache.c:295 > #2 0xb7f79a5b in CreateEntry (itPtr=3D0x888bcf8, cache=3D0x839e858, > key=3D0x867fb98 "6", newPtr=3D0x8a990000, timeout=3D360) > at tclcache.c:686 > #3 0xb7f7a01c in NsTclCacheSetObjCmd (arg=3D0x888bcf8, interp=3D0x88b512= 0, > objc=3D-1969684480, objv=3D0x8a990000) at tclcache.c:367 > #4 0xb7ea9143 in TclEvalObjvInternal (interp=3D0x88b5120, objc=3D4, > objv=3D0x88c775c, command=3D0x0, length=3D0, flags=3D0) > at > /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic= .c:3085 > #5 0xb7ed2fa0 in TclExecuteByteCode (interp=3D0x88b5120, codePtr=3D0x891= cb80) > at > /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclExecu= te.c:1419 > #6 0xb7ed8ee8 in TclCompEvalObj (interp=3D0x88b5120, objPtr=3D0x888ec38) > at > /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclExecu= te.c:981 > #7 0xb7eab94b in Tcl_EvalObjEx (interp=3D0x88b5120, objPtr=3D0x888ec38, > flags=3D0) > at > /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic= .c:4049 > #8 0xb7f7a521 in NsTclCacheEvalObjCmd (arg=3D0x888bcf8, interp=3D0x88b51= 20, > objc=3D6, objv=3D0x88c7744) at tclcache.c:167 > #9 0xb7ea9143 in TclEvalObjvInternal (interp=3D0x88b5120, objc=3D6, > objv=3D0x88c7744, command=3D0x0, length=3D0, flags=3D0) > at > /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic= .c:3085 > #10 0xb7ed2fa0 in TclExecuteByteCode (interp=3D0x88b5120, codePtr=3D0x891= 74e0) > at > /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclExecu= te.c:1419 > #11 0xb7ed8ee8 in TclCompEvalObj (interp=3D0x88b5120, objPtr=3D0x888f2f8) > at > /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclExecu= te.c:981 > #12 0xb7eab94b in Tcl_EvalObjEx (interp=3D0x88b5120, objPtr=3D0x888f2f8, > flags=3D0) > at > /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic= .c:4049 > #13 0xb7eb0dba in Tcl_ForObjCmd (dummy=3D0x0, interp=3D0x88b5120, objc=3D= 5, > objv=3D0xabc362ac) > at > /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclCmdAH= .c:1638 > #14 0xb7ea9143 in TclEvalObjvInternal (interp=3D0x88b5120, objc=3D5, > objv=3D0xabc362ac, > command=3D0x840144f "for {set j 0} {$j < 1000} {incr j} {\n", ' ' > <repeats 16 times>, "for {set x 0} {$x < 10000} {incr x} {set a b}\n", ' > ' <repeats 16 times>, "ns_cache_eval -ttl 1 c1 k1 {\n", ' ' <repeats 18 > times>, "ns_cache_set c1 $j $j\n", ' ' <repeats 16 times>..., > length=3D276, flags=3D0) at > /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic= .c:3085 > #15 0xb7eaace4 in Tcl_EvalEx (interp=3D0x88b5120, > script=3D0x8401440 " \n", ' ' <repeats 12 times>, "for {set j 0} {$= j > < 1000} {incr j} {\n", ' ' <repeats 16 times>, "for {set x 0} {$x < > 10000} {incr x} {set a b}\n", ' ' <repeats 16 times>, "ns_cache_eval > -ttl 1 c1 k1 {\n", ' ' <repeats 18 times>, "ns_cache_set c1 $j $j\n > "..., numBytes=3D299, flags=3D0) at > /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic= .c:3687 > #16 0xb7f7f58e in Ns_TclEval (dsPtr=3D0x0, server=3D0x8a990000 <Address > 0x8a990000 out of bounds>, > script=3D0x8a990000 <Address 0x8a990000 out of bounds>) at tclinit.c= :227 > #17 0xb7f8c48f in NsTclThread (arg=3D0x8401438) at tclthread.c:660 > #18 0xb7f3c524 in NsThreadMain (arg=3D0x82ac7e8) at thread.c:224 > #19 0xb7f3d2dd in ThreadMain (arg=3D0x8a990000) at pthread.c:736 > #20 0xb7cd5240 in start_thread () from /lib/tls/libpthread.so.0 > > > Vlad Seryakov wrote: > > Update of /cvsroot/naviserver/naviserver/tests > > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27307 > > > > Modified Files: > > ns_cache.test > > Log Message: > > Hard cache test which works in case of ns_cache modules but core dumps = using ns_cache_eval > > > > > > Index: ns_cache.test > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > RCS file: /cvsroot/naviserver/naviserver/tests/ns_cache.test,v > > retrieving revision 1.4 > > retrieving revision 1.5 > > diff -C2 -d -r1.4 -r1.5 > > *** ns_cache.test 5 Apr 2006 18:24:57 -0000 1.4 > > --- ns_cache.test 6 Apr 2006 23:20:44 -0000 1.5 > > *************** > > *** 300,304 **** > > for {set j 0} {$j < 1000} {incr j} { > > for {set x 0} {$x < 10000} {incr x} {set a b} > > ! ns_cache_eval c1 k1 {return a} > > ns_thread yield > > } > > --- 300,307 ---- > > for {set j 0} {$j < 1000} {incr j} { > > for {set x 0} {$x < 10000} {incr x} {set a b} > > ! ns_cache_eval -ttl 1 c1 k1 { > > ! ns_cache_set c1 $j $j > > ! return a > > ! } > > ns_thread yield > > } > > *************** > > *** 308,311 **** > > --- 311,315 ---- > > for {set j 0} {$j < 1000} {incr j} { > > for {set x 0} {$x < 10000} {incr x} {set a b} > > + ns_cache_get c1 $j > > ns_cache_flush c1 > > ns_thread yield > > > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by xPML, a groundbreaking scripting lang= uage > > that extends applications into web and mobile media. Attend the live we= bcast > > and join the prime developer group breaking into this new coding territ= ory! > > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D110944&bid=3D241720&dat= =3D121642 > > _______________________________________________ > > naviserver-commits mailing list > > nav...@li... > > https://lists.sourceforge.net/lists/listinfo/naviserver-commits > > > > -- > Vlad Seryakov > 571 262-8608 office > vl...@cr... > http://www.crystalballinc.com/vlad/ > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting langua= ge > that extends applications into web and mobile media. Attend the live webc= ast > and join the prime developer group breaking into this new coding territor= y! > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D110944&bid=3D241720&dat= =3D121642 > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > |
From: Stephen D. <sd...@gm...> - 2006-04-13 21:08:10
|
Have you seen jhbuild? http://www.freedesktop.org/wiki/Software/jhbuild Haven't used this, but the gnome project use this for building modules straight out of CVS. If there's something that can be changed to make chroot setup easier, shout out. It would also be cool to come up with an SELinux config. On 4/12/06, Bernd Eidenschink <eid...@we...> wrote: > > Hi Jamie, > > thanks for your interest. There definitely seem to lay around a lot of sc= ripts > that help downloading, building and installing. Maybe we can put together= the > best working approaches! Or discuss them and create something new. > > > Great, I'm looking forward to seeing the scripts. > > > > Back in August when Jim added platform-independent build support to > > AOLserver I started a script that would download and build AOLserver > > modules and dependencies on Windows. I use it in my nightly win32 > > build, which, if my flaky DSL is working, you can see at > > http://www.jamierasmussen.com/projects/source/ I've been hoping to mak= e > > it work for NaviServer too but haven't had time yet. > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting langua= ge > that extends applications into web and mobile media. Attend the live webc= ast > and join the prime developer group breaking into this new coding territor= y! > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D110944&bid=3D241720&dat= =3D121642 > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > |
From: Bernd E. <eid...@we...> - 2006-04-12 16:07:24
|
Hi Jamie, thanks for your interest. There definitely seem to lay around a lot of scripts that help downloading, building and installing. Maybe we can put together the best working approaches! Or discuss them and create something new. > Great, I'm looking forward to seeing the scripts. > > Back in August when Jim added platform-independent build support to > AOLserver I started a script that would download and build AOLserver > modules and dependencies on Windows. I use it in my nightly win32 > build, which, if my flaky DSL is working, you can see at > http://www.jamierasmussen.com/projects/source/ I've been hoping to make > it work for NaviServer too but haven't had time yet. |
From: Jamie R. <jra...@sb...> - 2006-04-12 15:24:10
|
Great, I'm looking forward to seeing the scripts. Back in August when Jim added platform-independent build support to AOLserver I started a script that would download and build AOLserver modules and dependencies on Windows. I use it in my nightly win32 build, which, if my flaky DSL is working, you can see at http://www.jamierasmussen.com/projects/source/ I've been hoping to make it work for NaviServer too but haven't had time yet. Jamie Bernd Eidenschink wrote: > Hi friends, > > I started a separate project on SF with Nima Mazloumi for scripts that install > and/or chroot NaviServer and AOLserver ("nsdinstallers"). Nima did some work > on the latter so we thought the resulting work is best homed in a separate > repository. > > Both installers are based on an old monolithic hack I once wrote, we plan to > do a complete rewrite/update. > > It's really in the early stages, Development Status "1-Planning" :-), > I just wanted to notice you. > > Bernd. > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > |
From: Bernd E. <eid...@we...> - 2006-04-12 10:00:20
|
Hi friends, I started a separate project on SF with Nima Mazloumi for scripts that install and/or chroot NaviServer and AOLserver ("nsdinstallers"). Nima did some work on the latter so we thought the resulting work is best homed in a separate repository. Both installers are based on an old monolithic hack I once wrote, we plan to do a complete rewrite/update. It's really in the early stages, Development Status "1-Planning" :-), I just wanted to notice you. Bernd. |
From: Vlad S. <vl...@cr...> - 2006-04-06 23:24:13
|
This is what i discovered yesterday, i ported my application from ns_cache module to internal Tcl cache API and got SEGV crashes. Under high concurrency when inside ns_cache_eval i call another ns_cache_set C cache API crashes, using ns_cache it was working the last couple of years. It always crashes in this place. Loaded symbols for /lib/libresolv.so.2 #0 Push (ePtr=0xa92ab878) at cache.c:904 904 ePtr->cachePtr->firstEntryPtr->prevPtr = ePtr; (gdb) bt #0 Push (ePtr=0xa92ab878) at cache.c:904 #1 0xb7f59cb5 in Ns_CacheWaitCreateEntry (cache=0x839e858, key=0x867fb98 "6", newPtr=0xabc3575c, timeout=360) at cache.c:295 #2 0xb7f79a5b in CreateEntry (itPtr=0x888bcf8, cache=0x839e858, key=0x867fb98 "6", newPtr=0x8a990000, timeout=360) at tclcache.c:686 #3 0xb7f7a01c in NsTclCacheSetObjCmd (arg=0x888bcf8, interp=0x88b5120, objc=-1969684480, objv=0x8a990000) at tclcache.c:367 #4 0xb7ea9143 in TclEvalObjvInternal (interp=0x88b5120, objc=4, objv=0x88c775c, command=0x0, length=0, flags=0) at /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic.c:3085 #5 0xb7ed2fa0 in TclExecuteByteCode (interp=0x88b5120, codePtr=0x891cb80) at /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclExecute.c:1419 #6 0xb7ed8ee8 in TclCompEvalObj (interp=0x88b5120, objPtr=0x888ec38) at /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclExecute.c:981 #7 0xb7eab94b in Tcl_EvalObjEx (interp=0x88b5120, objPtr=0x888ec38, flags=0) at /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic.c:4049 #8 0xb7f7a521 in NsTclCacheEvalObjCmd (arg=0x888bcf8, interp=0x88b5120, objc=6, objv=0x88c7744) at tclcache.c:167 #9 0xb7ea9143 in TclEvalObjvInternal (interp=0x88b5120, objc=6, objv=0x88c7744, command=0x0, length=0, flags=0) at /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic.c:3085 #10 0xb7ed2fa0 in TclExecuteByteCode (interp=0x88b5120, codePtr=0x89174e0) at /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclExecute.c:1419 #11 0xb7ed8ee8 in TclCompEvalObj (interp=0x88b5120, objPtr=0x888f2f8) at /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclExecute.c:981 #12 0xb7eab94b in Tcl_EvalObjEx (interp=0x88b5120, objPtr=0x888f2f8, flags=0) at /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic.c:4049 #13 0xb7eb0dba in Tcl_ForObjCmd (dummy=0x0, interp=0x88b5120, objc=5, objv=0xabc362ac) at /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclCmdAH.c:1638 #14 0xb7ea9143 in TclEvalObjvInternal (interp=0x88b5120, objc=5, objv=0xabc362ac, command=0x840144f "for {set j 0} {$j < 1000} {incr j} {\n", ' ' <repeats 16 times>, "for {set x 0} {$x < 10000} {incr x} {set a b}\n", ' ' <repeats 16 times>, "ns_cache_eval -ttl 1 c1 k1 {\n", ' ' <repeats 18 times>, "ns_cache_set c1 $j $j\n", ' ' <repeats 16 times>..., length=276, flags=0) at /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic.c:3085 #15 0xb7eaace4 in Tcl_EvalEx (interp=0x88b5120, script=0x8401440 " \n", ' ' <repeats 12 times>, "for {set j 0} {$j < 1000} {incr j} {\n", ' ' <repeats 16 times>, "for {set x 0} {$x < 10000} {incr x} {set a b}\n", ' ' <repeats 16 times>, "ns_cache_eval -ttl 1 c1 k1 {\n", ' ' <repeats 18 times>, "ns_cache_set c1 $j $j\n "..., numBytes=299, flags=0) at /home/vlad/src/lmbox/linux/src/tcl/src/tcl8.4.12/unix/../generic/tclBasic.c:3687 #16 0xb7f7f58e in Ns_TclEval (dsPtr=0x0, server=0x8a990000 <Address 0x8a990000 out of bounds>, script=0x8a990000 <Address 0x8a990000 out of bounds>) at tclinit.c:227 #17 0xb7f8c48f in NsTclThread (arg=0x8401438) at tclthread.c:660 #18 0xb7f3c524 in NsThreadMain (arg=0x82ac7e8) at thread.c:224 #19 0xb7f3d2dd in ThreadMain (arg=0x8a990000) at pthread.c:736 #20 0xb7cd5240 in start_thread () from /lib/tls/libpthread.so.0 Vlad Seryakov wrote: > Update of /cvsroot/naviserver/naviserver/tests > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27307 > > Modified Files: > ns_cache.test > Log Message: > Hard cache test which works in case of ns_cache modules but core dumps using ns_cache_eval > > > Index: ns_cache.test > =================================================================== > RCS file: /cvsroot/naviserver/naviserver/tests/ns_cache.test,v > retrieving revision 1.4 > retrieving revision 1.5 > diff -C2 -d -r1.4 -r1.5 > *** ns_cache.test 5 Apr 2006 18:24:57 -0000 1.4 > --- ns_cache.test 6 Apr 2006 23:20:44 -0000 1.5 > *************** > *** 300,304 **** > for {set j 0} {$j < 1000} {incr j} { > for {set x 0} {$x < 10000} {incr x} {set a b} > ! ns_cache_eval c1 k1 {return a} > ns_thread yield > } > --- 300,307 ---- > for {set j 0} {$j < 1000} {incr j} { > for {set x 0} {$x < 10000} {incr x} {set a b} > ! ns_cache_eval -ttl 1 c1 k1 { > ! ns_cache_set c1 $j $j > ! return a > ! } > ns_thread yield > } > *************** > *** 308,311 **** > --- 311,315 ---- > for {set j 0} {$j < 1000} {incr j} { > for {set x 0} {$x < 10000} {incr x} {set a b} > + ns_cache_get c1 $j > ns_cache_flush c1 > ns_thread yield > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > naviserver-commits mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-commits > -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Vlad S. <vl...@cr...> - 2006-04-06 13:56:21
|
Right Zoran Vasiljevic wrote: > > Am 05.04.2006 um 22:55 schrieb Vlad Seryakov: > >> for now only Ns_SockWait should be replaced in 2 places with >> Ns_SockTimedWait in ssl.c > > Well, we could get a Ns_SockWait back instead of > getting in the entire module? Wouldn't that be > simpler? > > Cheers > Zoran > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live > webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > 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...> - 2006-04-06 07:20:10
|
Am 05.04.2006 um 22:55 schrieb Vlad Seryakov: > for now only Ns_SockWait should be replaced in 2 places with > Ns_SockTimedWait in ssl.c Well, we could get a Ns_SockWait back instead of getting in the entire module? Wouldn't that be simpler? Cheers Zoran |
From: Vlad S. <vl...@cr...> - 2006-04-05 20:55:06
|
for now only Ns_SockWait should be replaced in 2 places with Ns_SockTimedWait in ssl.c Zoran Vasiljevic wrote: > > Am 05.04.2006 um 21:52 schrieb Vlad Seryakov: > >> Another problem i had to resolve today, openssl need hacking now to be >> able to compile and use it under Naviserver. Do we want to fork it and >> maintain in our repository? > > It would be interesting to know what hacking it needs > as this may also apply to other modules used under AS > in which case we should make some effort to make it > simpler. > > Cheers > Zoran > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live > webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > 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...> - 2006-04-05 20:07:35
|
Am 05.04.2006 um 21:52 schrieb Vlad Seryakov: > Another problem i had to resolve today, openssl need hacking now to > be able to compile and use it under Naviserver. Do we want to fork > it and maintain in our repository? It would be interesting to know what hacking it needs as this may also apply to other modules used under AS in which case we should make some effort to make it simpler. Cheers Zoran |
From: Vlad S. <vl...@cr...> - 2006-04-05 19:52:13
|
Another problem i had to resolve today, openssl need hacking now to be able to compile and use it under Naviserver. Do we want to fork it and maintain in our repository? -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Vlad S. <vl...@cr...> - 2006-04-05 19:50:57
|
Yes, i use cache and in my case i do need to use get and set in different situations, for example i need to set cache entry regardless of what is there, eval will return me existing value, so i need to flush it first which gets to the same race condition issue. Same with get, i just need to get value if it exists without issuing exists first and then eval, if it is not there i do not want to set it, eval will set it. Stephen Deasey wrote: > What's the use case for these commands? I looked at the existing > usage in e.g. ACS back when I added this and it seems that people are > calling _get, and if it's not there, then calling _set. But this > looks like a race condition to me. > > Does _eval not cover everything? > > > > On 4/5/06, Vlad Seryakov <ser...@us...> wrote: >> Update of /cvsroot/naviserver/naviserver/nsd >> In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24426/nsd >> >> Modified Files: >> tclcache.c tclcmds.c >> Log Message: >> Added 2 new cache commands ns_cache_get and ns_cache_set for easier cache manipulation >> >> >> Index: tclcmds.c >> =================================================================== >> RCS file: /cvsroot/naviserver/naviserver/nsd/tclcmds.c,v >> retrieving revision 1.34 >> retrieving revision 1.35 >> diff -C2 -d -r1.34 -r1.35 >> *** tclcmds.c 28 Feb 2006 20:02:37 -0000 1.34 >> --- tclcmds.c 5 Apr 2006 17:52:31 -0000 1.35 >> *************** >> *** 73,76 **** >> --- 73,78 ---- >> NsTclCacheCreateObjCmd, >> NsTclCacheEvalObjCmd, >> + NsTclCacheGetObjCmd, >> + NsTclCacheSetObjCmd, >> NsTclCacheFlushObjCmd, >> NsTclCacheIncrObjCmd, >> *************** >> *** 259,262 **** >> --- 261,266 ---- >> {"ns_cache_create", NULL, NsTclCacheCreateObjCmd}, >> {"ns_cache_eval", NULL, NsTclCacheEvalObjCmd}, >> + {"ns_cache_get", NULL, NsTclCacheGetObjCmd}, >> + {"ns_cache_set", NULL, NsTclCacheSetObjCmd}, >> {"ns_cache_flush", NULL, NsTclCacheFlushObjCmd}, >> {"ns_cache_incr", NULL, NsTclCacheIncrObjCmd}, >> >> Index: tclcache.c >> =================================================================== >> RCS file: /cvsroot/naviserver/naviserver/nsd/tclcache.c,v >> retrieving revision 1.2 >> retrieving revision 1.3 >> diff -C2 -d -r1.2 -r1.3 >> *** tclcache.c 23 Jan 2006 15:57:33 -0000 1.2 >> --- tclcache.c 5 Apr 2006 17:52:31 -0000 1.3 >> *************** >> *** 285,288 **** >> --- 285,378 ---- >> } >> >> + /* >> + *---------------------------------------------------------------------- >> + * >> + * NsTclCacheGetObjCmd -- >> + * >> + * Returns entry value if entry exists in the cache and not expired yet >> + * >> + * Results: >> + * TCL result with entry value or empty result >> + * >> + * Side effects: >> + * None. >> + * >> + *---------------------------------------------------------------------- >> + */ >> + >> + int >> + NsTclCacheGetObjCmd(ClientData arg, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) >> + { >> + Ns_Cache *cache; >> + Ns_Entry *entry; >> + char *key; >> + >> + Ns_ObjvSpec args[] = { >> + {"cache", ObjvCache, &cache, arg}, >> + {"key", Ns_ObjvString, &key, NULL}, >> + {NULL, NULL, NULL, NULL} >> + }; >> + if (Ns_ParseObjv(NULL, args, interp, 1, objc, objv) != NS_OK) { >> + return TCL_ERROR; >> + } >> + Ns_CacheLock(cache); >> + if ((entry = Ns_CacheFindEntry(cache, key)) != NULL) { >> + Tcl_SetStringObj(Tcl_GetObjResult(interp), >> + Ns_CacheGetValue(entry), Ns_CacheGetSize(entry)); >> + } >> + Ns_CacheUnlock(cache); >> + return TCL_OK; >> + } >> + >> + /* >> + *---------------------------------------------------------------------- >> + * >> + * NsTclCacheSetObjCmd -- >> + * >> + * Set new value of the cache entry >> + * >> + * Results: >> + * TCL result. >> + * >> + * Side effects: >> + * None. >> + * >> + *---------------------------------------------------------------------- >> + */ >> + >> + int >> + NsTclCacheSetObjCmd(ClientData arg, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) >> + { >> + NsInterp *itPtr = arg; >> + Ns_Cache *cache; >> + Ns_Entry *entry; >> + char *key, *value = 0; >> + int new, timeout = -1, ttl = 0; >> + >> + Ns_ObjvSpec opts[] = { >> + {"-timeout", Ns_ObjvInt, &timeout, NULL}, >> + {"-ttl", Ns_ObjvInt, &ttl, NULL}, >> + {"--", Ns_ObjvBreak, NULL, NULL}, >> + {NULL, NULL, NULL, NULL} >> + }; >> + Ns_ObjvSpec args[] = { >> + {"cache", ObjvCache, &cache, arg}, >> + {"key", Ns_ObjvString, &key, NULL}, >> + {"value", Ns_ObjvString, &value, NULL}, >> + {NULL, NULL, NULL, NULL} >> + }; >> + if (Ns_ParseObjv(opts, args, interp, 1, objc, objv) != NS_OK) { >> + return TCL_ERROR; >> + } >> + if ((entry = CreateEntry(itPtr, cache, key, &new, timeout)) == NULL) { >> + return TCL_ERROR; >> + } >> + Tcl_SetStringObj(Tcl_GetObjResult(interp), value, -1); >> + SetEntry(interp, entry, NULL, ttl); >> + Ns_CacheUnlock(cache); >> + >> + return TCL_OK; >> + } >> + >> >> /* >> >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by xPML, a groundbreaking scripting language >> that extends applications into web and mobile media. Attend the live webcast >> and join the prime developer group breaking into this new coding territory! >> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 >> _______________________________________________ >> naviserver-commits mailing list >> nav...@li... >> https://lists.sourceforge.net/lists/listinfo/naviserver-commits >> > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=k&kid0944&bid$1720&dat1642 > _______________________________________________ > 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...> - 2006-04-05 19:35:32
|
Thanks, I'll take a look. On 4/4/06, Zoran Vasiljevic <zv...@ar...> wrote: > Hi! > > It seems like Tcl is also going to do this. > Stephen, you might eventually comment on > that on tclcore list. > > Cheers > Zoran |
From: Stephen D. <sd...@gm...> - 2006-04-05 19:33:27
|
What's the use case for these commands? I looked at the existing usage in e.g. ACS back when I added this and it seems that people are calling _get, and if it's not there, then calling _set. But this looks like a race condition to me. Does _eval not cover everything? On 4/5/06, Vlad Seryakov <ser...@us...> wrote: > Update of /cvsroot/naviserver/naviserver/nsd > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24426/nsd > > Modified Files: > tclcache.c tclcmds.c > Log Message: > Added 2 new cache commands ns_cache_get and ns_cache_set for easier cache= manipulation > > > Index: tclcmds.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/naviserver/naviserver/nsd/tclcmds.c,v > retrieving revision 1.34 > retrieving revision 1.35 > diff -C2 -d -r1.34 -r1.35 > *** tclcmds.c 28 Feb 2006 20:02:37 -0000 1.34 > --- tclcmds.c 5 Apr 2006 17:52:31 -0000 1.35 > *************** > *** 73,76 **** > --- 73,78 ---- > NsTclCacheCreateObjCmd, > NsTclCacheEvalObjCmd, > + NsTclCacheGetObjCmd, > + NsTclCacheSetObjCmd, > NsTclCacheFlushObjCmd, > NsTclCacheIncrObjCmd, > *************** > *** 259,262 **** > --- 261,266 ---- > {"ns_cache_create", NULL, NsTclCacheCreateObjCmd}, > {"ns_cache_eval", NULL, NsTclCacheEvalObjCmd}, > + {"ns_cache_get", NULL, NsTclCacheGetObjCmd}, > + {"ns_cache_set", NULL, NsTclCacheSetObjCmd}, > {"ns_cache_flush", NULL, NsTclCacheFlushObjCmd}, > {"ns_cache_incr", NULL, NsTclCacheIncrObjCmd}, > > Index: tclcache.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/naviserver/naviserver/nsd/tclcache.c,v > retrieving revision 1.2 > retrieving revision 1.3 > diff -C2 -d -r1.2 -r1.3 > *** tclcache.c 23 Jan 2006 15:57:33 -0000 1.2 > --- tclcache.c 5 Apr 2006 17:52:31 -0000 1.3 > *************** > *** 285,288 **** > --- 285,378 ---- > } > > + /* > + *---------------------------------------------------------------------= - > + * > + * NsTclCacheGetObjCmd -- > + * > + * Returns entry value if entry exists in the cache and not expire= d yet > + * > + * Results: > + * TCL result with entry value or empty result > + * > + * Side effects: > + * None. > + * > + *---------------------------------------------------------------------= - > + */ > + > + int > + NsTclCacheGetObjCmd(ClientData arg, Tcl_Interp *interp, int objc, Tcl_O= bj *CONST objv[]) > + { > + Ns_Cache *cache; > + Ns_Entry *entry; > + char *key; > + > + Ns_ObjvSpec args[] =3D { > + {"cache", ObjvCache, &cache, arg}, > + {"key", Ns_ObjvString, &key, NULL}, > + {NULL, NULL, NULL, NULL} > + }; > + if (Ns_ParseObjv(NULL, args, interp, 1, objc, objv) !=3D NS_OK) { > + return TCL_ERROR; > + } > + Ns_CacheLock(cache); > + if ((entry =3D Ns_CacheFindEntry(cache, key)) !=3D NULL) { > + Tcl_SetStringObj(Tcl_GetObjResult(interp), > + Ns_CacheGetValue(entry), Ns_CacheGetSize(entry= )); > + } > + Ns_CacheUnlock(cache); > + return TCL_OK; > + } > + > + /* > + *---------------------------------------------------------------------= - > + * > + * NsTclCacheSetObjCmd -- > + * > + * Set new value of the cache entry > + * > + * Results: > + * TCL result. > + * > + * Side effects: > + * None. > + * > + *---------------------------------------------------------------------= - > + */ > + > + int > + NsTclCacheSetObjCmd(ClientData arg, Tcl_Interp *interp, int objc, Tcl_O= bj *CONST objv[]) > + { > + NsInterp *itPtr =3D arg; > + Ns_Cache *cache; > + Ns_Entry *entry; > + char *key, *value =3D 0; > + int new, timeout =3D -1, ttl =3D 0; > + > + Ns_ObjvSpec opts[] =3D { > + {"-timeout", Ns_ObjvInt, &timeout, NULL}, > + {"-ttl", Ns_ObjvInt, &ttl, NULL}, > + {"--", Ns_ObjvBreak, NULL, NULL}, > + {NULL, NULL, NULL, NULL} > + }; > + Ns_ObjvSpec args[] =3D { > + {"cache", ObjvCache, &cache, arg}, > + {"key", Ns_ObjvString, &key, NULL}, > + {"value", Ns_ObjvString, &value, NULL}, > + {NULL, NULL, NULL, NULL} > + }; > + if (Ns_ParseObjv(opts, args, interp, 1, objc, objv) !=3D NS_OK) { > + return TCL_ERROR; > + } > + if ((entry =3D CreateEntry(itPtr, cache, key, &new, timeout)) =3D= =3D NULL) { > + return TCL_ERROR; > + } > + Tcl_SetStringObj(Tcl_GetObjResult(interp), value, -1); > + SetEntry(interp, entry, NULL, ttl); > + Ns_CacheUnlock(cache); > + > + return TCL_OK; > + } > + > > /* > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting langua= ge > that extends applications into web and mobile media. Attend the live webc= ast > and join the prime developer group breaking into this new coding territor= y! > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D110944&bid=3D241720&dat= =3D121642 > _______________________________________________ > naviserver-commits mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-commits > |
From: Zoran V. <zv...@ar...> - 2006-04-04 10:17:38
|
Hi! It seems like Tcl is also going to do this. Stephen, you might eventually comment on that on tclcore list. Cheers Zoran Anfang der weitergeleiteten E-Mail: > Von: Sam Bromley <sa...@sa...> > Datum: 4. April 2006 11:47:44 MESZ > An: tcl...@li... > Kopie: Sam Bromley <sa...@sa...> > Betreff: [TCLCORE] TIP #265: A Convenient C-side Command Option > Parser for Tcl > Antwort an: tcl...@li... > > > TIP #265: A CONVENIENT C-SIDE COMMAND OPTION PARSER FOR TCL > ============================================================= > Version: $Revision: 1.2 $ > Author: Sam Bromley <sam_at_sambromley.com> > State: Draft > Type: Project > Tcl-Version: 8.5 > Vote: Pending > Created: Monday, 03 April 2006 > URL: http://purl.org/tcl/tip/265.html > WebEdit: http://purl.org/tcl/tip/edit/265 > Post-History: > > ---------------------------------------------------------------------- > --- > > ABSTRACT > ========== > > The Tk C library provides developers with a /Tk_ParseArgv/() function > that allows command line parsing of options of the "-option" form. > Archived discussions on <URL:news:comp.lang.tcl> and on the Wiki > indicate that a desire for similar functionality without Tk has > arisen > several times in the past. This TIP presents a Tk-free implementation > of /Tk_ParseArgv()/ named *Tcl_ParseArgv*, as well as a new function, > *Tcl_ParseArgvObj*, that developers can use to parse "-option" style > command options in C implementations of Tcl commands using the > Tcl_Obj > interface. > > RATIONALE > =========== > > While the parsing of command options can be readily accomplished > on the > Tcl side, a uniform method for parsing "-option" formed options does > not exist on the C side. Many developers are familiar with the > ease of > use of libpopt-style command line parsing, but a similarly clean > method > does not currently exist in Tcl. The common approach is to use > /Tcl_GetIndexFromObj/(), yet this method alone does not allow the > flexibilty and ease of use of libpopt-style parsing. > > One drawback of the classical /Tcl_GetIndexFromObj/()-only > approach is > the need to handle the specifies of your command option parsing for > each unique command. This leads to significant code duplication. A > libpopt-style approach is to bundle all of your parsing specifics > into > a single array of structures capturing the details, and then let a > specific parsing routine handle the parsing of every option for you. > The *Tcl_ParseArgvObj*() routine introduced in this TIP provides this > functionality, thereby allowing the removal of all parsing specifics > from the command implimentation other than that necessary to describe > each optional argument. > > Additionally, a function *Tcl_ParseArgv* is provided to provide the > functionality of /Tk_ParseArgs/() to those who desire it. A > discussion > in 2002 on <URL:news:comp.lang.tcl> > [<URL:http://groups.google.com/group/comp.lang.tcl/browse_thread/ > thread/c4fea8f0346cf8ae/036961bf476a3b99? > q=tcl_parseargv&rnum=2#036961bf476a3b99>] > indicated that this is a desired feature. Arguments against a > *Tcl_ParseArgv* implementation include that it is better to do all > command line parsing on the Tcl side. However, this implies > writing two > wrapper functions: (i) A C implementation of a Tcl command; and > (ii) A > Tcl wrapper that pre-parses the options before calling the C command. > This can lead to significant duplication of effort when porting a > large > project to a Tcl enabled version. This point is particularly relevent > in the context of *Tcl_ParseArgvObj*(), as then one is not assuming > that one can simply replace the main() routine with Tcl, but rather > that one is truly embedding the C side in a larger system. > > *Tcl_ParseArgvObj*() offers a clean method to enable flexible command > line parsing to C implementations of Tcl commands. > > SPECIFICATION > =============== > > This document proposes the following changes to Tcl core: > > 1. Add /generic/tclArgv.c/ and /generic/tclArgv.h/ which > provide the > new library functions /Tcl_ParseArgv()/ and /Tcl_ParseArgvObj > ()/. > > 2. Modify /tcl.h/ to declare object types and functions needed by > /tclArgv.c/. > > The function signatures of *Tcl_ParseArgv* and *Tcl_ParseArgsObjv* > shall be: > > int *Tcl_ParseArgv*(Tcl_Interp */interp/, int */argcPtr/, char > **/argv/, const Tcl_ArgvInfo */argTable/, int /flags/) > > int *Tcl_ParseArgsObjv*(Tcl_Interp */interp/, int */objcPtr/, > Tcl_Obj **/objv/, const Tcl_ArgvInfo */argTable/, int /flags/) > > *Note* that the count of arguments (referred to by /argcPtr/ or > /objcPtr/) will be modified, as will the arrays indicated by / > argv/ and > /objv/. In particular, the arrays of arguments /must not/ be those > passed into the calling command. > > REFERENCE IMPLEMENTATION > ========================== > > A working implementation has been submitted to the Feature Request > Tracker at SourceForge > [<URL:http://sf.net/tracker/? > func=detail&aid=1446696&group_id=10894&atid=360894>]. > > EXAMPLE OF USE > ================ > > #include <tcl.h> > #include <tclArgv.h> /* not needed if subsumed into core */ > > int g_test_cmd(ClientData clientData, Tcl_Interp *interp, > int objc, Tcl_Obj *CONST objv[]) > { > char *gname,*filename; > int i; > int numRepeat; > double scalar; > int doErase = 0; > size_t size; > > /* this table specifies the possible options, all in one place.*/ > Tcl_ArgvInfo argTable[] = { > {"-erase", TCL_ARGV_CONSTANT, (void *) 1, &doErase, > "erase image before plotting"}, > {"-numRepeat", TCL_ARGV_INT, NULL, &numRepeat, > "number of times to repeat test"}, > {"-scalar", TCL_ARGV_FLOAT, NULL, &scalar, > "scalar multiple to use for test"}, > {"-outfile", TCL_ARGV_STRING, NULL, &filename, > "name of file to which to dump result"}, > {NULL, TCL_ARGV_END, NULL, NULL, NULL} > }; > > /* need a local copy of Tcl_Obj array for manipulation */ > size = (unsigned) (objc+1) * sizeof(Tcl_Obj*); > Tcl_Obj **private_objv = (Tcl_Obj**) ckalloc(size); > memcpy(private_objv, objv, size); > > /* Call Tcl_ParseArgObjv to do all the parsing! */ > if (Tcl_ParseArgsObjv(interp,&objc,private_objv,argTable,0) != > TCL_OK) { > /* something went wrong. Error stored in interp's result */ > ckfree(private_objv); > return TCL_ERROR; > } > > /* at this point, any unhandled options are repacked in > private_objv */ > gname = Tcl_GetString(private_obj[1]); > > /* all done */ > ckfree(private_objv); > > /* rest of code continues here...*/ > > return TCL_OK; > } > > COPYRIGHT > =========== > > This document has been placed in the public domain. > > ---------------------------------------------------------------------- > --- > > TIP AutoGenerator - written by Donal K. Fellows > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting > language > that extends applications into web and mobile media. Attend the > live webcast > and join the prime developer group breaking into this new coding > territory! > http://sel.as-us.falkag.net/sel? > cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > Tcl-Core mailing list > Tcl...@li... > https://lists.sourceforge.net/lists/listinfo/tcl-core |
From: Gustaf N. <ne...@wu...> - 2006-04-04 07:49:41
|
Vlad Seryakov schrieb: > > Hi, > > I cannot access CVS over ssh for several day already, nothing on the > site or news/forums. Does somebody know what is going on? > see: http://sourceforge.net/docs/A04/ -gustaf |
From: Zoran V. <zv...@ar...> - 2006-04-04 07:43:26
|
Am 03.04.2006 um 23:14 schrieb Vlad Seryakov: > > I cannot access CVS over ssh for several day already, nothing on > the site or news/forums. Does somebody know what is going on? Yes. They have several days CVS outage. All hosted projects are affected. Nobody says howlong it will take. Cheers Zoran |
From: Vlad S. <vl...@cr...> - 2006-04-03 21:14:48
|
Hi, I cannot access CVS over ssh for several day already, nothing on the site or news/forums. Does somebody know what is going on? -- Vlad Seryakov 571 262-8608 office vl...@cr... http://www.crystalballinc.com/vlad/ |
From: Gustaf N. <ne...@wu...> - 2006-03-21 16:52:13
|
Bernd Eidenschink schrieb: > Hi friends! > > Anybody out there who successfully compiled nspostgres-4.0 driver with > NaviServer (including -DFOR_ACS_USE CFLAG) ? > yes, and i don't remember having problems... (see below) Good the hear from Vlad that there is a new version for the driver out for naviserver. i was not aware of this either. i am wondering, is there a good reason for using he using the char* interface and not the Tcl_Obj interface (Tcl_CreateCommand and not Tcl_CreateObjCommand) (beyond "have not touched this"). There should be a couple of places, where Tcl-Objs are useful (bind lists, blobs). afaik, the commands created by CreateCommand are wrapper to call Obj_CmdProc, so i would hope to get some slight improvements here, but executed very frequently. However, also ns_pgtcl from the postgres distro seems to use still the char* interface. -gustaf neumann PS: here is what is use for compiling the modules for NS and AS ==================================== NS=/usr/local/ns #NS=/usr/local/aolserver4 TCL=/usr/local/ns/tcl8.4.12/unix export NAVISERVER=$NS export AOLSERVER=$NS ... cd nspostgres make INST=$NS clean make INST=$NS POSTGRES=/usr/local/pg745 ACS=1 install cd .. > Bernd. > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > |
From: Vlad S. <vl...@cr...> - 2006-03-21 16:31:06
|
It assumes PG includes and libraries in the common paths, if not try make LDFLAGS=-L/usr/local/pg/lib or whatever path where pg libs are Bernd Eidenschink wrote: > Hi, > > I'm trying to compile it: > > I just started with a simple > gmake NAVISERVER=... > > In file included from nsdbpg.c:37: > dbpg.h:44:22: error: libpq-fe.h: File or directory not found > > And when I copy > libpq-fe.h > postgres_ext.h > into the directory it finally breaks with that: > > gcc -pipe -shared -nostartfiles -L../naviserver/lib -o nsdbpg.so nsdbpg.o > tclcmds.o -lnsdb -lpq -L/home/dev/development/naviserver/lib -ltcl8.4 > -lnsthread -lnsd -Wl,--export-dynamic -lz -lgcc_s > -Wl,-rpath,../naviserver/lib > /usr/lib/gcc/i586-suse-linux/4.0.2/../../../../i586-suse-linux/bin/ld: cannot > find -lpq > collect2: ld returned 1 exit status > gmake: *** [nsdbpg.so] Fehler 1 > > Bernd. > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > |
From: Bernd E. <eid...@we...> - 2006-03-21 09:02:50
|
Hi, I'm trying to compile it: I just started with a simple gmake NAVISERVER=... In file included from nsdbpg.c:37: dbpg.h:44:22: error: libpq-fe.h: File or directory not found And when I copy libpq-fe.h postgres_ext.h into the directory it finally breaks with that: gcc -pipe -shared -nostartfiles -L../naviserver/lib -o nsdbpg.so nsdbpg.o tclcmds.o -lnsdb -lpq -L/home/dev/development/naviserver/lib -ltcl8.4 -lnsthread -lnsd -Wl,--export-dynamic -lz -lgcc_s -Wl,-rpath,../naviserver/lib /usr/lib/gcc/i586-suse-linux/4.0.2/../../../../i586-suse-linux/bin/ld: cannot find -lpq collect2: ld returned 1 exit status gmake: *** [nsdbpg.so] Fehler 1 Bernd. |
From: Stephen D. <sd...@gm...> - 2006-03-20 18:10:56
|
On 3/20/06, Andrew Piskorski <at...@pi...> wrote: > On Mon, Mar 20, 2006 at 10:02:22AM -0700, Stephen Deasey wrote: > > It does in include the ACS code, i.e. the ns_pg commands and bind > > variable support, it just doesn't use the FOR_ACS_USE flag. These > > features are always enabled. > > Oh, good. That silly FOR_ACS_USE flag should have been removed years > ago, it's good that someone finally did it. The ACS commands are split into a separate file, the driver core in the main file. I didn't have time to finish cleaning up the ACS stuff so some of it is still undocumented etc. Some code has been removed, but that was just a side effect of clean up. There seemed to be redundancies. If it doesn't work as expected, I broke it... |
From: Andrew P. <at...@pi...> - 2006-03-20 17:54:20
|
On Mon, Mar 20, 2006 at 10:02:22AM -0700, Stephen Deasey wrote: > It does in include the ACS code, i.e. the ns_pg commands and bind > variable support, it just doesn't use the FOR_ACS_USE flag. These > features are always enabled. Oh, good. That silly FOR_ACS_USE flag should have been removed years ago, it's good that someone finally did it. -- Andrew Piskorski <at...@pi...> http://www.piskorski.com/ |
From: Stephen D. <sd...@gm...> - 2006-03-20 17:02:37
|
It does in include the ACS code, i.e. the ns_pg commands and bind variable support, it just doesn't use the FOR_ACS_USE flag. These features are always enabled. On 3/20/06, Bernd Eidenschink <eid...@we...> wrote: > > Default PG driver for naviserver is nsdbpg now, this one works fine but > > it does not include ACS code > > Thanks Vlad! > |