Does anyone know how to get this email sent to whereever it's supposed to be sent?
On 4/20/11 10:33 AM, "Dirk Eddelbuettel" <e...@debian.org> wrote: > > On 20 April 2011 at 10:20, Sean Robert McGuffee wrote: > | > | > | Hi, thanks! > | > | >On 4/20/11 10:03 AM, "Steve Lianoglou" <mailinglist.honey...@gmail.com> > wrote: > | > Hi, > | > > | > On Wed, Apr 20, 2011 at 9:49 AM, Sean Robert McGuffee > | > <sean.mcguf...@gmail.com> wrote: > | >> Hi, I have a quick couple of questions about some of the documentation on > | >> the web page: > | >> > http://cran.r-project.org/doc/manuals/R-exts.html#Linking-GUIs-and-other-fron > | >> t_002dends-to-R > | >> under the heading: > | >> 5.6 Interfacing C++ code > | >> > | >> Question 1: > | >> If I¹m at a terminal, I can type the instructions they suggest: > | >> R CMD SHLIB X.cc X_main.cc > | >> If I wanted a package to do this, how would I tell the package to do that > | >> same thing? > | > > | > Just to make sure we're all on the same page, you want an R package to > | > compile some source code into a shared library/dll from inside R? > | > > | > Not sure if there's a "baked in" way for that to happen, but maybe you > | > can invoke `R CMD WHATEVER` from inside R using the `system` function: > | > > | > R> ?system > | > > | > | ok, so where in the package would I put the system call in the package to > | have it run when installing the package? > > You don't. As I said, 'R CMD INSTALL' et all do that. > > Download an existing package with source, install it. Study its sources, > study the 'Writing R Extensions' manual. Ask on r-devel. > > Basic R questions are off-topic here. > > | >> Would I use the same command and just include it in a file somewhere in > the > | >> package? > | >> If so, which file? > | > > | > Hmm ... I'm curious what you're trying to do, exactly? > | > | I'm trying to figure out how take commands such as " R CMD SHLIB X.cc > | X_main.cc" followed by "dyn.load(paste("X", .Platform$dynlib.ext, sep = > | ""))," which are commands I can get to work for myself as a human > | interactively, and put the commands into a package to be automatically run > | when installing the package. I mean, it's great if I can compile a c++ file > | and then use it inside R, but I'm only doing that so I can let other people > | do that via a package. As much as I read this documentation, I keep missing > > Again, I like working from an existing, working package. As I said, there are > almost 1000 to pick from. > > Please direct follow-ups that have no bearing on Rcpp to r-devel. > > Dirk > > | the connections between the different sections. This is a section I am > | loving because it works very well. Thus, I want to figure out how to take > | the baby steps I'm doing and combine them into a package. Specifically, I > | want to take these two commands and insert them into a package so that these > | commands will compile my code and make a dynamic ".so" file where R can > | access its functions when others install my package. > | > | > > | >> Question 2: > | >> dyn.load(paste("X", .Platform$dynlib.ext, sep = "")) > | >> > | >> Where does .Platform$dynlib.ext come from? > | >> What does it mean? > | >> What do it¹s components .Platform and $dynlib and .ext mean? > | > > | > .Platform is lust a normal list -- it is defined internally (I guess). > | > You can access "named" elements of a list with `$`. > | > > | > .Platform$dynlyb (or .Platform[['dynlib']]) tells you the extension > | > your particular system uses for shared libraries: > | > > | > R> .Platform > | > $OS.type > | > [1] "unix" > | > > | > $file.sep > | > [1] "/" > | > > | > $dynlib.ext > | > [1] ".so" > | > > | > $GUI > | > [1] "X11" > | > > | > $endian > | > [1] "little" > | > > | > $pkgType > | > [1] "mac.binary.leopard" > | > > | > $path.sep > | > [1] ":" > | > > | > $r_arch > | > [1] "x86_64" > | > > | > See ?.Platform for more help. > | > | Ah, thanks, that clarifies exactly what .Platform$dynlib.ext is, it's ".so" > | on my system. > | > | This, the dyn.load(paste("X", .Platform$dynlib.ext, sep = "")) is equivalent > | to the command dyn.load("X.so) which now makes sense in that context! > | > | > | _______________________________________________ > | 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 _______________________________________________ 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