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

IRC Nick Time (GMT-7) Message
amackera 06:09 Hey all!
nitrogenycs 07:09 helloho!
taxilian 08:09 morning
taxilian 11:09 cygmatic, amackera: go to http://build.firebreath.org and create an account
that way you can see what is going on if an automated build fails
cygmatic 11:09 taxilian, i can't get past the captcha
taxilian 11:09 huh
okay, I'll create you an account
and you can change the wd
pwd
hmm
'xcept I can't log in on that page
that's weird
maybe I'll have to set it up differently
I'll get back to you =]
cygmatic 11:09 sure, no problem
taxilian 11:09 FYI, I'm adding #pragma once before every #ifndef
it seems to help the speed on windows quite a bit, and it has been undeprecated on gcc 4.2
cygmatic 11:09 if it really helps thats great
btw, anyone here having done any extended binary size profiling?
... and reduction?
taxilian 12:09 nope
so should optional libs be attached to the project or to the solution?
i.e. should it be built specific to the project, which would allow project-specific configuration using pluginconfig.cmake
or one copy built for all plugins, like ScriptingCore?
cygmatic 12:09 ideally one version should be built for any needed configuration
if that's possible
otherwise probably per project - for users with only one project it doesn't make any difference, for those with multiple projects it would be limiting otherwise
taxilian 12:09 so basically we need to support both types
cygmatic 12:09 why, can't that be done transparently in CMake somehow?
taxilian 12:09 maybe it can; I just don't know how =]
I need some way to deal with dependencies in the cmake stuff
for example, I'm pulling in a web server from Facebook
it depends on several boost libraries that we don't have yet
so I'm pulling those in too
I would like to be able to just say "include HTTPService" in pluginConfig and have it pull in not only the HTTPService project, but anything that project depends on
cygmatic 12:09 sounds like functions might do it?
or is there a robust include mechanism?
taxilian 12:09 I really don't know
that's what I'm trying to figure out
perhaps there is a way I can check to see if a project is already out there somewhere, if not then load it
or maybe including the same project from multiple places doesn't cause problems? I think it does, though
amackera 12:09 Evidently I am a robot, I can't solve the captcha on the hudson account creation page
I have tried probably 10 times in a row
cygmatic 12:09 join the mecha club ;)
i couldn't solve it either
amackera 12:09 #FAIL
cygmatic 12:09 hm, maybe it is a trick question? only robots would not give up?
taxilian 13:09 yeah, I think that hudson is throwing a hissy fit because I'm forwarding to it through a proxy
when I access it directly it works
so I'll probably have to set up port forwarding for 8080 and access it directly
so actually boost filesystem is pretty lightweight
at least, it doesn't have many files =]
taxilian 13:09 cygmatic, amackera: try creating an account again
I was able to defeat the captcha this time =]
cygmatic 13:09 yay, so did i
taxilian 13:09 what username did you use?
cygmatic 13:09 georg.fritzsche
taxilian 13:09 you should have access now
amackera 13:09 it worked
i didn't even have to create an account
it must have been going through before
taxilian 13:09 what username?
you're sure you're logged in?
amackera 13:09 oh wait, nvm
success! username: amackera
taxilian 13:09 ok, you should have access now
reload
amackera 13:09 cool :D
taxilian 13:09 you probably don't really need to access this often
but if you ever want to verify that something builds on all platforms, this is here
the _dev ones are dev, obviously, and the _trunk ones areā€¦ well, you get the idea
don't build fb_release, please =]
amackera 13:09 ok
taxilian 13:09 also the nightly builds will post files to the gcode site any time they are run, so be carefully running them
cygmatic 13:09 nice :)
taxilian 13:09 I figured it's not that hard to give you guys access to this
and then if you need to make sure that things still build on all systems, you can
also if a build fails, it will email the firebreath-scm mailing list
with a link that will require a login to see
amackera 13:09 ahh
i see
taxilian 13:09 I should probably add onto this something that will use fbgen to create a new project and build it
to keep us from forgetting to update the fbgen projects after changing things
taxilian 15:09 I have pulled in filesystem, system, serialization, and system; I am about to do datetime
any other boost compiles libs I should pull in as optional while I'm at it?
I just had an epifany that will help me clean up a lot of weirdness in the cmake stuff
cygmatic 15:09 now i'm curious ;)
regex maybe?
taxilian 15:09 well, it doesn't work how I thought it did
but from what I am seeing, I shoudl not have added the "PROJECT" line on quite a few of the directories
so I need to find some way to detect if a library is already defined or not
for example, if nothing uses boost_regex, I don't want to install it
to include it, I mean
taxilian 15:09 think I may have found a way
ahh, there is an if (TARGET <targetname>)
taxilian 16:09 cygmatic: I have thread, system, smart_ptr, serialization, regex, filesystem, and date_time; are there any other boost libraries that I should add while I'm doing this?
cygmatic 16:09 taxilian, nothing that comes to mind
taxilian 16:09 I may grab iostreams and math just to be complete
possibly signals
so the syntax is add_boost_library(filesystem)
and it will include the project if it hasn't been included
I will probably also add a link_boost_library(target, libname) that will add and link it
cygmatic 16:09 sounds neat
how will that react to external boost though?
taxilian 16:09 ahh, yes, I need to make sure I add that check
if external boost is defined, I will simply not do anything =]
in those functions
actually
there is a better way
find_package(Boost, COMPONENTS thread REQUIRED)
I can do that
taxilian 17:09 cygmatic: if a function call is literally empty, will it get optimized out?
when doing a release build?
cygmatic 17:09 if the definition is visible, most definitely with todays compilers
only way to be completely sure is to check though
taxilian 17:09 just trying to figure out how I can work in logging in such a way that if boost::log is included, it will just use it
but otherwise will have no real effect
since I now have all the dependencies of boost.log
cygmatic 17:09 so you don't like to use macros?
taxilian 17:09 I might still do that
http://boost-log.sourceforge.net/libs/log/doc/html/log/tutorial/trivial_filtering.html
but the way these macros work might be difficult still
also, the problem with macros is that if logging is project specific, you can't use it in ScriptingCore
cygmatic 17:09 #if defined(FB_HAVE_BOOST_LOG)\n#define FB_LOG(lvl, expr) BOOST_LOG_...(lvl) << expr\n#else\n#define FB_LOG(a,b) \n#endif
what would be the problem there?
taxilian 17:09 yeah, but when is FB_HAVE_BOOST_LOG defined?
cygmatic 17:09 ah, i see
taxilian 17:09 and where?
cygmatic 17:09 so you want to go through a log component that is built accordingly
don't use polymorphism and hope link-time optimization strips it?
taxilian 17:09 yeah, I'm thinking that won't work
cygmatic 17:09 what?
taxilian 17:09 well
I guess link-time optimization may strip it
you're right
yeah, I guess that's basically what I'm hoping to do, yes
though I would prefer something polymorphic
if it were possible
cygmatic 17:09 much harder to get right, even if it is supported (no idea really)
well, i am off to bed
taxilian 20:09 kalev: are you there?
taxilian 21:09 well, I've learned new things about cmake scopes =]
taxilian 22:09 FireBreath 1.2.2 is released