IRC Log Viewer » #firebreath » 2010-09-10

IRC Nick Time (GMT-7) Message
taxilian 09:09 sweet… the mac changes in amackera's branch merged without any conflicts into my shared_ptr refactor! =]
that was weird
my irc client went all wacko on me
amackera 09:09 Pidgin?
taxilian 09:09 lol
no, adium
similar, though
so your changes merged into my shared_ptr branch with no conflicts
amackera 09:09 nice :D
taxilian 09:09 of course, I haven't built it on mac and fixed the mac specific stuff yet
but I was worried about that
amackera 09:09 I'm just testing the shared_ptr changes on mac right now
hmm 70 failures...
taxilian 09:09 yeah, there will be a few
give me about 10 minutes
and it will be less
I forgot to remove #include "AutoPtr.h" from places =]
then it will just be mac specific code
amackera 09:09 Yeah that's exactly it
taxilian 09:09 that needs to be changed from the AutoPtr stuff
so I'm fixing that right now
and merging in your changes
shouldn't take long
amackera 09:09 Whoa variant.h is serious business
taxilian 09:09 lol
have you never looked at variant.h?
it's magical =]
amackera 09:09 I don't understand it, but it does magical things
taxilian 09:09 lol
it's not as bad as it looks at first
it takes some time to understand
I didn't write it, I just stole it and modified it =]
but you have to admit; it works very well for what we do =]
amackera 09:09 it certainly does
taxilian 09:09 ok, pull down from my branch again
it builds on windows
I make no other promises at this time =]
but it has your changes in it as well now
amackera 09:09 cool :)
taxilian 09:09 I plan to dig into the mac crash w/ utf8 stuff this afternoon
but if you find anything on it before then, I wouldn't complain ;-)
amackera 09:09 Ahh quite a few build errors with my Cocoa stuff, I used AutoPtr there a bit
I'll fix it up
taxilian 09:09 ok
let me know if you have any problems
otherwise I'll look at it later today
I have to make sure I get my homework done before my class where it is due =]
amackera 09:09 Hahah, yes of course
taxilian 09:09 I appreciate your help; I have a small window in which I can work exclusively on the framework itself before I'll start working on an actual plugin
during that time, any help I can get to do as much as possible is appreciated =]
amackera 09:09 Sure, no problem :)
Somehow, a miracle occured, and it looks like I actually might pull our plugin together in time
It works on FFox & Chrome in windows, FFox, Chrome and Safari in Mac
Does what we want (albeit with a few crashes and ugliness here and there)
taxilian 09:09 congrats =]
amackera 09:09 Now my largest concerns are optimization and coming up with decent installers (and testing on as many systems as possible)
taxilian 09:09 maybe some of these fixes will fix your crashes
amackera 09:09 I'm sure they will :)
people helping people, it's a beautiful thing
taxilian 09:09 yeah
but this is really good, because I need them fixed too
and so does everyone else
amackera 09:09 My roommate and I were talking last night about Firebreath and you and Facebook and such
taxilian 09:09 the next thing I'm going to implement is the "onload" param tag
it has been and is the most fun thing I've done
you know there are 90 people on the mailing list now?
not neccesarily all receiving email
amackera 09:09 It's a pretty high traffic project!
taxilian 09:09 for what it is
I have it set up on google analytics
what was really funny was the day it showed up on; 4000 hits that day :-P
amackera 10:09 Not bad at all!
taxilian 10:09 yeah; we usually have between 50 and 150; average is around 70, I think
amackera 10:09 You know, I'm really quite glad that I've gotten a chance to learn about plugin development
taxilian 10:09 it's a really fun niche; not many people understand it
you probably know plugin dev better than 99% of the developers in the world
amackera 10:09 haha yeah
taxilian 10:09 and it's really strange to me that many probably consider me an "expert" in the field; I keep learning new things about it every time I sit down and play with it
amackera 10:09 I can be very frustrating to dig through old or bad documentation, but then once your understand it that understanding is so much more complete
taxilian 10:09 yeah
amackera 10:09 On an unrelated note, it's hillarious that cdiggins modelled his varient class on what he calls the "Static Function Pointer Table Polymorphism Pattern (SFPTPP)"
taxilian 10:09 lol
that class is one of the most impressive uses of templates that I have ever seen
so you're getting the AutoPtr stuff in your cocoa stuff?
amackera 10:09 Yep
taxilian 10:09 ok; I'll focus on fbgen and the unit tests for a few minutes
(I'm waiting for a response on something, can't do homework 'til I get it)
amackera 10:09 Hehe I was just going to remind you to do your homework :P
taxilian 10:09 oh, I will
though this is much more fun
I think this autoptr stuff will give us a significant stability increase
hoping it may fix the issue antiix and kalev were seeing, but that will take some work to confirm
I think their issue may have been related to some issues with reference counting that I encountered
amackera 10:09 On the plugin side? I thought it was a FFox issue
taxilian 10:09 it might be
but I doubt it
because it doesn't seem to affect other plugins I've worked on
that used the same technique
also, if it were a ffox issue, why does it only happen when we are involved?
amackera 10:09 You know that's a very goo point
good point* :P
taxilian 10:09 yeah, I thought so =]
and my experience is that when weird things like that are happening, usually it's something getting freed early
or a concurrency issue
this should hopefully fix both
amackera 10:09 Was FB::AutoPtr something we rolled ourselves?
taxilian 10:09 yeah
back before I knew better
and when I was still trying to avoid a dependency on boost
it used very basic embedded reference counting
well, gotta run now. take care
amackera 10:09 ttyl!
taxilian 11:09 fortunately, I was mostly done with my homework already
amackera 11:09 nice!
man boost::shared_ptr is pretty damn cool
taxilian 11:09 I agree
do you have it building?
grr. one thing I like about github that google code doesn't seem to have is that you can give other people commit access on your fork
amackera 11:09 Aw lame :(
taxilian 11:09 yeah
amackera 11:09 It's not quite building, some random errors
taxilian 11:09 hmm. if you can get it to me, I bet I can fix them pretty easy
I'm guessing you're having the same errors nikita reported
amackera 11:09 I can mail you the cmake output
taxilian 11:09 pastebin it
amackera 11:09
That work?
taxilian 11:09 yeah; these are the same problem nikita reported on the list
probably gcc being pickier
can you push your changes up somewhere and I'll fix them?
amackera 11:09 Sure
I'll just make a new clone I suppose
taxilian 11:09 :-/
don't want to push things to the trunk until it builds and works
amackera 11:09 yeah
taxilian 11:09 cool, thanks
amackera 11:09 np
taxilian 11:09 so after fixing and testing this, do you consider us ready for 1.2? (oh, and after fixing the wstring_to_utf8 prob)
taxilian 11:09 hmm. this is really a strange error
it's not what I thought it was
taxilian 11:09 I had to change the *order* in which the functions appeared to fix the issue...
no, wait, that didn't work either
the compiler was just being funny
amackera 11:09 I think we need to change the mac prep script, and I also need to figure out a better way to do FactoryMacMain
sorry not the prep script
taxilian 11:09 right
I expected that
yeah, I'm not sure what the best way to do FactoryMacMain is :-/
but remember; it's better to have something that is not ideal but works than to deliberate all day and have nothing
amackera 11:09 yes, very true
taxilian 11:09 any idea what this could mean? /Users/rbateman/code/taxilian-sharedptr/src/NpapiPlugin/NPJavascriptObject.cpp:153: error: no matching function for call to 'FB::JSAPI::setDefaultEventMethod(std::string&, FB::JSObject (&)())'
/Users/rbateman/code/taxilian-sharedptr/src/ScriptingCore/JSAPI.h:96: note: candidates are: virtual void FB::JSAPI::setDefaultEventMethod(const std::string&, FB::JSObject)
/Users/rbateman/code/taxilian-sharedptr/src/ScriptingCore/JSAPI.h:97: note: virtual void FB::JSAPI::setDefaultEventMethod(const std::wstring&, FB::JSObject)
the FB::JSObject (&)() is confusing me
don't know what xcode means by that
amackera 11:09 the (&)()?
taxilian 11:09 yeah
amackera 11:09 hmm
taxilian 11:09 but maybe I found it… I'm getting another error now
that is completely bizarre
found that part
amackera 11:09 what's the problem?
taxilian 11:09 FB::JSObject nullEvent()
instead of FB::JSObject nullEvent;
now it compiles, but does not link
missing _objc_msgSend
and similar
amackera 11:09 oh noes!
can you push the changes for me to look at the error?
taxilian 11:09 yeah, they are in my taxilian-sharedptr clone
amackera 11:09 k thx
taxilian 11:09 at least we're making progress =]
taxilian 12:09 well, I think I will go get some lunch before my 1pm class (in an hour). anson: good luck. I think that should be most of the way there, at least
if you can confirm that the utf8 thing is still there, I'll look at it when I get back
amackera 12:09 okay, i'll see what i come up with
taxilian 12:09 thanks
amackera 12:09 have fun at class, learn a lot :)
taxilian 12:09 hehe. in my intro to algorithms class? I'll try
taxilian 12:09 amackera: is it fixed yet?
amackera 12:09 uhh nope :P
working on it
taxilian 12:09 hehe
did you notice that I fixed it so that it doesn't generate projects for a plugin project that doesn't have a mac/ directory?
amackera 12:09
or the CMake?
taxilian 12:09 cmake
amackera 12:09 hmm i hadn't noticed, but nice work!
It seems like all of my errors are in ScriptingCoreTest/ and NpapiPluginTest/
taxilian 12:09 I can fix those errors
just make sure FBTestPlugin builds
or are those the ones causing hte problme
I understand
link errors… in those
yeah, that's a problem
amackera 12:09 They are compile errors, not linker errors
Looks like in getNPVariantParams() and freeNPVariantParams() they take an NPapiBrowserHost* as their first argument
Not NpapiBrowserHostPtr?
But I'm also not getting any errors that mention Mac specific code, are you still able to get them?
taxilian 12:09 almost everything should use NpapiBrowserHostPtr
I probably haven't updated those things
have you pushed?
I still get them in my branch
amackera 12:09 Nope, I checked out a clean copy of your branch, compiled
Didn't make any fixes to it
taxilian 12:09 hmm
let me try regening the project
amackera 12:09 but I'm also not getting to the link stage, so maybe they linker errors are there, I'm just not seeing them because of compilation fails due to other errors
taxilian 12:09 build just FBTestPlugin
change the target
amackera 12:09 Oh of course, good call
taxilian 12:09 if it's compile errors due to my changs, I can fix that
the link errors get me, though
since I bet you've addressed them already
amackera 12:09 To set up just compiling FBTestPlugin i would examples/FBTestPlugin, right?
taxilian 12:09 you don't even need to do that
the same xcodeproject
you already have it
in the build window
top left
says "Debug | ..."
click there, then select FBTestPlugin in the middle area
just set it as the active target
amackera 12:09 Ohh I'm not in xcode right now :P
Right right
I was using cmake --build buildex/
taxilian 12:09 oh
that makes sense =]
I don't know how to do it that way, though I'm sure there is a way =]
in general, though, that's good, since that means you always build the unit tests =]
amackera 12:09 i think it's cmake --build buildex --target FBTestPlugin
taxilian 12:09 oh, probably =]
amackera 12:09 ok I've got the linker errors now :) i'll fix this asap
taxilian 12:09 gotta go to school
amackera 12:09 ok ttyl :)
Ahh I think I've figured it out
Hadn't tested this permutation of EventModel/Drawing model (Cocoa/CoreGraphics)
it's a good thing this was caught
taxilian 13:09 yeah; I've found a few things through this last couple of days that should have been caught sooner
amackera 13:09 Hah, I actually mispelled the function name
taxilian 13:09 lol
let me know when the fix is committed
I'm busy fixing the param input stuff now
the only feature I implemented in firebreath and then never tested :-P
and yet, one of the more critical ones
amackera 13:09 That will actually be really really useful
with that you could tell the plugin to negotiate window/windowless
instead of at compile-time
i think that's how flash does it
taxilian 13:09 yeah
silverlight as well
amackera 13:09 Down to one linker error...
taxilian 13:09 huzzah! =]
amackera 13:09 Alright! no more linker errors
so you said I can't push my changes to your branch, right? i'll jus push it to mine in the mean time
Okay pushed :)
taxilian 13:09 ok
it is now in my branch
can you reproduce that crash still?
hmm. so if people hate me a lot for making a small breaking change, how much more do they hate me for each breaking change I add, do you think? I'm considering reworking the lifecycle of PluginCore to be a little more clear =]
amackera 13:09 Go for it man
If they disapprove of the changes they can always just use a tagged release
kalev 13:09 yeah, I'm all for better code too
amackera 13:09 taxilian: Facebook seems slow today, crack the whips on them monkeys!
taxilian: Still getting the crash on the test plugin, mac os x 10.6 safari, firefox, chrome
hey are we logging the irc room? we should, just for fun
taxilian 15:09 I am logging it, yes
I am always in the room, even when I'm not connected
I get a log when I sign in of what happened while I was out
amackera 15:09 So all that mean stuff we say about you when you're logged gets delivered!? oh noes!
taxilian 15:09 hehe
only if you see me in the channel
hmm. I'm home, but I have to run back to school because aparently I dropped my wallet
I'm glad someone was honest enough to return it… it has $100 in it
amackera 15:09 wow!
taxilian 17:09 interesting; sometimes I get kicked off the server randomly
taxilian 18:09 Woohoo! We finally have both working param tags (firefox and ie windows tested) and working param name="onload" tags to specify a startup callback
in taxilian-sharedptr
amackera 18:09 sweet!
taxilian 18:09 I'd say it's one of the most needed features
wasn't all that hard
just had to find time to do it
lol. check out the change packages for the last 24 hours:
amackera 18:09 haha
i like the 3 branches all twisting around
taxilian 18:09 I got done and discovered somehow I had 3 heads
so I had to merge them all
amackera 18:09 haha
taxilian 18:09 I cannot figure out why I am getting this error
and it is really vexing me
taxilian-sharedptr/src/ScriptingCoreTest/jscallback_test.h:35: error: request for member ‘get’ in ‘backing’, which is of non-class type ‘boost::shared_ptr<TestObjectJSAPIAuto> ()(TestObjectJSAPIAuto)’
amackera 18:09 whoa
taxilian 18:09 wait, figured it out
it's another templates giving me weird error messages problem
combined with me being an idiot
bad combination, really
amackera 18:09 lol
templates seem to give the most cryptic error message
taxilian 18:09 yeah
taxilian 19:09 unit tests are wonderful things
these are catching lots of little bugs that we wouldn't have seen easily
amackera 19:09 it's certainly something that i know nothing about about and need to learn
taxilian 19:09 there are a great many things that unit tests do not do
it is important to realize that, because some people get so focussed on them that they don't do tests that *do* what they need
however, in well-written code, you can do a lot of very effective unit testing and save yourself a ton of time
hmm. I might have to have georg fix this one; these templates are baffling me
amackera 19:09 georg seems like a really hard core guy
taxilian 19:09 he gets this template stuff in a way that I do not
some of the best features that FireBreath has are thanks to him
it's too bad he never gets on IRC =] he used to be on gtalk all the time, but lately he's been even busier than I am
amackera 19:09 ahh i was just going to ask
i hadn't seen him post to the list for a while either
makes sense if he's crazy busy
taxilian 19:09 he posted today, actually
criticizing some of my code =]\
amackera 19:09 Yeah I saw that lol
taxilian 19:09 he does have a point
I'm just trying to decide if I care enough to change it
amackera 19:09 Finally got boost to link with my project in windows
I'm trying to limit my time in visual studio as much as possible
it's makes my VM chug
taxilian 20:09 hehe
yeah, I know that feeling
I just discovered that the unit tests for NPAPI and ActiveX have been building as libraries
which means that they haven't been getting run
ActiveX are running
just not NPAPI
good grief
amackera 20:09
taxilian 20:09 incidently, next Thursday is the 1 year birthday for FireBreath as a project
amackera 20:09 no kidding!
taxilian 20:09
I posted that the day I started
amackera 20:09 come a long way in a year
taxilian 20:09 it sure has
I really ought to sit down and write up a "A year in the life of an open source project" blog post
amackera 20:09 That would be cool :)
taxilian 20:09 it would be neat to see someone else write some FireBreath related blog posts too
but maybe someday =]
I can't believe that these NPAPI unit tests have been sitting around useless all year
amackera 20:09 lol
taxilian 20:09 well, since January
amackera 20:09 think of how much more awesome we'll be once they are doing real testing :P
taxilian 20:09 lol
it will at least help
so in the unit tests, the utf8 stuff does fine
could you grab the latest and see if the fixes I've made for unit tests in other areas fixed it?
it's a long shot, but I was really hoping to catch the problem in a unit test
amackera 20:09 sure
should i pull from your clone?
taxilian 20:09 yes
amackera 21:09 damn this machine is dog slow with a VM running win7
taxilian 21:09 lol
I know that feeling
this one is too
and it's got 8gb of ram
and a 3ghz 2 core proc
amackera 21:09 :O
mine's got 4gb
taxilian 21:09 this one is facebook's computer =]
amackera 21:09 niiice
taxilian 21:09 of course, mine is the same, just only 2.8ghz… :-P
I purchased it specifically to work on FireBreath
when I was originally hired to build it
the first paycheck payed for the computer… :-P
amackera 21:09 Right tool for the job :D
taxilian 21:09 yep
it's been more than worth it
not just for the computer
I've gotten more work from FireBreath than from anything else
including 2 of my last 4 full-time-ish jobs
amackera 21:09 I read today that zuck said they aren't going to take facebook public anytime soon
which makes sense, they don't really need to
taxilian 21:09 zuck?
makes sense
amackera 21:09 That IPO (whenever it happens) is going to be huge
Like bigger than Google huge
taxilian 21:09 yeah, could be
too bad I'm just a contract employee =]
darn school
amackera 21:09 haha
just drop out and enroll in standford or berkley over in cali :P
taxilian 21:09 lol
I have absolutely no desire to move to CA
I like it where I am
besides; cost of living there? 85% higher than here. average salary? 35% higher
amackera 21:09 haha yeah
when i lived there the cali gov't literally stole money from me
well... i guess not stole..
taxilian 21:09 but close enough
amackera 21:09 i was supposed to get taxes back or whatever, and they just decided to not do it
like "oops, sorry everybody, we f*cked up. you're money's ours now."
taxilian 21:09 lol
I'm not real impressed with a lot of things the CA government does
amackera 21:09 aw :( crash still happens
taxilian 21:09 hmm
you're sure it's the utf8 stuff?
amackera 21:09 this is different now..
going to pastebin the dump
taxilian 21:09 ok
amackera 21:09 just waiting for chrome...
taxilian 21:09 thanks
grr. I'm so close on this tonight… tomorrow I have to do schoolwork all day
amackera 21:09
taxilian 21:09 hmm
amackera 21:09 oh noes
a bug in my codez
that's mac stuff :(
taxilian 21:09 hehe. you think this one is yours?
that would make my life easier… ;-)
amackera 21:09 Well it's happening in mac related shared pointer code
taxilian 21:09 if I can just get the NPAPI unit tests building on windows, I'll take a look at it
I have ScriptingCore unit tests working on mac now
amackera 21:09 nice :D
taxilian 21:09 hmm. actually, for now I'll settle for no crashes
I'll have to rework some of this
btw, thanks for the "turn off lazy load symbols" trick; that fixed all my debugging problems
that should go on the wiki somewhere
amackera 21:09 Haha yeah, I have no idea what that's enable by default
Looks like the crash is happening inside boost code
taxilian 21:09 well, if it wasn't, you might accidently get stopped at some breakpoint somewhere
amackera 21:09 The last FB code that gets touched is in BrowserHostWrapper.h:63
"return shared_from_this();"
taxilian 21:09 is "this" clean?
amackera 21:09 Value = 0xf19ef3
taxilian 21:09 ok, let me get set up on mac
amackera 21:09 Hmm
what does shared_ptr() do?
I must be using it wrong
taxilian 21:09 where?
amackera 21:09 In NpapiPlugin.cpp:27
taxilian 21:09 in that case
it returns a shared_ptr<BrowserHostWrapper> for that object
but that's different than using shared_ptr by itself
that's a method
amackera 21:09 That should be fine, then, no?
taxilian 21:09 yes
amackera 21:09 Hmm..
taxilian 21:09 ok, I've reproduced it
just need to catch it in the debugger
amackera 21:09 Mine dies in boost::detail::atomic_conditional_incrememnt
taxilian 21:09 hmm
that's because use_count_ is borked
amackera 21:09 null?
taxilian 21:09 no, null would be okay
it's some random value
I wonder if the browserhost isn't getting created correctly somehow
amackera 21:09 hmm
the NPP instance seems valid
taxilian 21:09 yeah
it all looks okay
it's good when we createBrowserHost
but somehow by the time we call _getNpapiPlugin, it's messed up
is there a watch window somewhere that I can put custom things in?
wait, found it
amackera 21:09 okay :)
taxilian 21:09 well, no I guess I didn't
I can tell it to watch something, but then I never see it anywhere
amackera 21:09 the only thing i know of is the "expressions window"
taxilian 21:09 ok, it pops up and alerts me when it changes
that would work
where is that?
amackera 21:09 right click on whatever expression and add it to the expression window
might not be what your after though
i think if it's out of scope is stops caring
taxilian 21:09 whys it have to be so hard, then?
I'll try that
wow… this is really weird
amackera 21:09 i hesitate to say this, but could it be a bug in boost?
taxilian 21:09 it is possible
but I'm not quite ready to suspect that
it's been a long time since we updated boost in firebreath
but I think it's more fundamental somewhere
on line 133 of NpapiPluginModule_NPP the values are good
but when you step into that function, they are not
amackera 21:09 whoa
taxilian 21:09 yeah
there has to be a simple reason why
but I don't know what it is
amackera 22:09 I need to head home, going to be working all weekend though
Don't neglect your homework because of this bug :P
taxilian 22:09 ok; I'm not quite ready to give up on this. I'll drop you an email to let you know where I'm at =]
amackera 22:09 Yeah please so
ttyl, don't stay up too late :)