Help Logs Database

Undernet  |  EFnet  |  Quakenet  |  Freenode  |  Ircnet  |  Dalnet
Page: 1 2 3

<compnerd> ecoffey: was wondering if you already had an idea for how you want to expose the Gaim API
<compnerd> ecoffey: or if not, if you want to discuss one possible way
<ecoffey> what grim (one of the devs) suggested was having a bunch of xml files and autogening the c# cl***es out of that
<Paco-Paco> why xml?
<compnerd> Paco-Paco: because you can attach metadata to the mthods, and thus be able to enable/disable as you go
<ecoffey> Paco-Paco: *shrug* it doesn't really matter what we use; the point is to not have to maintain a crapton of c# files, and to generate some of the goofy syntax things that are going to happen
<Paco-Paco> compnerd: oh, xml is the only way to attach metadata?
<Paco-Paco> too many people have only one hammer :-P
<compnerd> Paco-Paco: naw, but its the easiest
<ecoffey> the other half of this is writing the glue code so that the rest of gaim knows whats happening in plugins and vice-versa, and then plugging that glue code into the mono runtime
<Paco-Paco> I don't follow
<Paco-Paco> Gaim shouldn't have to know anything about plugins, it should communicate generically via signals
<ecoffey> Paco-Paco: oh; well like if a plugin prints into a conversation or something like that
<Paco-Paco> right, so C# wrappers for teh C api
<ecoffey> yeah yeah
<ecoffey> but thats where it gets tricky
<ecoffey> right now when a signal (one of the two signals currently in the api) fires, the loader figures out what "objects" the callback expects (GaimBuddy, GaimConversation, etc); the loader creates a .net object from that c struct, and then p***es in the object to the .net callback
<compnerd> hmm...
<Paco-Paco> yeah, that's what Tcl does, as well
<Paco-Paco> and it's ugly as hell
<ecoffey> but that .net callback needs to be able to modify the original c struct, which would be wrapped up in methods and properties, but at some point it'll hit c glue code again to do that
<ecoffey> yes
<ecoffey> yes it is
<Paco-Paco> particularly because you have no idea when those underlying objects might die or disappear
<Paco-Paco> and so allowing the plugin to keep handles to them violates people's expectations for a "safe" language
<ecoffey> yeah
<ecoffey> but its something we (i) need to implement somehow :-)
<Paco-Paco> yeah
<Paco-Paco> in Tcl I validate what structures I can
<Paco-Paco> often by walking a list of them, etc.
<Paco-Paco> accounts and buddies can be verified that way
<ecoffey> yeah
<ecoffey> if gaim was gobjectified then i could just set a handler on it when it gets destroyed, but alas it is not
<Paco-Paco> yeah
<compnerd> hmm...out of curiosity, why is it not?
<ecoffey> it just ain't, although one of the devs is working on it
<Paco-Paco> it predates gobjects
<ecoffey> that too ;-)
<Paco-Paco> gobjectification isn't always sufficient for Tcl, unfortunately
<Paco-Paco> due to "shimmering"
<ecoffey> shimmering?
<compnerd> Paco-Paco: "shimmering"?
<Paco-Paco> (objects can be flashed back and forth from a native representation of some sort ot a string which can be turned back into that object)
<compnerd> interesting
<ecoffey> crazy go nuts
<compnerd> sorta like serialization ?
<Paco-Paco> so you have to release the gobject or whatever when it's turned into a string
<Paco-Paco> and then re-find or acquire or create it or whatever when you go back
<Paco-Paco> it's a form of serialization, sure
<Paco-Paco> although it's often not useful as a serialization; it can't always be communicated or stored persistently or etc.
<compnerd> ah
<Paco-Paco> that depends entirely on the object in question, of course
<ecoffey> oh i see how you validate accounts and buddies and such in tcl
<ecoffey> the other thing is that the mono runtime spawns a few of its own threads at init, and i'm not 100% sure how they operate, as in does the c api block when you invoke a method and stuff like that
<KingAnt> Hmm, why is our silc PRPL called "libsilcgaim.so"?
<ecoffey> so modifying the c struct from the managed code, might cause a race condition; ick
<nosnilmot> KingAnt: to avoid it conflicting with silc-toolkit's own libsilc
<KingAnt> Ah, ok
<KingAnt> nosnilmot: I just tried building some Gaim 2.0.0 CVS RPMs and got the following error: File not found: /var/tmp/gaim-2.0.0cvs-root/usr/lib/libgaimperl.so
<nosnilmot> hmm. I'm actually working on the spec file at the moment, I'll take a look at that too
<KingAnt> nosnilmot: Looks like libgaimperl.so is now in /var/tmp/gaim-2.0.0cvs-root/usr/lib/gaim/
<KingAnt> nosnilmot: Oh ok. I just added --with bonjour? I bet that's going to conflict with everything you're doing
<nosnilmot> hah, I was adding '--with howl' :)
<KingAnt> Ok, cool
<KingAnt> So it won't conflict
<KingAnt> We'll just add them both
<KingAnt> (Yes, I'm joking)
<KingAnt> nosnilmot: You go ahead and do that, I'm sure you'll do a better job than I will
<nosnilmot> there was some talk of possibly supporting avahi too at some point, I thought if we had --with howl we could later add --with avahi too, either of which would produce a gaim-bonjour package
<KingAnt> That makes sense
<KingAnt> We should definitely support Avahi at some point. It doesn't matter to me if we continue support Howl, as well
<Paco-Paco> I love coffee
<grim> http://code.reaperworld.com/gaim/somethings_wrong_here.jpg
<grim> i'd like to know how that happened..
<Paco-Paco> what, how the window borders got so huge?
<grim> no look all my accounts are online..
<_Caleb_> thats happened to me
<grim> and my buddy list is completely empty and missing the handle in the bar
<Paco-Paco> everyone blocked you
<grim> Paco-Paco: that doesn't explain the widget problem :P
<Paco-Paco> picky picky
<_Caleb_> you know how you hit the arrow to hide users in a group?
<_Caleb_> well i did that and then went to show offline users
<_Caleb_> and when i went back to hide em the list went blank
<grim> well everyone is "offline"
<nosnilmot> do they actually show up if you display offline buddies, or are they totally failing to display? (I've seen some times when some buddies totally fail to display)
<_Caleb_> they display
<_Caleb_> but when i goto hide em the list goes blank
<grim> nosnilmot: yeah
<_Caleb_> but thats only if i hide the users in a group
<nosnilmot> grim: "yeah" ? to which
<grim> nosnilmot: yeah to turning on show offline buddies displays buddies that should already be showing
<nosnilmot> oh. do they display as offline (dimmed) buddies, or as online?
<grim> online
<nosnilmot> freaky odd
<grim> yeah
<grim> but i need to update and rebuild anyways..
<nosnilmot> the behavior of gaim_account_is_connected() has changed subtley, I do wonder if buddy_is_displayable() should be using !gaim_account_is_disconnected() instead
<marv> how do you guys get so much more done than me lately?
<grim> nosnilmot: well showing empty groups isn't showing those either..
<grim> they don't show until i show offline buddies
<nosnilmot> right - I'm a little concerned that all users of gaim_account_is_connected weren't carefully examined when that function changed from meaning 'account is not disconnected' to 'account is fully connected'
<grim> ah
<sadrul> iirc, i submitted #1243569 to fix this
<nosnilmot> iirc, you submitted the original patch that changed the behavior of gaim_account_is_connected too... :-P
<sadrul> yeah, and that one got committed, but not this one
<kffkcuicu> can't wait for gaim-vv (gaim 2.0.0) :\
<Alver> Too bad
<Alver> You'll have to :)
<kffkcuicu> i will
<kffkcuicu> 3.3gb left on the harddrive, not enough for a windows os
<sadrul> there's concern that -vv may not make it in gaim 2.0.0
<ecoffey> grim: you know how we discussed only having the mono runtime active when a plugin loaded? well mono definitely doesn't want to play nice on this issue...
<grim> ecoffey: heh, well i take a look at making that happen in a bit, but i'd be curious to see what you tried
<ecoffey> grim: i created a ml_init, and ml_uninit that started and stopped the runtime (and kept track of it running); so when i probe a plugin i call ml_init and when i'm done a i close the ***embly and call ml_uninit; that works for the first plugin i probe, but when i try to probe a second one the runtime freaks out, tells me that it a code section it shouldn't have, and aborts
<ecoffey> :-D
<Paco-Paco> can the monotone runtime be stopped and restarted?
<ecoffey> i'm beginning to think that it can't
<Paco-Paco> it may be intended to be started once and left running
<ecoffey> yeah it seems like to me...
<ecoffey> so the compromise might be to just keep ***emblies closed until a plugin is loaded
<Paco-Paco> are plugins loaded into individual sandboxes?
<Paco-Paco> (they should be)
<grim> ecoffey: well that can wait i'd like to see a bit more stability first anyways :)
<Paco-Paco> if so, I'd start the runtime once, and create and destroy sandboxes as needed
<ecoffey> grim: yeah; i was just bored ;-)
<grim> heh
<ecoffey> Paco-Paco: mono has a "domain", and you can load any number of ***emblies into that domain
<ecoffey> and when you init the runtime it returns out a domain
<ecoffey> grim: is it still freaking out on your side? 'cause it's all happy over here...
<grim> ecoffey: well i'm running my main instance with your latest patch..
<grim> although i really do not like that mono is handling our sigsegv, although i don't currently see a way around that..
<ecoffey> yeah; it doesn't support signal chaining or whatever
<ecoffey> and i'm not proficient enough to provide a patch ;-)
<Paco-Paco> most things don't
<Paco-Paco> because many platforms have historically not
<[set]> is -vv out?
<kffkcuicu> no :(
<kffkcuicu> wish it was
<ecoffey> well kids i'm off to food
<[set]> im 17 , im not a kid anymore
<[set]> my hearts been beating for 17 years
<Paco-Paco> haha
<[set]> has anyone bought sean's book?
<[set]> i will get my hands on it soon sometime
<charkins> [set]: i picked up a copy
<seanegan> I've got, like, a bunch.
<[set]> send some , that 'll be great :) hahaha


Return to gaim
or
Go to some related logs:

football
windowsxp
beginner
poker
rock
politics

Copyright © 2005 www.irclogs.ws. All rights reserved. » disclaimer » contact