AOLserver Chat Logs

2007/02/19

IRC [01:13] *** holycow joined the chat.
IRC [03:16] *** holycow parted the chat.
IRC [12:12] *** holycow joined the chat.
IRC [14:41] *** jim joined the chat.
IRC [16:07] *** Dossy parted the chat.
IRC [16:08] *** Dossy joined the chat.
IRC [16:53] <jim> Dossy: you around?
IRC [18:10] <Dossy> hey, what's up?
IRC [19:56] <jim> heya... just got back from bass lesson... still here?
IRC [19:57] <jim> anyways...
IRC [19:57] <Dossy> I'm here.
IRC [19:58] <Dossy> what's up?
IRC [19:58] <jim> except for a few places where I was trying to help someone get the latest nspostgres, I do testing on my own platform...
IRC [19:58] <jim> mainly,
IRC [19:58] <jim> I simply install it and run all the openacs tests
IRC [19:58] <jim> if they pass, I figure there's no problem
IRC [19:58] <jim> but
IRC [19:59] <Dossy> that's a good approach, probably :)
IRC [19:59] <jim> I think I need some help figuring out what to do about the build system
IRC [19:59] <Dossy> yeah.
IRC [19:59] <jim> see
IRC [20:00] <jim> I added this thing about pg's pg_config executable, and so far all I do with that is use it to locate pg's libs and includes
IRC [20:00] <Dossy> right
IRC [20:00] <jim> I pretty much figure I ought to also include pg's link flags if not also the cflags
IRC [20:01] <Dossy> no, that's probably a bad idea
IRC [20:01] <Dossy> what it takes to link pg can be quite different than the way ns*.so modules need to be linked!
IRC [20:01] <Dossy> which is probably why when partymola manually links the "old way" it works just fine.
IRC [20:02] <jim> but whenever he does that he seems to get the old code
IRC [20:02] <jim> and we're trying to find the "old code" he's "getting"
IRC [20:02] <Dossy> old code?
IRC [20:02] <Dossy> well, that's probably some make install failure
IRC [20:02] <jim> before my addition to the error messages
IRC [20:03] <jim> right now, I think make install just copies the module itself
IRC [20:04] <jim> the way I'm determining that, is by having him generate an error message and look at the error message he gets
IRC [20:04] <Dossy> have to make sure it copies the module (nspostgres.so) and the library (libnspostgres.so)
IRC [20:05] <Dossy> also, better check his config.tcl -- make sure it's copying to the right place
IRC [20:05] <Dossy> his config may have a different path than bin/nspostgres.so
IRC [20:05] <Dossy> and his LD_LIBRARY_PATH may be pointing to a different libnspostgres.so
IRC [20:05] <Dossy> There's lots of reasons ...
IRC [20:05] <jim> and so far I never saw him get the additions
IRC [20:06] <jim> btw, what do you think of the extra piece of info I added?
IRC [20:06] <Dossy> I'm not too keen on it.
IRC [20:06] <jim> howcome?
IRC [20:06] <Dossy> but, I don't use nspostgres, so I won't complain :)
IRC [20:06] <Dossy> logging the sql when verbose=false is kinda annoying.
IRC [20:06] <jim> oh, ok
IRC [20:06] <jim> that's no problem
IRC [20:07] <Dossy> like I said, I'd rather the actual nspostgres users speak up about it
IRC [20:07] <jim> I have so far heard exactly silence...
IRC [20:07] <jim> one other thing sorta related
IRC [20:08] <jim> like I said in the beginning, the way I test is using openacs tests, but only on one platform... the one in front of me
IRC [20:08] <jim> there's no compile farms on sf.net anymore I guess... but is there some autobuilder/tester daemons out there?
IRC [20:08] <jim> one that I do know of is debian's
IRC [20:09] <jim> they build on all platforms they support (which are missing some key ones afaik, macos, win, maybe bsd
IRC [20:09] <jim> )
IRC [20:09] <jim> so question is, what do you do about that?
IRC [20:11] <Dossy> :)
IRC [20:11] <Dossy> same as you for now
IRC [20:12] <Dossy> I test what's convenient, and let others test what's important to them.
IRC [20:12] <Dossy> It'd be nice to have a proper QA env. and cycle
IRC [20:12] <Dossy> A small build farm, etc.
IRC [20:12] <Dossy> With VMware/virtualization, it may not even require a lot of hardware.
IRC [20:12] <Dossy> Just volunteered time and interest.
IRC [20:12] <jim> hmm, interesting point
IRC [20:13] <Dossy> Maybe I can assemble a machine here and load it with tons of disk.
IRC [20:13] <jim> and ram
IRC [20:13] <Dossy> And then populate it with a bunch of VMware images.
IRC [20:13] <jim> lots n lotsa ram
IRC [20:13] <Dossy> nah
IRC [20:13] <Dossy> just don't run more than one image at a time
IRC [20:13] <jim> ok
IRC [20:13] <Dossy> speed isn't the biggest issue here
IRC [20:13] <jim> that'll work too
IRC [20:13] <Dossy> start a vmware image, build/test, shut it down
IRC [20:14] <Dossy> the trick will be things like sparc solaris, macosx.
IRC [20:14] <Dossy> and other more arcane hardware/OS'es (S/390, etc.)
IRC [20:14] <jim> you don't need much more than darwin tho, for macos... right?
IRC [20:14] <Dossy> I imagine not.
IRC [20:15] <Dossy> maybe use a macosx for the automated build
IRC [20:15] <Dossy> and run win32, etc. via virtualization from there.
IRC [20:15] <Dossy> and picking up an old sun box can be done for sub-$500
IRC [20:16] <Dossy> (one that's reasonably fast enough to build/run tests in a reasonable amount of time)
IRC [20:16] <jim> ok... so let me make sure I understand which part you
IRC [20:16] <jim> are not too keen on for the logging...
IRC [20:16] <Dossy> it's just a bit ... verbose :)
IRC [20:16] <Dossy> I'm okay with that, if the config says verbose.
IRC [20:16] <jim> well I could pay attention to the berboas flag
IRC [20:16] <jim> err
IRC [20:16] <Dossy> But, normally, it's a lot more verbose than it needs to be.
IRC [20:16] <jim> :)
IRC [20:16] <Dossy> :)
IRC [20:16] <Dossy> yeah.
IRC [20:17] <jim> here's another thing that's loosely related
IRC [20:18] <jim> I was talking to the tcl folks the other day about return values for tcl funcs written in C
IRC [20:18] <jim> we have this maxim about tcl: "everything is a string"
IRC [20:18] <jim> but that changed once tcl went to major-8
IRC [20:19] <jim> now that maxim reads, "everything -behaves like- a string"
IRC [20:19] <jim> what I was considering, is changing one at a time so it would take and return objects
IRC [20:20] <jim> the thing about returning an object on error, is that the object could look at the verbose and other flags
IRC [20:21] <jim> and I was told that it's possible to do one function at a time, and it wouldn't require, for example, the entire aolserver module architecture to have to be rebuilt so it handles objects instead of strings
IRC [20:22] <jim> so I was thinking of doing like one function from nspg like that, and see if it passes muster (meaning passes all openacs tests, for one)
IRC [20:23] <jim> and if that flew, do the rest of the functions that way
IRC [20:24] <jim> thoughts?
IRC [20:25] <jim> "WHY is he doing all these experimental frankensteinizatition to my aolserver!!!"
IRC [20:27] <jim> to complete a thought from above, "everything behaves like a string" would mean that an object returned from a tcl func is stringified any time it's needed to be, so things -should- operate exactly the same
IRC [20:29] <jim> it could be that some things would be faster, for example normally a string that's a list fed into a Tcl_CmdProc has to be parsed back into a list (guessing here)... whereas a Tcl_ObjCmdProc receives the list directly
IRC [20:53] *** holycow parted the chat.
IRC [21:01] <Dossy> defining object types in Tcl is somewhat cumbersome
IRC [21:01] <Dossy> and, those object types generally don't survive shimmering, etc.
IRC [21:20] <jim> so you're saying that once they're stringified, the object part is dropped?
IRC [21:20] <Dossy> right
IRC [21:20] <Dossy> which will lead to strange or subtle bugs :)
IRC [21:20] <jim> involving reclaiming storage &etc?
IRC [21:22] <jim> also, specifically, what you're saying is that when a func that returns an object is called by a func that only takes a string, that's when the object part is dropped?
IRC [21:22] <Dossy> not necessarily.
IRC [21:22] <Dossy> it's when the object is shimmered--string to list rep, etc.
IRC [21:22] <jim> ahh, I see
IRC [21:25] <jim> so, a func calling an obj-returner that doesn't necessarily take objects might ask for the string rep, and that does -not- drop the object? it's dropped when a string to something conversion (called a shimmer) happens?
IRC [21:25] <jim> or, you're saying the subtle/strange bugs show up at these points?
IRC [21:26] <jim> I'll have to become more familiar with the object form and what happens in these cases
IRC [21:26] <jim> but this is the kind of thing I'm pretty good at...
IRC [21:26] <jim> after all,
IRC [21:26] <jim> I'm the sf.net/project/perl-aol author :)
IRC [21:27] <jim> err,
IRC [21:27] <jim> I'm the sf.net/projects/perl-aol author :)
IRC [21:28] <jim> there, that link works
IRC [22:01] <Dossy> heh. ouch.
IRC [22:01] * Dossy shivers.
IRC [22:02] <jim> yeah, well... it does work now, as far as I took it
IRC [22:02] <jim> that ownership instance var in every object type I defined did the trick
IRC [22:07] <Dossy> heh
IRC [22:08] <jim> before that I was getting weird crashes... certain aolserver data structures get handed to you, and you're not supposed to write or especially try to free
IRC [22:08] <jim> and things would go out of scope... and get reclaimed... -BOOM-
IRC [22:11] <jim> so I redesigned the objects to have this ownership var, which was a boolean that meant if false: "Hey Perl! you DON'T own that slab of ram this data structure is hooked to,,, so DON
IRC [22:11] <jim> T free it"
IRC [22:12] <jim> then after that, once I looked really hard at the ref count code, I got it all right, and it flew
IRC [23:23] <jim> or floed
IRC [23:25] <jim> or something :) in any case, I was able to get it to do queries across aolserver's db api, get results back, iterate over them, etc