Thanks all for the crash course - it works great! I just cobbled up a simple "reload" function. This has been a long-standing pet peeve of mine -- anything that makes me leave the R shell is distracting. I've tested it and it seems to work just fine. Are there any non-obvious downsides here?
reload = function(pkgname, preload=TRUE) { ## load it if (preload) { library(pkgname, character.only = TRUE) } libs <- dir(paste(.path.package(pkgname), '/libs', sep=''), full.names=TRUE) for (lib in libs) { dyn.unload(lib) dyn.load(lib) } return() } best, Christian On Wed, Jan 19, 2011 at 8:01 AM, Dirk Eddelbuettel <e...@debian.org> wrote: > > On 19 January 2011 at 08:43, Douglas Bates wrote: > | > | 2) Is there a simple way to include debugging symbols/keep values from > | > | getting optimized out when building with Rcpp? > | > > | > You could always include -g and then strip what you don't need -- which is > | > what Debian and Ubuntu do to give you the *-dbg packages. > | > > | > R sits on top of Makefile logic, and make is pretty powerful language. > You > | > can (literally) do just about anything.... Setting CFGLAGS / CXXFLAGS or > | > their PKG_* variants is probably easiest. > | > | Or create a file $HOME/.R/Makevars and define CXXFLAGS and CFLAGS in > | there. I have the following contents > | > | CFLAGS= -g -pipe -std=gnu99 -Wall -pedantic > | CFLAGS= -g -O3 -pipe -std=gnu99 -Wall -pedantic > | CXXFLAGS= -g -pipe -Wall -pedantic > | CXXFLAGS= -g -pipe -std=c++0x -Wall -pedantic > | CXXFLAGS= -g -O3 -pipe -Wall -pedantic > | CXXFLAGS= -g -O3 -pipe -std=c++0x -Wall -pedantic > | > | and comment out the trailing lines if I want to suppress the c++0x > | standard or the optimization when using the debugger. > > Seconded. > > That is actually what I do, including the better-than-awesome ccache: > > edd@max:~$ cat .R/Makevars > # edd 03 Mar 2009 > > ## for C code > CFLAGS=-g -O3 -Wall -pipe -pedantic -std=gnu99 > #CFLAGS=-O3 -g0 -Wall -pipe -std=gnu99 > ## for C++ code > CXXFLAGS= -g -O3 -Wall -pipe -pedantic -Wno-variadic-macros > #CXXFLAGS= -g0 -O3 -Wall -pipe -Wno-variadic-macros > #CXXFLAGS= -O3 -g0 -Wall -pipe > ## for Fortran code > #FFLAGS=-g -O3 -Wall -pipe > FFLAGS=-O3 -g0 -Wall -pipe > ## for Fortran 95 code > #FCFLAGS=-g -O3 -Wall -pipe > FCFLAGS=-O3 -g0 -Wall -pipe > > CC=ccache gcc > CXX=ccache g++ > FC=ccache gfortran > F77=ccache gfortran > MAKE=make -j4 > edd@max:~$ > > > The -Wno-variadic-macros was once needed when Romain was a tad more > aggressive in trying new C++0x features. > > The 'make -j4' also takes care of parallel builds. > > Dirk > > -- > Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com > -- A man, a plan, a cat, a ham, a yak, a yam, a hat, a canal – Panama! _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel