Hi -- I've just started reading the deal.II source in the last few days, and I'm really impressed with the elegance of your approach and coding style!
I've invested a little time setting up my environment with the hopes that it will help me progress more quickly as I proceed. My toolset is currently osX, Xcode4, Intel compiler 12, and I've managed to set things up so that it's fairly easy for me to create a xcode project for each of the tutorial steps, build the sample and step through the code in the debugger -- including stepping into the main deal.ii source if like. So this feels like a good starting point and now I can happily proceed to learning things. (Though the combination of tools above presented enough moving parts that it definitely took a bit of jumping through hoops and few work arounds -- I'll post about that separately) Still -- there are a few things about my environment that are suboptimal, and I'm curious what sort of environment others in the deal.II community use. In particular, I'm curious if anyone has a setup that provides the following features: 1) interactive debugging -- locals/watch window, easy ability to move up and down the stack frame 2) template / object hierarchy savvy code navigation -- being able to keyboard short cut easily to a class declaration, method declaration, method implementation, subclasses, find all usages of a method/field 3) template savvy code completion when calling methods (by 'template savvy', I mean the the IDE can do all of these things for templated classes -- which of course seems fairly hard, given compilers can have a hard enough time even compiling something like boost) My current setup does fine with 1, but is definitely lacking in 2 and 3. So for instance, as I browse though the code, I might find myself wondering "HyperShellBoundary doesn't need to know it's inner and outer radius -- how does that work?" Starting up a debug session is kind of slow, and in this case, it's not so obvious where the boundary is being used anyway. xcode is smart enough to jump to the header file where the class is declared, but not smart enough to find the implementation (the debug libraries have symbols, so stepping through the code leads me to the implementation, of course) I can add the full deal.II source tree to my project (but not part of any target, so it does not get compiled) and then from there a 'find in project', though somewhat clunky, gets me to the implementation file -- but because of templating artifacts, searching for the method leads me to CylinderBoundary, ConeBoundary, etc before I finally see how the magic works, all the time having to double check that I'm not accidentally looking at code for HalfHyperShellBoundary. I find 'Semantic Navigation' greatly speeds up the process of learning other people's code, but I've never found an environment that did this well for templated c++ -- but then I have never really tried looking either. I'm not wedded to any particular os or IDE and I'm happy to use your build system, or nor do I really need particular details of how to set everything up -- I really just want to know if some of the experienced developers have any strong opinions about this -- e.g. emacs with such and such packages is the _absolute_ best way to write deal.II code, or perhaps Eclipse, or perhaps there is just nothing out there that can do all of this. Thanks for any advice and thoughts -- best, nehal _______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
