From noreply at r-forge.r-project.org Wed Oct 2 05:04:38 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 2 Oct 2013 05:04:38 +0200 (CEST) Subject: [Rcpp-commits] r4553 - in pkg/Rcpp: . inst inst/include/Rcpp/api/meat Message-ID: <20131002030438.99A08185C26@r-forge.r-project.org> Author: edd Date: 2013-10-02 05:04:36 +0200 (Wed, 02 Oct 2013) New Revision: 4553 Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/DESCRIPTION pkg/Rcpp/inst/NEWS.Rd pkg/Rcpp/inst/THANKS pkg/Rcpp/inst/include/Rcpp/api/meat/is.h Log: applied patch by Thomas Tse to provide missing is() for Character(Vector|Matrix) Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-09-30 01:05:25 UTC (rev 4552) +++ pkg/Rcpp/ChangeLog 2013-10-02 03:04:36 UTC (rev 4553) @@ -1,3 +1,10 @@ +2013-10-01 Dirk Eddelbuettel + + * inst/include/Rcpp/api/meat/is.h: Applied patch by Thomas Tse to + provide missing Character(Vector|Matrix) + + * DESCRIPTION: Bump to development release 0.10.5.1 + 2013-09-28 Dirk Eddelbuettel * DESCRIPTION: Release 0.10.5 Modified: pkg/Rcpp/DESCRIPTION =================================================================== --- pkg/Rcpp/DESCRIPTION 2013-09-30 01:05:25 UTC (rev 4552) +++ pkg/Rcpp/DESCRIPTION 2013-10-02 03:04:36 UTC (rev 4553) @@ -1,6 +1,6 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 0.10.5 +Version: 0.10.5.1 Date: $Date$ Author: Dirk Eddelbuettel and Romain Francois, with contributions by Douglas Bates, John Chambers and JJ Allaire Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-09-30 01:05:25 UTC (rev 4552) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-02 03:04:36 UTC (rev 4553) @@ -2,6 +2,17 @@ \title{News for Package 'Rcpp'} \newcommand{\cpkg}{\href{http://CRAN.R-project.org/package=#1}{\pkg{#1}}} +\section{Changes in Rcpp version 0.10.5.1 (2013-10-01)}{ + \itemize{ + \item Changes in Rcpp API: + \itemize{ + \item Two missing \code{is<>()} templates for + \code{CharacterVector} and \code{CharacterMatrix} have been added + thanks to Thomas Tse. + } + } +} + \section{Changes in Rcpp version 0.10.5 (2013-09-28)}{ \itemize{ \item Changes in R code: Modified: pkg/Rcpp/inst/THANKS =================================================================== --- pkg/Rcpp/inst/THANKS 2013-09-30 01:05:25 UTC (rev 4552) +++ pkg/Rcpp/inst/THANKS 2013-10-02 03:04:36 UTC (rev 4553) @@ -25,6 +25,7 @@ Oleg Sklyar for the incredibly cool inline package Alexey Stukalov for a support enabling Intel Compiler 12.0 support Luke Tierney for helpful discussions on R internals +Thomas Tse for a patch filling in two missing is() instances Simon Urbanek for help on OS X build issues and with R internals Ken Williams for additional OS X testing Jelmer Ypma for contributing the Rcout iostreams class patch Modified: pkg/Rcpp/inst/include/Rcpp/api/meat/is.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/api/meat/is.h 2013-09-30 01:05:25 UTC (rev 4552) +++ pkg/Rcpp/inst/include/Rcpp/api/meat/is.h 2013-10-02 03:04:36 UTC (rev 4553) @@ -50,7 +50,12 @@ template <> inline bool is__simple( SEXP x ){ return is_atomic(x) && TYPEOF(x) == STRSXP ; } - + template <> inline bool is__simple(SEXP x) { + return TYPEOF(x) == STRSXP; + } + template <> inline bool is__simple(SEXP x) { + return TYPEOF(x) == STRSXP && is_matrix(x); + } template <> inline bool is__simple( SEXP x ){ return true ; } From noreply at r-forge.r-project.org Thu Oct 3 01:43:24 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Thu, 3 Oct 2013 01:43:24 +0200 (CEST) Subject: [Rcpp-commits] r4554 - in pkg/Rcpp: . inst inst/include/Rcpp/traits Message-ID: <20131002234325.09A14185EFA@r-forge.r-project.org> Author: edd Date: 2013-10-03 01:43:24 +0200 (Thu, 03 Oct 2013) New Revision: 4554 Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/inst/NEWS.Rd pkg/Rcpp/inst/THANKS pkg/Rcpp/inst/include/Rcpp/traits/is_na.h Log: some is.na() fixes also thanks to Thomas Tse Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-02 03:04:36 UTC (rev 4553) +++ pkg/Rcpp/ChangeLog 2013-10-02 23:43:24 UTC (rev 4554) @@ -1,3 +1,7 @@ +2013-10-02 Dirk Eddelbuettel + + * inst/include/Rcpp/traits/is_na.h: More fixes thanks to Thomas Tse + 2013-10-01 Dirk Eddelbuettel * inst/include/Rcpp/api/meat/is.h: Applied patch by Thomas Tse to Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-02 03:04:36 UTC (rev 4553) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-02 23:43:24 UTC (rev 4554) @@ -2,13 +2,13 @@ \title{News for Package 'Rcpp'} \newcommand{\cpkg}{\href{http://CRAN.R-project.org/package=#1}{\pkg{#1}}} -\section{Changes in Rcpp version 0.10.5.1 (2013-10-01)}{ +\section{Changes in Rcpp version 0.10.5.1 (2013-10-02)}{ \itemize{ \item Changes in Rcpp API: \itemize{ \item Two missing \code{is<>()} templates for - \code{CharacterVector} and \code{CharacterMatrix} have been added - thanks to Thomas Tse. + \code{CharacterVector} and \code{CharacterMatrix} have been added, + and tests for \code{is.na()} have been corrected thanks to Thomas Tse. } } } Modified: pkg/Rcpp/inst/THANKS =================================================================== --- pkg/Rcpp/inst/THANKS 2013-10-02 03:04:36 UTC (rev 4553) +++ pkg/Rcpp/inst/THANKS 2013-10-02 23:43:24 UTC (rev 4554) @@ -25,7 +25,7 @@ Oleg Sklyar for the incredibly cool inline package Alexey Stukalov for a support enabling Intel Compiler 12.0 support Luke Tierney for helpful discussions on R internals -Thomas Tse for a patch filling in two missing is() instances +Thomas Tse for several patches with small corrections Simon Urbanek for help on OS X build issues and with R internals Ken Williams for additional OS X testing Jelmer Ypma for contributing the Rcout iostreams class patch Modified: pkg/Rcpp/inst/include/Rcpp/traits/is_na.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/traits/is_na.h 2013-10-02 03:04:36 UTC (rev 4553) +++ pkg/Rcpp/inst/include/Rcpp/traits/is_na.h 2013-10-02 23:43:24 UTC (rev 4554) @@ -1,4 +1,4 @@ -// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*- +// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // is_na.h: Rcpp R/C++ interface class library -- vector operators // @@ -23,36 +23,41 @@ #define Rcpp__traits_is_na_h namespace Rcpp{ -namespace traits{ - - // default to always false, applies to VECSXP, EXPRSXP and RAWSXP - template - bool is_na( typename storage_type::type ){ - return false ; - } - - template <> - inline bool is_na( int x ){ - return x == NA_INTEGER ; - } - - template <> - inline bool is_na( double x ){ - return R_IsNA(x) ; - } - - template <> - inline bool is_na( Rcomplex x ){ - return R_IsNA(x.r) || R_IsNA(x.i) ; - } - - template <> - inline bool is_na( SEXP x ){ return x == NA_STRING ; } - - template <> - inline bool is_na( int x ){ return x == NA_LOGICAL ; } - + + namespace traits{ + + // default to always false, applies to VECSXP, EXPRSXP and RAWSXP + template + bool is_na(typename storage_type::type) { + return false; + } + + template <> + inline bool is_na(int x) { + return x == NA_INTEGER; + } + + template <> + inline bool is_na(double x) { + return R_IsNA(x) || R_IsNaN(x); + } + + template <> + inline bool is_na(Rcomplex x) { + return R_IsNA(x.r) || R_IsNA(x.i) || R_IsNaN(x.r) || R_IsNaN(x.i); + } + + template <> + inline bool is_na(SEXP x) { + return false; // see rcpp-devel on 2013-10-02; was: x == NA_STRING; + } + + template <> + inline bool is_na(int x) { + return x == NA_LOGICAL; + } + + } } -} #endif From noreply at r-forge.r-project.org Thu Oct 3 14:00:23 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Thu, 3 Oct 2013 14:00:23 +0200 (CEST) Subject: [Rcpp-commits] r4555 - in pkg/Rcpp/inst: . include/Rcpp/traits Message-ID: <20131003120023.9B455185736@r-forge.r-project.org> Author: edd Date: 2013-10-03 14:00:23 +0200 (Thu, 03 Oct 2013) New Revision: 4555 Modified: pkg/Rcpp/inst/NEWS.Rd pkg/Rcpp/inst/include/Rcpp/traits/is_finite.h pkg/Rcpp/inst/include/Rcpp/traits/is_na.h Log: corrected where Thomas's small patch is applied Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-02 23:43:24 UTC (rev 4554) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-03 12:00:23 UTC (rev 4555) @@ -8,7 +8,8 @@ \itemize{ \item Two missing \code{is<>()} templates for \code{CharacterVector} and \code{CharacterMatrix} have been added, - and tests for \code{is.na()} have been corrected thanks to Thomas Tse. + and some tests for \code{is_na()} and \code{is_finite()} have been + corrected thanks to Thomas Tse. } } } Modified: pkg/Rcpp/inst/include/Rcpp/traits/is_finite.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/traits/is_finite.h 2013-10-02 23:43:24 UTC (rev 4554) +++ pkg/Rcpp/inst/include/Rcpp/traits/is_finite.h 2013-10-03 12:00:23 UTC (rev 4555) @@ -1,4 +1,4 @@ -// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*- +// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- // // is_finite.h: Rcpp R/C++ interface class library -- is finite // @@ -23,33 +23,38 @@ #define Rcpp__traits_is_finite_h namespace Rcpp{ -namespace traits{ - - // default for complex, - template - bool is_finite( typename storage_type::type) ; - - template <> - inline bool is_finite( int x ){ - return x != NA_INTEGER ; - } - - template <> - inline bool is_finite( double x ){ - return R_finite(x) ; - } - - template <> - inline bool is_finite( Rcomplex x ){ - return !( !R_finite(x.r) || !R_finite(x.i) ); - } - - template <> - inline bool is_finite( SEXP x ){ return x != NA_STRING ; } - - template <> - inline bool is_finite( int x ){ return x != NA_LOGICAL ; } - + + namespace traits{ + + // default for complex, + template + bool is_finite( typename storage_type::type); + + template <> + inline bool is_finite(int x){ + return x != NA_INTEGER; + } + + template <> + inline bool is_finite(double x) { + return R_finite(x); + } + + template <> + inline bool is_finite(Rcomplex x) { + return !( !R_finite(x.r) || !R_finite(x.i) ); + } + + template <> + inline bool is_finite(SEXP x) { + return false; // see rcpp-devel on 2013-10-02; was: x != NA_STRING; + } + + template <> + inline bool is_finite(int x) { + return x != NA_LOGICAL; + } + } } Modified: pkg/Rcpp/inst/include/Rcpp/traits/is_na.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/traits/is_na.h 2013-10-02 23:43:24 UTC (rev 4554) +++ pkg/Rcpp/inst/include/Rcpp/traits/is_na.h 2013-10-03 12:00:23 UTC (rev 4555) @@ -49,7 +49,7 @@ template <> inline bool is_na(SEXP x) { - return false; // see rcpp-devel on 2013-10-02; was: x == NA_STRING; + return x == NA_STRING; } template <> From noreply at r-forge.r-project.org Thu Oct 3 18:34:50 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Thu, 3 Oct 2013 18:34:50 +0200 (CEST) Subject: [Rcpp-commits] r4556 - in pkg/Rcpp: . R man Message-ID: <20131003163450.6BC421851A3@r-forge.r-project.org> Author: jmc Date: 2013-10-03 18:34:49 +0200 (Thu, 03 Oct 2013) New Revision: 4556 Added: pkg/Rcpp/R/classModule.R pkg/Rcpp/man/classModule.Rd Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/NAMESPACE pkg/Rcpp/R/RcppClass.R pkg/Rcpp/R/loadModule.R pkg/Rcpp/man/setRcppClass.Rd Log: New classModule() function, its documentation and small related changes to setRcppClass and loadModule Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-03 12:00:23 UTC (rev 4555) +++ pkg/Rcpp/ChangeLog 2013-10-03 16:34:49 UTC (rev 4556) @@ -1,3 +1,12 @@ +2013-10-03 John M Chambers + + * R/classModule.R: new function to write module file for class + * man/classModule.Rd: documentation for new function classModule() + * NAMESPACE: export classModule + * R/loadModule.R: clean up an error message + * R/RcppClass.R: defaults for module consistent w. classModule() + * man/setRcppClass.Rd: add defaults, explain need for saveAs + 2013-10-02 Dirk Eddelbuettel * inst/include/Rcpp/traits/is_na.h: More fixes thanks to Thomas Tse Modified: pkg/Rcpp/NAMESPACE =================================================================== --- pkg/Rcpp/NAMESPACE 2013-10-03 12:00:23 UTC (rev 4555) +++ pkg/Rcpp/NAMESPACE 2013-10-03 16:34:49 UTC (rev 4556) @@ -20,6 +20,7 @@ setRcppClass, loadRcppClass, loadModule, + classModule, cppFunction, evalCpp, sourceCpp, Modified: pkg/Rcpp/R/RcppClass.R =================================================================== --- pkg/Rcpp/R/RcppClass.R 2013-10-03 12:00:23 UTC (rev 4555) +++ pkg/Rcpp/R/RcppClass.R 2013-10-03 16:34:49 UTC (rev 4556) @@ -37,7 +37,7 @@ } loadRcppClass <- function(Class, CppClass = Class, - module, + module = paste0("class_",Class), fields = character(), contains = character(), methods = list(), @@ -51,22 +51,15 @@ assign(saveAs, value, envir = where) return(value) } - if(!missing(module)) { - mod <- loadModule(module, NULL, env = where, loadNow = TRUE) - storage <- get("storage", envir = as.environment(mod)) - if(exists(CppClass, envir = storage, inherits = FALSE)) { - cppclassinfo <- get(CppClass, envir = storage) - if(!is(cppclassinfo, "C++Class")) - stop(gettextf("Object \"%s\" in module \"%s\" is not a C++ class description", CppClass, module)) - } - else - stop(gettextf("No object \"%s\" in module \"%s\"", CppClass, module)) - } - else { + mod <- loadModule(module, NULL, env = where, loadNow = TRUE) + storage <- get("storage", envir = as.environment(mod)) + if(exists(CppClass, envir = storage, inherits = FALSE)) { + cppclassinfo <- get(CppClass, envir = storage) if(!is(cppclassinfo, "C++Class")) - stop("If argument \"module\" is missing, CppClass must be a \"C++Class\" object") - CppClass <- .CppClassName(cppclassinfo) + stop(gettextf("Object \"%s\" in module \"%s\" is not a C++ class description", CppClass, module)) } + else + stop(gettextf("No object \"%s\" in module \"%s\"", CppClass, module)) allmethods <- .makeCppMethods(methods, cppclassinfo, where) allfields <- .makeCppFields(fields, cppclassinfo, where) value <- setRefClass(Class, fields = allfields, @@ -155,9 +148,10 @@ cat("Field \"", fi, "\":\n", sep = "") methods::show(field(fi)) } - } - ) + }, + objectPointer = function() + .CppObject$.pointer + ) -## Added: pkg/Rcpp/R/classModule.R =================================================================== --- pkg/Rcpp/R/classModule.R (rev 0) +++ pkg/Rcpp/R/classModule.R 2013-10-03 16:34:49 UTC (rev 4556) @@ -0,0 +1,197 @@ +.stdHeader <- c( + "#include ", + "using namespace Rcpp ;" + ) + +.asString <- function(what) if(is.character(what)) what else deparse(what) + +.strings <- function(expr) { + if(is.call(expr) && ! identical(expr[[1]], quote(`::`))) + lapply(as.list(expr)[-1], .strings) + else + .asString(expr) +} + +.specifyItems <- function(what) { + what <- as.list(what) + wn <- allNames(what) + simple <- !nzchar(wn) + ## todo: error checking here that unnamed elements are single strings + wn[simple] <- as.character(what[simple]) + names(what) <- wn + what[simple] <- list(character()) + what +} + +.writeFieldFunction <- function(fldi, typei, CppClass, readOnly, ns, con){ + rootName <- paste0("field_", fldi) + writeLines(sprintf(" %s %s_get(%s *obj) { return obj->%s; }\n", + typei, rootName, CppClass, fldi), con) + value <- "_get" + if(!readOnly) { + writeLines(sprintf(" void %s_set(%s *obj, %s value) { obj->%s = value; }\n", + rootName, CppClass, typei, fldi), con) + value <- c(value, "_set") + } + paste0(ns, "::field_", fldi, value) +} + +.writeMethodFunction <- function(mdi, sigi, CppClass, ns, con) { + mName <- paste0("method_", mdi) + if(length(sigi) < 1) + stop(gettextf("The type signature for method %s for class %s was of length 0: Must at least include the return type", + mdi, CppClass)) + rtnType <- sigi[[1]] + sigi <- sigi[-1] + if(length(sigi)) { + argNames <- paste0("a", seq_along(sigi)) + args <- paste(" ,", paste(sigi, argNames, collapse = ", ")) + } + else argNames <- args <- "" + writeLines(sprintf(" %s %s(%s *obj%s){ return obj->%s(%s); }\n", + rtnType, mName, CppClass, args, mdi, argNames), con) + paste0(ns, "::",mName) +} + +classModule <- function(class, constructors, fields, methods, + file = paste0(CppClass, "Module.cpp"), + header = character(), + module = paste0("class_",class), CppClass = class, + readOnly = character(), rename = character(), + Rfile = TRUE) { + ## some argument checks + ## TODO: checks on constructors, fields, methods + if(length(readOnly)) { + readOnly <- as.character(readOnly) + if(!all(nzchar(readOnly))) + stop("argument readOnly should be a vector of non-empty strings") + } + newnames <- allNames(rename) + if(length(rename)) { + if(!all(sapply(rename, function(x) is.character(x) && length(x) == 1 && nzchar(x)))) + stop("argument rename should be a vector of single, non-empty strings") + if(!all(nzchar(newnames))) + stop("all the elements of argument rename should be non-empty strings") + } + if(is.character(file)) { + ## are we in a package directory? Writable, searchable src subdirectory: + if(file.access("src",3)==0) + cfile <- file.path("src", file) + else + cfile <- file + con <- file(cfile, "w") + on.exit({message(sprintf("Wrote C++ file \"%s\"", cfile)); close(con)}) + } + else + con <- file + ## and for the R code: + if(identical(Rfile, FALSE)) {} + else { + if(identical(Rfile, TRUE)) + Rfile <- sprintf("%sClass.R",class) + if(is.character(Rfile)) { + if(file.access("R",3)==0) # in a package directory + Rfile <- file.path("R", Rfile) + Rcon <- file(Rfile, "w") + msg <- sprintf("Wrote R file \"%s\"",Rfile) + on.exit({message(msg); close(Rcon)}, add = TRUE) + } + else + Rcon <- Rfile + Rfile <- TRUE + } + temp <- tempfile() + mcon <- file(temp, "w") + writeLines(.stdHeader, con) + if(length(header)) + writeLines(header, con) + writeLines(c("", sprintf("RCPP_MODULE(%s) {\n",module), ""), mcon) + writeLines(sprintf(" class_<%s>(\"%s\")\n", CppClass, class), mcon) + + ## the constructors argument defines a list of vectors of types + for( cons in constructors) { + if(length(cons) > 1 || + (length(cons) == 1 && nzchar(cons) && !identical(cons, "void"))) + cons <- paste0("<", paste(cons, collapse = ","),">") + else + cons = "" + writeLines(paste0(" .constructor",cons,"()"),mcon) + } + writeLines("", mcon) + flds <- .specifyItems(fields) + nm <- names(flds) + rdOnly <- nm %in% readOnly + macros <- ifelse(rdOnly, ".field_readonly", ".field") + test <- nm %in% rename + if(any(test)) + nm[test] <- newnames[match(nm[test], newnames)] + ns <- NULL + for(i in seq_along(nm)) { + typei <- flds[[i]] + nmi <- fldi <- nm[[i]] + macroi <- macros[[i]] + if(!length(typei) || identical(typei, "")) ## direct field + writeLines(sprintf(" %s(\"%s\", &%s::%s)", + macroi, nmi, CppClass, fldi), mcon) + else { # create a free function, e.g. for an inherited field + if(is.null(ns)) { # enclose in a namespace + ns <- paste("module",class,"NS", sep = "_") + writeLines(sprintf("\nnamespace %s {\n", ns), + con) + } + fldFuns <- .writeFieldFunction(fldi, typei, CppClass, rdOnly[[i]], ns, con) + if(rdOnly[[i]]) + ## NOTE: string 3rd arg. required by problem w. module parsing 10/3/13 + writeLines(sprintf(" .property(\"%s\", &%s, \"read-only field\")", + nmi, fldFuns[[1]]), mcon) + else + writeLines(sprintf(" .property(\"%s\", &%s, &%s)", + nmi, fldFuns[[1]], fldFuns[[2]]), mcon) + } + } + writeLines("", mcon) + sigs <- .specifyItems(methods) + nm <- mds <- names(sigs) + test <- nm %in% rename + if(any(test)) + nm[test] <- newnames[match(nm[test], newnames)] + for(i in seq_along(nm)) { + sigi <- sigs[[i]] + nmi <- nm[[i]] + mdi <- mds[[i]] + if(!length(sigi) || identical(sigi, "")) # direct method + writeLines(sprintf(" .method(\"%s\", &%s::%s)", + nmi, CppClass, mdi), mcon) + else { # create a free function, e.g. for an inherited method + if(is.null(ns)) { # enclose in a namespace + ns <- paste("module",class,"NS", sep = "_") + writeLines(sprintf("\nnamespace %s {\n", ns), + con) + } + mFun <- .writeMethodFunction(mdi, sigi, CppClass, ns, con) + writeLines(sprintf(" .method(\"%s\", &%s)", + nmi, mFun), mcon) + } + } + + writeLines(" ;\n}", mcon) + close(mcon) + if(!is.null(ns)) + writeLines(sprintf("} // %s", ns), con) # close namespace + writeLines(readLines(file(temp, "r")), con) + if(Rfile) { + if(missing(CppClass)) + CppString <- "" + else + CppString <- paste(",",dQuote(CppClass)) + if(missing(module)) + ModString <- "" + else + ModString <- paste(", module =", dQuote(module)) + writeLines(sprintf("%s <- setRcppClass(\"%s\"%s%s)", + class, class, CppString,ModString), Rcon) + } +} + + + Modified: pkg/Rcpp/R/loadModule.R =================================================================== --- pkg/Rcpp/R/loadModule.R 2013-10-03 12:00:23 UTC (rev 4555) +++ pkg/Rcpp/R/loadModule.R 2013-10-03 16:34:49 UTC (rev 4556) @@ -74,7 +74,7 @@ if(is(loadM, "error")) { if(.botched) return(.DummyModule(module, what)) - stop(gettextf("Unable to load module \"%s\": %s (and not botched session)", + stop(gettextf("Unable to load module \"%s\": %s", as(module, "character"), loadM$message)) } if(!exists(metaName, envir = env, inherits =FALSE)) Added: pkg/Rcpp/man/classModule.Rd =================================================================== --- pkg/Rcpp/man/classModule.Rd (rev 0) +++ pkg/Rcpp/man/classModule.Rd 2013-10-03 16:34:49 UTC (rev 4556) @@ -0,0 +1,205 @@ +\name{classModule} +\alias{classModule} +\title{ +Create an Rcpp Module to Expose a C++ Class in R +} +\description{ +The arguments specify a C++ class and some combination of +constructors, fields and methods to be shared with \R by creating a +corresponding reference class in \R. +The information needed in the call to \code{classModule()} is the +simplest possible in order to create a C++ module for the class; for +example, fields and methods in this class need only be identified by +their name. +Inherited fields and methods can also be included, but more +information is needed. +The function writes a C++ source file, +containing a module definition to expose the class to +\R, plus one line of \R source to create the corresponding reference +class. +} + +\usage{ +classModule(class, constructors = , fields = , methods = , file = , + header = , module = , CppClass = class, readOnly = , rename = , + Rfile = TRUE) +} + +\arguments{ + \item{class}{ +The name of the class in \R. By default, this will be the same as the +name of the class in C++, unless argument \code{CppClass} is supplied. +} + \item{constructors}{ +A list of the signatures for any of the class constructors to be +called from \R. Each element of the list gives the data types in C++ +for the arguments to the corresponding constructor. See Details and +the example. +} + \item{fields, methods}{ +The vector of names for the fields and for the methods to be exposed +in \R. For inherited fields and methods, type information needs to be +supplied; see the section \dQuote{Inherited Fields and Methods}. +} + \item{file}{ +Usually, the name for the file on which to write the C++ code, by default +\code{paste0(CppClass, "Module.cpp")}. +If the current working directory in \R is the top-level +directory for a package, the function writes the file in the +\code{"src"} subdirectory. +Otherwise the file is written in the working directory. + +The argument may also be a connection, already open for writing. + +} + \item{header}{ +Whatever lines of C++ header information are needed to include the +definition of the class. Typically this includes a file from the +package where we are writing the module definition, as in the example below. +} + \item{module}{ +The name for the Rcpp module, by default +\code{paste0("class_",CppClass)}. +} + \item{CppClass}{ +The name for the class in C++. By default and usually, the intended +class name in \R. +} + \item{readOnly}{ +Optional vector of field names. These fields will be created as +read-only in the interface. +} + \item{rename}{ +Optional named character vector, used to name fields or methods +differently in \R from their C++ name. The elements of the vector are +the C++ names and the corresponding elements of \code{names(rename)} +the desired names in \R. So \code{c(.age = "age")} renames the C++ +field or method \code{age} as \code{.age}. +} + \item{Rfile}{ +Controls the writing of a one-line \R command to create the reference +class corresponding to the C++ module information. By default, this +will be a file \code{paste0(class, "Class.R")}. +If the working directory is an \R package source +directory, the file will be written in the \code{R} subdirectory, otherwise in the working directory itself. + +Supplying a character string substitutes that file name for the +default. + +The argument may also be a connection open for +writing or \code{FALSE} to suppress writing the \R source altogether. +} +} + +\details{ +The file created by the call to these functions only depends on the +information in the C++ class supplied. This file is intended to be +part of the C++ source for an \R package. The file only needs to +modified when the information changes, either because the class has +changed or because you want to expose different information to \R. In +that case you can either recall \code{classModule()} or edit the C++ +file created. + +The Rcpp Module mechanism has a number of other optional techniques, +not covered by \code{classModule()}. These should be entered into the +C++ file created. See the \dQuote{rcpp-modules} vignette with the +package for current possibilities. + +For fields and methods specified directly in the C++ class, +the fields and method arguments to \code{classModule()} are character vectors naming the +corresponding members of the class. For module construction, the +data types of directly specified fields and of the arguments for the methods are not +needed. + +For \emph{inherited} fields or methods, data type information is +needed. See the section \dQuote{Inherited Fields and Methods}. + +For exposing class constructors, the module needs to know the +signatures of the constructors to be exposed; each signature is a +character vector of the corresponding C++ data types. + +} + +\section{Inherited Fields and Methods}{ +If the C++ class inherits from one or more other classes, the standard +Rcpp \code{Module} mechanism can not be used to expose inherited +fields or methods. +An indirect mechanism is used, generating free functions in C++ to +expose the inherited members in \R. + +This mechanism requires data type information in the call to +\code{classModule()}. +This is provided by naming the corresponding element of the +\code{fields} or \code{methods} argument with the name of the member. +The actual element of the \code{fields} argument is then the single +data type of the field. + +For the \code{methods} argument the argument will generally need to be +a named list. +The corresponding element of the list is the vector of data types for +the return value and for the arguments, if any, to the method. +For example, if C++ method \code{foo()} took a single argument of type +\code{NumericVector} and returned a value of type \code{long}, the +\code{methods} argument would be \code{list(foo = c("long", + "NumericVector"))}. + +See the second example below. +} +\value{ +Nothing, called for its side effect. +} +\author{ + John Chambers +} +\seealso{ +\code{\link{setRcppClass}}, which must be called from some \R source +in the package. +} +\examples{ +\dontrun{ +### Given the following C++ class, defined in file PopBD.h, +### the call to classModule() shown below will write a file +### src/PopBDModule.cpp containing a corresponding module definition. +### class PopBD { +### public: +### PopBD(void); +### PopBD(NumericVector initBirth, NumericVector initDeath); +### +### std::vector birth; +### std::vector death; +### std::vector lineage; +### std::vector size; +### void evolve(int); +### +### }; +### A file R/PopBDClass.R will be written containing the one line: +### PopBD <- setRcppClass("PopBD") +### +### The call below exposes the lineage and size fields, read-only, +### and the evolve() method. + +classModule("PopBD", + constructors = + list("", c("NumericVector", "NumericVector")), + fields = c("lineage", "size"), + methods = "evolve", + header = '#include "PopBD.h"', + readOnly = c("lineage", "size")) + +### Example with inheritance: the class PopCount inherits from +### the previous class, and adds a method table(). It has the same +### constructors as the previous class. +### To expose the table() method, and the inherited evolve() method and size field: + +classModule("PopCount", + constructors = + list("", c("NumericVector", "NumericVector")), + fields = c(size = "std::vector"), + methods = list("table", evolve = c("void", "int")), + header = '#include "PopCount.h"', + readOnly = "size") +} +} + +\keyword{ programming } +\keyword{ classes } Modified: pkg/Rcpp/man/setRcppClass.Rd =================================================================== --- pkg/Rcpp/man/setRcppClass.Rd 2013-10-03 12:00:23 UTC (rev 4555) +++ pkg/Rcpp/man/setRcppClass.Rd 2013-10-03 16:34:49 UTC (rev 4556) @@ -7,14 +7,15 @@ } \description{ A class is defined that includes the fields and methods of a C++ class -defined, usually in this package. The \R{} class can include new -methods and fields, such as for prototyping new computations for the -C++ class. +defined, usually in this package. For most applications, it is +recommended to call +\code{\link{classModule}()} to write files in the package with a call to \code{setRcppClass()} and the +C++ module code required. See Details. } \usage{ -setRcppClass(Class, CppClass, module, fields = list(), contains = , +setRcppClass(Class, CppClass = , module = , fields = list(), contains = , methods = , saveAs = Class, where = , ...) -loadRcppClass(Class, CppClass, module, fields = character(), +loadRcppClass(Class, CppClass = , module = , fields = character(), contains = character(), methods = , saveAs = Class, where = , ...) } @@ -30,19 +31,30 @@ \item{module}{ The Rcpp module in which the class is defined. The module does not have to be loaded separately; \code{setRcppClass()} will arrange to -load the module. +load the module. By default, \code{"class_"} followed by the C++ class +name. } \item{fields, contains, methods}{ Additional fields, superclasses and method definitions in \R{} that extend the C++ class. These arguments are passed on to \code{\link{setRefClass}()}. -See Details for the implementation of methods. +See Details for recommendations. } \item{saveAs}{ Save a generator object for the class in the package's namespace under this name. By default, the generator object has the name of the class. To avoid saving any generator object, supply this argument as \code{NULL}. + +(This argument is currently needed because the actual class definition +must take place at package load time, to include C++ pointer +information. +Therefore the +value returned by \code{setRcppClass()} when called during package +installation is not the generator object returned by +\code{setRefClass()}. +We may be able to hack +around this problem in the future.) } \item{where}{ The environment in which to save the class definition. By default, From noreply at r-forge.r-project.org Fri Oct 4 04:28:56 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Fri, 4 Oct 2013 04:28:56 +0200 (CEST) Subject: [Rcpp-commits] r4557 - pkg/Rcpp/inst Message-ID: <20131004022856.3BA681854BC@r-forge.r-project.org> Author: edd Date: 2013-10-04 04:28:55 +0200 (Fri, 04 Oct 2013) New Revision: 4557 Modified: pkg/Rcpp/inst/NEWS.Rd Log: NEWS entry for John's new commit Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-03 16:34:49 UTC (rev 4556) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-04 02:28:55 UTC (rev 4557) @@ -4,6 +4,12 @@ \section{Changes in Rcpp version 0.10.5.1 (2013-10-02)}{ \itemize{ + \item Changes in Modules: + \itemize{ + \item New function \code{classModule} which creates a C++ module + for a C++ class, which then results in a corresponding Reference + Class made available at the R level. + } \item Changes in Rcpp API: \itemize{ \item Two missing \code{is<>()} templates for From noreply at r-forge.r-project.org Sun Oct 6 23:54:18 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Sun, 6 Oct 2013 23:54:18 +0200 (CEST) Subject: [Rcpp-commits] r4558 - in pkg/Rcpp: . R man Message-ID: <20131006215419.069EE185668@r-forge.r-project.org> Author: jmc Date: 2013-10-06 23:54:18 +0200 (Sun, 06 Oct 2013) New Revision: 4558 Added: pkg/Rcpp/R/exposeClass.R pkg/Rcpp/man/exposeClass.Rd Removed: pkg/Rcpp/R/classModule.R pkg/Rcpp/man/classModule.Rd Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/NAMESPACE pkg/Rcpp/man/setRcppClass.Rd Log: Rename classModule to exposeClass; recommend it from setRcppClass.Rd Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-04 02:28:55 UTC (rev 4557) +++ pkg/Rcpp/ChangeLog 2013-10-06 21:54:18 UTC (rev 4558) @@ -1,3 +1,12 @@ +2013-10-06 John M Chambers + + * NAMESPACE: change classModule to expose Class + * R/classModule.R: delete + * man/classModule.Rd: delete + * R/exposeClass.R: add + * man/exposeClass.Rd: add + * man/setRcppClass.Rd: update, clarify, recommend exposeClass() + 2013-10-03 John M Chambers * R/classModule.R: new function to write module file for class Modified: pkg/Rcpp/NAMESPACE =================================================================== --- pkg/Rcpp/NAMESPACE 2013-10-04 02:28:55 UTC (rev 4557) +++ pkg/Rcpp/NAMESPACE 2013-10-06 21:54:18 UTC (rev 4558) @@ -20,8 +20,8 @@ setRcppClass, loadRcppClass, loadModule, - classModule, cppFunction, + exposeClass, evalCpp, sourceCpp, compileAttributes, Deleted: pkg/Rcpp/R/classModule.R =================================================================== --- pkg/Rcpp/R/classModule.R 2013-10-04 02:28:55 UTC (rev 4557) +++ pkg/Rcpp/R/classModule.R 2013-10-06 21:54:18 UTC (rev 4558) @@ -1,197 +0,0 @@ -.stdHeader <- c( - "#include ", - "using namespace Rcpp ;" - ) - -.asString <- function(what) if(is.character(what)) what else deparse(what) - -.strings <- function(expr) { - if(is.call(expr) && ! identical(expr[[1]], quote(`::`))) - lapply(as.list(expr)[-1], .strings) - else - .asString(expr) -} - -.specifyItems <- function(what) { - what <- as.list(what) - wn <- allNames(what) - simple <- !nzchar(wn) - ## todo: error checking here that unnamed elements are single strings - wn[simple] <- as.character(what[simple]) - names(what) <- wn - what[simple] <- list(character()) - what -} - -.writeFieldFunction <- function(fldi, typei, CppClass, readOnly, ns, con){ - rootName <- paste0("field_", fldi) - writeLines(sprintf(" %s %s_get(%s *obj) { return obj->%s; }\n", - typei, rootName, CppClass, fldi), con) - value <- "_get" - if(!readOnly) { - writeLines(sprintf(" void %s_set(%s *obj, %s value) { obj->%s = value; }\n", - rootName, CppClass, typei, fldi), con) - value <- c(value, "_set") - } - paste0(ns, "::field_", fldi, value) -} - -.writeMethodFunction <- function(mdi, sigi, CppClass, ns, con) { - mName <- paste0("method_", mdi) - if(length(sigi) < 1) - stop(gettextf("The type signature for method %s for class %s was of length 0: Must at least include the return type", - mdi, CppClass)) - rtnType <- sigi[[1]] - sigi <- sigi[-1] - if(length(sigi)) { - argNames <- paste0("a", seq_along(sigi)) - args <- paste(" ,", paste(sigi, argNames, collapse = ", ")) - } - else argNames <- args <- "" - writeLines(sprintf(" %s %s(%s *obj%s){ return obj->%s(%s); }\n", - rtnType, mName, CppClass, args, mdi, argNames), con) - paste0(ns, "::",mName) -} - -classModule <- function(class, constructors, fields, methods, - file = paste0(CppClass, "Module.cpp"), - header = character(), - module = paste0("class_",class), CppClass = class, - readOnly = character(), rename = character(), - Rfile = TRUE) { - ## some argument checks - ## TODO: checks on constructors, fields, methods - if(length(readOnly)) { - readOnly <- as.character(readOnly) - if(!all(nzchar(readOnly))) - stop("argument readOnly should be a vector of non-empty strings") - } - newnames <- allNames(rename) - if(length(rename)) { - if(!all(sapply(rename, function(x) is.character(x) && length(x) == 1 && nzchar(x)))) - stop("argument rename should be a vector of single, non-empty strings") - if(!all(nzchar(newnames))) - stop("all the elements of argument rename should be non-empty strings") - } - if(is.character(file)) { - ## are we in a package directory? Writable, searchable src subdirectory: - if(file.access("src",3)==0) - cfile <- file.path("src", file) - else - cfile <- file - con <- file(cfile, "w") - on.exit({message(sprintf("Wrote C++ file \"%s\"", cfile)); close(con)}) - } - else - con <- file - ## and for the R code: - if(identical(Rfile, FALSE)) {} - else { - if(identical(Rfile, TRUE)) - Rfile <- sprintf("%sClass.R",class) - if(is.character(Rfile)) { - if(file.access("R",3)==0) # in a package directory - Rfile <- file.path("R", Rfile) - Rcon <- file(Rfile, "w") - msg <- sprintf("Wrote R file \"%s\"",Rfile) - on.exit({message(msg); close(Rcon)}, add = TRUE) - } - else - Rcon <- Rfile - Rfile <- TRUE - } - temp <- tempfile() - mcon <- file(temp, "w") - writeLines(.stdHeader, con) - if(length(header)) - writeLines(header, con) - writeLines(c("", sprintf("RCPP_MODULE(%s) {\n",module), ""), mcon) - writeLines(sprintf(" class_<%s>(\"%s\")\n", CppClass, class), mcon) - - ## the constructors argument defines a list of vectors of types - for( cons in constructors) { - if(length(cons) > 1 || - (length(cons) == 1 && nzchar(cons) && !identical(cons, "void"))) - cons <- paste0("<", paste(cons, collapse = ","),">") - else - cons = "" - writeLines(paste0(" .constructor",cons,"()"),mcon) - } - writeLines("", mcon) - flds <- .specifyItems(fields) - nm <- names(flds) - rdOnly <- nm %in% readOnly - macros <- ifelse(rdOnly, ".field_readonly", ".field") - test <- nm %in% rename - if(any(test)) - nm[test] <- newnames[match(nm[test], newnames)] - ns <- NULL - for(i in seq_along(nm)) { - typei <- flds[[i]] - nmi <- fldi <- nm[[i]] - macroi <- macros[[i]] - if(!length(typei) || identical(typei, "")) ## direct field - writeLines(sprintf(" %s(\"%s\", &%s::%s)", - macroi, nmi, CppClass, fldi), mcon) - else { # create a free function, e.g. for an inherited field - if(is.null(ns)) { # enclose in a namespace - ns <- paste("module",class,"NS", sep = "_") - writeLines(sprintf("\nnamespace %s {\n", ns), - con) - } - fldFuns <- .writeFieldFunction(fldi, typei, CppClass, rdOnly[[i]], ns, con) - if(rdOnly[[i]]) - ## NOTE: string 3rd arg. required by problem w. module parsing 10/3/13 - writeLines(sprintf(" .property(\"%s\", &%s, \"read-only field\")", - nmi, fldFuns[[1]]), mcon) - else - writeLines(sprintf(" .property(\"%s\", &%s, &%s)", - nmi, fldFuns[[1]], fldFuns[[2]]), mcon) - } - } - writeLines("", mcon) - sigs <- .specifyItems(methods) - nm <- mds <- names(sigs) - test <- nm %in% rename - if(any(test)) - nm[test] <- newnames[match(nm[test], newnames)] - for(i in seq_along(nm)) { - sigi <- sigs[[i]] - nmi <- nm[[i]] - mdi <- mds[[i]] - if(!length(sigi) || identical(sigi, "")) # direct method - writeLines(sprintf(" .method(\"%s\", &%s::%s)", - nmi, CppClass, mdi), mcon) - else { # create a free function, e.g. for an inherited method - if(is.null(ns)) { # enclose in a namespace - ns <- paste("module",class,"NS", sep = "_") - writeLines(sprintf("\nnamespace %s {\n", ns), - con) - } - mFun <- .writeMethodFunction(mdi, sigi, CppClass, ns, con) - writeLines(sprintf(" .method(\"%s\", &%s)", - nmi, mFun), mcon) - } - } - - writeLines(" ;\n}", mcon) - close(mcon) - if(!is.null(ns)) - writeLines(sprintf("} // %s", ns), con) # close namespace - writeLines(readLines(file(temp, "r")), con) - if(Rfile) { - if(missing(CppClass)) - CppString <- "" - else - CppString <- paste(",",dQuote(CppClass)) - if(missing(module)) - ModString <- "" - else - ModString <- paste(", module =", dQuote(module)) - writeLines(sprintf("%s <- setRcppClass(\"%s\"%s%s)", - class, class, CppString,ModString), Rcon) - } -} - - - Added: pkg/Rcpp/R/exposeClass.R =================================================================== --- pkg/Rcpp/R/exposeClass.R (rev 0) +++ pkg/Rcpp/R/exposeClass.R 2013-10-06 21:54:18 UTC (rev 4558) @@ -0,0 +1,197 @@ +.stdHeader <- c( + "#include ", + "using namespace Rcpp ;" + ) + +.asString <- function(what) if(is.character(what)) what else deparse(what) + +.strings <- function(expr) { + if(is.call(expr) && ! identical(expr[[1]], quote(`::`))) + lapply(as.list(expr)[-1], .strings) + else + .asString(expr) +} + +.specifyItems <- function(what) { + what <- as.list(what) + wn <- allNames(what) + simple <- !nzchar(wn) + ## todo: error checking here that unnamed elements are single strings + wn[simple] <- as.character(what[simple]) + names(what) <- wn + what[simple] <- list(character()) + what +} + +.writeFieldFunction <- function(fldi, typei, CppClass, readOnly, ns, con){ + rootName <- paste0("field_", fldi) + writeLines(sprintf(" %s %s_get(%s *obj) { return obj->%s; }\n", + typei, rootName, CppClass, fldi), con) + value <- "_get" + if(!readOnly) { + writeLines(sprintf(" void %s_set(%s *obj, %s value) { obj->%s = value; }\n", + rootName, CppClass, typei, fldi), con) + value <- c(value, "_set") + } + paste0(ns, "::field_", fldi, value) +} + +.writeMethodFunction <- function(mdi, sigi, CppClass, ns, con) { + mName <- paste0("method_", mdi) + if(length(sigi) < 1) + stop(gettextf("The type signature for method %s for class %s was of length 0: Must at least include the return type", + mdi, CppClass)) + rtnType <- sigi[[1]] + sigi <- sigi[-1] + if(length(sigi)) { + argNames <- paste0("a", seq_along(sigi)) + args <- paste(" ,", paste(sigi, argNames, collapse = ", ")) + } + else argNames <- args <- "" + writeLines(sprintf(" %s %s(%s *obj%s){ return obj->%s(%s); }\n", + rtnType, mName, CppClass, args, mdi, argNames), con) + paste0(ns, "::",mName) +} + +exposeClass <- function(class, constructors, fields, methods, + file = paste0(CppClass, "Module.cpp"), + header = character(), + module = paste0("class_",class), CppClass = class, + readOnly = character(), rename = character(), + Rfile = TRUE) { + ## some argument checks + ## TODO: checks on constructors, fields, methods + if(length(readOnly)) { + readOnly <- as.character(readOnly) + if(!all(nzchar(readOnly))) + stop("argument readOnly should be a vector of non-empty strings") + } + newnames <- allNames(rename) + if(length(rename)) { + if(!all(sapply(rename, function(x) is.character(x) && length(x) == 1 && nzchar(x)))) + stop("argument rename should be a vector of single, non-empty strings") + if(!all(nzchar(newnames))) + stop("all the elements of argument rename should be non-empty strings") + } + if(is.character(file)) { + ## are we in a package directory? Writable, searchable src subdirectory: + if(file.access("src",3)==0) + cfile <- file.path("src", file) + else + cfile <- file + con <- file(cfile, "w") + on.exit({message(sprintf("Wrote C++ file \"%s\"", cfile)); close(con)}) + } + else + con <- file + ## and for the R code: + if(identical(Rfile, FALSE)) {} + else { + if(identical(Rfile, TRUE)) + Rfile <- sprintf("%sClass.R",class) + if(is.character(Rfile)) { + if(file.access("R",3)==0) # in a package directory + Rfile <- file.path("R", Rfile) + Rcon <- file(Rfile, "w") + msg <- sprintf("Wrote R file \"%s\"",Rfile) + on.exit({message(msg); close(Rcon)}, add = TRUE) + } + else + Rcon <- Rfile + Rfile <- TRUE + } + temp <- tempfile() + mcon <- file(temp, "w") + writeLines(.stdHeader, con) + if(length(header)) + writeLines(header, con) + writeLines(c("", sprintf("RCPP_MODULE(%s) {\n",module), ""), mcon) + writeLines(sprintf(" class_<%s>(\"%s\")\n", CppClass, class), mcon) + + ## the constructors argument defines a list of vectors of types + for( cons in constructors) { + if(length(cons) > 1 || + (length(cons) == 1 && nzchar(cons) && !identical(cons, "void"))) + cons <- paste0("<", paste(cons, collapse = ","),">") + else + cons = "" + writeLines(paste0(" .constructor",cons,"()"),mcon) + } + writeLines("", mcon) + flds <- .specifyItems(fields) + nm <- names(flds) + rdOnly <- nm %in% readOnly + macros <- ifelse(rdOnly, ".field_readonly", ".field") + test <- nm %in% rename + if(any(test)) + nm[test] <- newnames[match(nm[test], newnames)] + ns <- NULL + for(i in seq_along(nm)) { + typei <- flds[[i]] + nmi <- fldi <- nm[[i]] + macroi <- macros[[i]] + if(!length(typei) || identical(typei, "")) ## direct field + writeLines(sprintf(" %s(\"%s\", &%s::%s)", + macroi, nmi, CppClass, fldi), mcon) + else { # create a free function, e.g. for an inherited field + if(is.null(ns)) { # enclose in a namespace + ns <- paste("module",class,"NS", sep = "_") + writeLines(sprintf("\nnamespace %s {\n", ns), + con) + } + fldFuns <- .writeFieldFunction(fldi, typei, CppClass, rdOnly[[i]], ns, con) + if(rdOnly[[i]]) + ## NOTE: string 3rd arg. required by problem w. module parsing 10/3/13 + writeLines(sprintf(" .property(\"%s\", &%s, \"read-only field\")", + nmi, fldFuns[[1]]), mcon) + else + writeLines(sprintf(" .property(\"%s\", &%s, &%s)", + nmi, fldFuns[[1]], fldFuns[[2]]), mcon) + } + } + writeLines("", mcon) + sigs <- .specifyItems(methods) + nm <- mds <- names(sigs) + test <- nm %in% rename + if(any(test)) + nm[test] <- newnames[match(nm[test], newnames)] + for(i in seq_along(nm)) { + sigi <- sigs[[i]] + nmi <- nm[[i]] + mdi <- mds[[i]] + if(!length(sigi) || identical(sigi, "")) # direct method + writeLines(sprintf(" .method(\"%s\", &%s::%s)", + nmi, CppClass, mdi), mcon) + else { # create a free function, e.g. for an inherited method + if(is.null(ns)) { # enclose in a namespace + ns <- paste("module",class,"NS", sep = "_") + writeLines(sprintf("\nnamespace %s {\n", ns), + con) + } + mFun <- .writeMethodFunction(mdi, sigi, CppClass, ns, con) + writeLines(sprintf(" .method(\"%s\", &%s)", + nmi, mFun), mcon) + } + } + + writeLines(" ;\n}", mcon) + close(mcon) + if(!is.null(ns)) + writeLines(sprintf("} // %s", ns), con) # close namespace + writeLines(readLines(file(temp, "r")), con) + if(Rfile) { + if(missing(CppClass)) + CppString <- "" + else + CppString <- paste(",",dQuote(CppClass)) + if(missing(module)) + ModString <- "" + else + ModString <- paste(", module =", dQuote(module)) + writeLines(sprintf("%s <- setRcppClass(\"%s\"%s%s)", + class, class, CppString,ModString), Rcon) + } +} + + + Deleted: pkg/Rcpp/man/classModule.Rd =================================================================== --- pkg/Rcpp/man/classModule.Rd 2013-10-04 02:28:55 UTC (rev 4557) +++ pkg/Rcpp/man/classModule.Rd 2013-10-06 21:54:18 UTC (rev 4558) @@ -1,205 +0,0 @@ -\name{classModule} -\alias{classModule} -\title{ -Create an Rcpp Module to Expose a C++ Class in R -} -\description{ -The arguments specify a C++ class and some combination of -constructors, fields and methods to be shared with \R by creating a -corresponding reference class in \R. -The information needed in the call to \code{classModule()} is the -simplest possible in order to create a C++ module for the class; for -example, fields and methods in this class need only be identified by -their name. -Inherited fields and methods can also be included, but more -information is needed. -The function writes a C++ source file, -containing a module definition to expose the class to -\R, plus one line of \R source to create the corresponding reference -class. -} - -\usage{ -classModule(class, constructors = , fields = , methods = , file = , - header = , module = , CppClass = class, readOnly = , rename = , - Rfile = TRUE) -} - -\arguments{ - \item{class}{ -The name of the class in \R. By default, this will be the same as the -name of the class in C++, unless argument \code{CppClass} is supplied. -} - \item{constructors}{ -A list of the signatures for any of the class constructors to be -called from \R. Each element of the list gives the data types in C++ -for the arguments to the corresponding constructor. See Details and -the example. -} - \item{fields, methods}{ -The vector of names for the fields and for the methods to be exposed -in \R. For inherited fields and methods, type information needs to be -supplied; see the section \dQuote{Inherited Fields and Methods}. -} - \item{file}{ -Usually, the name for the file on which to write the C++ code, by default -\code{paste0(CppClass, "Module.cpp")}. -If the current working directory in \R is the top-level -directory for a package, the function writes the file in the -\code{"src"} subdirectory. -Otherwise the file is written in the working directory. - -The argument may also be a connection, already open for writing. - -} - \item{header}{ -Whatever lines of C++ header information are needed to include the -definition of the class. Typically this includes a file from the -package where we are writing the module definition, as in the example below. -} - \item{module}{ -The name for the Rcpp module, by default -\code{paste0("class_",CppClass)}. -} - \item{CppClass}{ -The name for the class in C++. By default and usually, the intended -class name in \R. -} - \item{readOnly}{ -Optional vector of field names. These fields will be created as -read-only in the interface. -} - \item{rename}{ -Optional named character vector, used to name fields or methods -differently in \R from their C++ name. The elements of the vector are -the C++ names and the corresponding elements of \code{names(rename)} -the desired names in \R. So \code{c(.age = "age")} renames the C++ -field or method \code{age} as \code{.age}. -} - \item{Rfile}{ -Controls the writing of a one-line \R command to create the reference -class corresponding to the C++ module information. By default, this -will be a file \code{paste0(class, "Class.R")}. -If the working directory is an \R package source -directory, the file will be written in the \code{R} subdirectory, otherwise in the working directory itself. - -Supplying a character string substitutes that file name for the -default. - -The argument may also be a connection open for -writing or \code{FALSE} to suppress writing the \R source altogether. -} -} - -\details{ -The file created by the call to these functions only depends on the -information in the C++ class supplied. This file is intended to be -part of the C++ source for an \R package. The file only needs to -modified when the information changes, either because the class has -changed or because you want to expose different information to \R. In -that case you can either recall \code{classModule()} or edit the C++ -file created. - -The Rcpp Module mechanism has a number of other optional techniques, -not covered by \code{classModule()}. These should be entered into the -C++ file created. See the \dQuote{rcpp-modules} vignette with the -package for current possibilities. - -For fields and methods specified directly in the C++ class, -the fields and method arguments to \code{classModule()} are character vectors naming the -corresponding members of the class. For module construction, the -data types of directly specified fields and of the arguments for the methods are not -needed. - -For \emph{inherited} fields or methods, data type information is -needed. See the section \dQuote{Inherited Fields and Methods}. - -For exposing class constructors, the module needs to know the -signatures of the constructors to be exposed; each signature is a -character vector of the corresponding C++ data types. - -} - -\section{Inherited Fields and Methods}{ -If the C++ class inherits from one or more other classes, the standard -Rcpp \code{Module} mechanism can not be used to expose inherited -fields or methods. -An indirect mechanism is used, generating free functions in C++ to -expose the inherited members in \R. - -This mechanism requires data type information in the call to -\code{classModule()}. -This is provided by naming the corresponding element of the -\code{fields} or \code{methods} argument with the name of the member. -The actual element of the \code{fields} argument is then the single -data type of the field. - -For the \code{methods} argument the argument will generally need to be -a named list. -The corresponding element of the list is the vector of data types for -the return value and for the arguments, if any, to the method. -For example, if C++ method \code{foo()} took a single argument of type -\code{NumericVector} and returned a value of type \code{long}, the -\code{methods} argument would be \code{list(foo = c("long", - "NumericVector"))}. - -See the second example below. -} -\value{ -Nothing, called for its side effect. -} -\author{ - John Chambers -} -\seealso{ -\code{\link{setRcppClass}}, which must be called from some \R source -in the package. -} -\examples{ -\dontrun{ -### Given the following C++ class, defined in file PopBD.h, -### the call to classModule() shown below will write a file -### src/PopBDModule.cpp containing a corresponding module definition. -### class PopBD { -### public: -### PopBD(void); -### PopBD(NumericVector initBirth, NumericVector initDeath); -### -### std::vector birth; -### std::vector death; -### std::vector lineage; -### std::vector size; -### void evolve(int); -### -### }; -### A file R/PopBDClass.R will be written containing the one line: -### PopBD <- setRcppClass("PopBD") -### -### The call below exposes the lineage and size fields, read-only, -### and the evolve() method. - -classModule("PopBD", - constructors = - list("", c("NumericVector", "NumericVector")), - fields = c("lineage", "size"), - methods = "evolve", - header = '#include "PopBD.h"', - readOnly = c("lineage", "size")) - -### Example with inheritance: the class PopCount inherits from -### the previous class, and adds a method table(). It has the same -### constructors as the previous class. -### To expose the table() method, and the inherited evolve() method and size field: - -classModule("PopCount", - constructors = - list("", c("NumericVector", "NumericVector")), - fields = c(size = "std::vector"), - methods = list("table", evolve = c("void", "int")), - header = '#include "PopCount.h"', - readOnly = "size") -} -} - -\keyword{ programming } -\keyword{ classes } Added: pkg/Rcpp/man/exposeClass.Rd =================================================================== --- pkg/Rcpp/man/exposeClass.Rd (rev 0) +++ pkg/Rcpp/man/exposeClass.Rd 2013-10-06 21:54:18 UTC (rev 4558) @@ -0,0 +1,205 @@ +\name{exposeClass} +\alias{exposeClass} +\title{ +Create an Rcpp Module to Expose a C++ Class in R +} +\description{ +The arguments specify a C++ class and some combination of +constructors, fields and methods to be shared with \R by creating a +corresponding reference class in \R. +The information needed in the call to \code{exposeClass()} is the +simplest possible in order to create a C++ module for the class; for +example, fields and methods in this class need only be identified by +their name. +Inherited fields and methods can also be included, but more +information is needed. +The function writes a C++ source file, +containing a module definition to expose the class to +\R, plus one line of \R source to create the corresponding reference +class. +} + +\usage{ +exposeClass(class, constructors = , fields = , methods = , file = , + header = , module = , CppClass = class, readOnly = , rename = , + Rfile = TRUE) +} + +\arguments{ + \item{class}{ +The name of the class in \R. By default, this will be the same as the +name of the class in C++, unless argument \code{CppClass} is supplied. +} + \item{constructors}{ +A list of the signatures for any of the class constructors to be +called from \R. Each element of the list gives the data types in C++ +for the arguments to the corresponding constructor. See Details and +the example. +} + \item{fields, methods}{ +The vector of names for the fields and for the methods to be exposed +in \R. For inherited fields and methods, type information needs to be +supplied; see the section \dQuote{Inherited Fields and Methods}. +} + \item{file}{ +Usually, the name for the file on which to write the C++ code, by default +\code{paste0(CppClass, "Module.cpp")}. +If the current working directory in \R is the top-level +directory for a package, the function writes the file in the +\code{"src"} subdirectory. +Otherwise the file is written in the working directory. + +The argument may also be a connection, already open for writing. + +} + \item{header}{ +Whatever lines of C++ header information are needed to include the +definition of the class. Typically this includes a file from the +package where we are writing the module definition, as in the example below. +} + \item{module}{ +The name for the Rcpp module, by default +\code{paste0("class_",CppClass)}. +} + \item{CppClass}{ +The name for the class in C++. By default and usually, the intended +class name in \R. +} + \item{readOnly}{ +Optional vector of field names. These fields will be created as +read-only in the interface. +} + \item{rename}{ +Optional named character vector, used to name fields or methods +differently in \R from their C++ name. The elements of the vector are +the C++ names and the corresponding elements of \code{names(rename)} +the desired names in \R. So \code{c(.age = "age")} renames the C++ +field or method \code{age} as \code{.age}. +} + \item{Rfile}{ +Controls the writing of a one-line \R command to create the reference +class corresponding to the C++ module information. By default, this +will be a file \code{paste0(class, "Class.R")}. +If the working directory is an \R package source +directory, the file will be written in the \code{R} subdirectory, otherwise in the working directory itself. + +Supplying a character string substitutes that file name for the +default. + +The argument may also be a connection open for +writing or \code{FALSE} to suppress writing the \R source altogether. +} +} + +\details{ +The file created by the call to these functions only depends on the +information in the C++ class supplied. This file is intended to be +part of the C++ source for an \R package. The file only needs to +modified when the information changes, either because the class has +changed or because you want to expose different information to \R. In +that case you can either recall \code{exposeClass()} or edit the C++ +file created. + +The Rcpp Module mechanism has a number of other optional techniques, +not covered by \code{exposeClass()}. These should be entered into the +C++ file created. See the \dQuote{rcpp-modules} vignette with the +package for current possibilities. + +For fields and methods specified directly in the C++ class, +the fields and method arguments to \code{exposeClass()} are character vectors naming the +corresponding members of the class. For module construction, the +data types of directly specified fields and of the arguments for the methods are not +needed. + +For \emph{inherited} fields or methods, data type information is +needed. See the section \dQuote{Inherited Fields and Methods}. + +For exposing class constructors, the module needs to know the +signatures of the constructors to be exposed; each signature is a +character vector of the corresponding C++ data types. + +} + +\section{Inherited Fields and Methods}{ +If the C++ class inherits from one or more other classes, the standard +Rcpp \code{Module} mechanism can not be used to expose inherited +fields or methods. +An indirect mechanism is used, generating free functions in C++ to +expose the inherited members in \R. + +This mechanism requires data type information in the call to +\code{exposeClass()}. +This is provided by naming the corresponding element of the +\code{fields} or \code{methods} argument with the name of the member. +The actual element of the \code{fields} argument is then the single +data type of the field. + +For the \code{methods} argument the argument will generally need to be +a named list. +The corresponding element of the list is the vector of data types for +the return value and for the arguments, if any, to the method. +For example, if C++ method \code{foo()} took a single argument of type +\code{NumericVector} and returned a value of type \code{long}, the +\code{methods} argument would be \code{list(foo = c("long", + "NumericVector"))}. + +See the second example below. +} +\value{ +Nothing, called for its side effect. +} +\author{ + John Chambers +} +\seealso{ +\code{\link{setRcppClass}}, which must be called from some \R source +in the package. +} +\examples{ +\dontrun{ +### Given the following C++ class, defined in file PopBD.h, +### the call to exposeClass() shown below will write a file +### src/PopBDModule.cpp containing a corresponding module definition. +### class PopBD { +### public: +### PopBD(void); +### PopBD(NumericVector initBirth, NumericVector initDeath); +### +### std::vector birth; +### std::vector death; +### std::vector lineage; +### std::vector size; +### void evolve(int); +### +### }; +### A file R/PopBDClass.R will be written containing the one line: +### PopBD <- setRcppClass("PopBD") +### +### The call below exposes the lineage and size fields, read-only, +### and the evolve() method. + +exposeClass("PopBD", + constructors = + list("", c("NumericVector", "NumericVector")), + fields = c("lineage", "size"), + methods = "evolve", + header = '#include "PopBD.h"', + readOnly = c("lineage", "size")) + +### Example with inheritance: the class PopCount inherits from +### the previous class, and adds a method table(). It has the same +### constructors as the previous class. +### To expose the table() method, and the inherited evolve() method and size field: + +exposeClass("PopCount", + constructors = + list("", c("NumericVector", "NumericVector")), + fields = c(size = "std::vector"), + methods = list("table", evolve = c("void", "int")), + header = '#include "PopCount.h"', + readOnly = "size") +} +} + +\keyword{ programming } +\keyword{ classes } Modified: pkg/Rcpp/man/setRcppClass.Rd =================================================================== --- pkg/Rcpp/man/setRcppClass.Rd 2013-10-04 02:28:55 UTC (rev 4557) +++ pkg/Rcpp/man/setRcppClass.Rd 2013-10-06 21:54:18 UTC (rev 4558) @@ -6,11 +6,13 @@ Create a Class Extending a C++ Class } \description{ -A class is defined that includes the fields and methods of a C++ class -defined, usually in this package. For most applications, it is -recommended to call -\code{\link{classModule}()} to write files in the package with a call to \code{setRcppClass()} and the -C++ module code required. See Details. +These routines create a class definition in \R for an exposed C++ +class, setting up and executing a load action to incorporate the C++ +pointer information. +Neither function should normally need to be called directly; for most applications, +a call to +\code{\link{exposeClass}()} will create both C++ and \R code files to +expose the C++ class. } \usage{ setRcppClass(Class, CppClass = , module = , fields = list(), contains = , @@ -33,12 +35,14 @@ have to be loaded separately; \code{setRcppClass()} will arrange to [TRUNCATED] To get the complete diff run: svnlook diff /svnroot/rcpp -r 4558 From noreply at r-forge.r-project.org Sun Oct 6 23:54:52 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Sun, 6 Oct 2013 23:54:52 +0200 (CEST) Subject: [Rcpp-commits] r4559 - pkg/Rcpp Message-ID: <20131006215453.027F4185668@r-forge.r-project.org> Author: jmc Date: 2013-10-06 23:54:52 +0200 (Sun, 06 Oct 2013) New Revision: 4559 Modified: pkg/Rcpp/ChangeLog Log: typo Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-06 21:54:18 UTC (rev 4558) +++ pkg/Rcpp/ChangeLog 2013-10-06 21:54:52 UTC (rev 4559) @@ -1,6 +1,6 @@ 2013-10-06 John M Chambers - * NAMESPACE: change classModule to expose Class + * NAMESPACE: change classModule to exposeClass * R/classModule.R: delete * man/classModule.Rd: delete * R/exposeClass.R: add From noreply at r-forge.r-project.org Mon Oct 7 00:11:33 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Mon, 7 Oct 2013 00:11:33 +0200 (CEST) Subject: [Rcpp-commits] r4560 - in pkg/Rcpp: . R Message-ID: <20131006221133.B36F11845BE@r-forge.r-project.org> Author: jmc Date: 2013-10-07 00:11:32 +0200 (Mon, 07 Oct 2013) New Revision: 4560 Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/R/exposeClass.R Log: Avoid warning from unclosed file(temp, "r") in exposeClass() Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-06 21:54:52 UTC (rev 4559) +++ pkg/Rcpp/ChangeLog 2013-10-06 22:11:32 UTC (rev 4560) @@ -1,5 +1,10 @@ 2013-10-06 John M Chambers + * R/exposeClass.R: avoid warning from unclosed file() + + +2013-10-06 John M Chambers + * NAMESPACE: change classModule to exposeClass * R/classModule.R: delete * man/classModule.Rd: delete Modified: pkg/Rcpp/R/exposeClass.R =================================================================== --- pkg/Rcpp/R/exposeClass.R 2013-10-06 21:54:52 UTC (rev 4559) +++ pkg/Rcpp/R/exposeClass.R 2013-10-06 22:11:32 UTC (rev 4560) @@ -100,8 +100,8 @@ Rcon <- Rfile Rfile <- TRUE } - temp <- tempfile() - mcon <- file(temp, "w") + mfile <- tempfile() + mcon <- file(mfile, "w") writeLines(.stdHeader, con) if(length(header)) writeLines(header, con) @@ -178,7 +178,7 @@ close(mcon) if(!is.null(ns)) writeLines(sprintf("} // %s", ns), con) # close namespace - writeLines(readLines(file(temp, "r")), con) + writeLines(readLines(mfile), con) if(Rfile) { if(missing(CppClass)) CppString <- "" From noreply at r-forge.r-project.org Mon Oct 7 17:23:02 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Mon, 7 Oct 2013 17:23:02 +0200 (CEST) Subject: [Rcpp-commits] r4561 - in pkg/Rcpp: . inst Message-ID: <20131007152302.4BE3B186006@r-forge.r-project.org> Author: edd Date: 2013-10-07 17:23:02 +0200 (Mon, 07 Oct 2013) New Revision: 4561 Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/inst/NEWS.Rd Log: keep NEWS.Rd current with changes made by John but documented only in ChangeLog Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-06 22:11:32 UTC (rev 4560) +++ pkg/Rcpp/ChangeLog 2013-10-07 15:23:02 UTC (rev 4561) @@ -2,7 +2,6 @@ * R/exposeClass.R: avoid warning from unclosed file() - 2013-10-06 John M Chambers * NAMESPACE: change classModule to exposeClass Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-06 22:11:32 UTC (rev 4560) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-07 15:23:02 UTC (rev 4561) @@ -2,11 +2,11 @@ \title{News for Package 'Rcpp'} \newcommand{\cpkg}{\href{http://CRAN.R-project.org/package=#1}{\pkg{#1}}} -\section{Changes in Rcpp version 0.10.5.1 (2013-10-02)}{ +\section{Changes in Rcpp version 0.10.5.1 (2013-10-07)}{ \itemize{ \item Changes in Modules: \itemize{ - \item New function \code{classModule} which creates a C++ module + \item New function \code{exposeClass} which creates a C++ module for a C++ class, which then results in a corresponding Reference Class made available at the R level. } From noreply at r-forge.r-project.org Mon Oct 7 18:32:53 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Mon, 7 Oct 2013 18:32:53 +0200 (CEST) Subject: [Rcpp-commits] r4562 - pkg/Rcpp/inst Message-ID: <20131007163253.90ABE185F33@r-forge.r-project.org> Author: jmc Date: 2013-10-07 18:32:53 +0200 (Mon, 07 Oct 2013) New Revision: 4562 Modified: pkg/Rcpp/inst/NEWS.Rd Log: Correct the announcement about exposeClass() Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-07 15:23:02 UTC (rev 4561) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-07 16:32:53 UTC (rev 4562) @@ -4,11 +4,13 @@ \section{Changes in Rcpp version 0.10.5.1 (2013-10-07)}{ \itemize{ - \item Changes in Modules: + \item Exposing C++ classes from a package: \itemize{ - \item New function \code{exposeClass} which creates a C++ module - for a C++ class, which then results in a corresponding Reference - Class made available at the R level. + \item The function \code{exposeClass} takes a description of the + constructors, fields and methods to be exposed from a C++ + class, and writes C++ and R files in the package. Inherited + classes can be dealt with, but require data type information. + This approach avoids hand-coding module files. } \item Changes in Rcpp API: \itemize{ From noreply at r-forge.r-project.org Wed Oct 9 00:02:28 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 9 Oct 2013 00:02:28 +0200 (CEST) Subject: [Rcpp-commits] r4563 - in pkg/Rcpp: . inst man Message-ID: <20131008220228.D2578184CC5@r-forge.r-project.org> Author: edd Date: 2013-10-09 00:02:26 +0200 (Wed, 09 Oct 2013) New Revision: 4563 Added: pkg/Rcpp/man/LdFlags.Rd Removed: pkg/Rcpp/man/RcppLdFlags.Rd Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/NAMESPACE pkg/Rcpp/inst/NEWS.Rd Log: Export LdFlags, not RcppLdFlags, from NAMESPACE Also correct manual page Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-07 16:32:53 UTC (rev 4562) +++ pkg/Rcpp/ChangeLog 2013-10-08 22:02:26 UTC (rev 4563) @@ -1,3 +1,8 @@ +2013-10-08 Dirk Eddelbuettel + + * NAMESPACE: Export LdFlags, not RcppLdFlags + * man/LdFlags.Rd: Renamed from RcppLdFlags, and changed + 2013-10-06 John M Chambers * R/exposeClass.R: avoid warning from unclosed file() Modified: pkg/Rcpp/NAMESPACE =================================================================== --- pkg/Rcpp/NAMESPACE 2013-10-07 16:32:53 UTC (rev 4562) +++ pkg/Rcpp/NAMESPACE 2013-10-08 22:02:26 UTC (rev 4563) @@ -26,7 +26,7 @@ sourceCpp, compileAttributes, registerPlugin, - RcppLdFlags, + LdFlags, demangle, sizeof, cpp_object_initializer, Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-07 16:32:53 UTC (rev 4562) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-08 22:02:26 UTC (rev 4563) @@ -19,6 +19,10 @@ and some tests for \code{is_na()} and \code{is_finite()} have been corrected thanks to Thomas Tse. } + \item Changes in R code: + \itemize{ + \item Export linking helper function \code{LdFlags}, not \code{RcppLdFlags} + } } } Copied: pkg/Rcpp/man/LdFlags.Rd (from rev 4562, pkg/Rcpp/man/RcppLdFlags.Rd) =================================================================== --- pkg/Rcpp/man/LdFlags.Rd (rev 0) +++ pkg/Rcpp/man/LdFlags.Rd 2013-10-08 22:02:26 UTC (rev 4563) @@ -0,0 +1,41 @@ +\name{LdFlags} +\alias{LdFlags} +\title{Provide Rcpp Linker Flags} +\description{ + \code{LdFlags} returns the required flags and options for the the + system linker. This allows portable use of \pkg{Rcpp} as package + location as well as operating-system specific details are abstracted + away behind the interface of this function. + + It is commonly called from the files \code{Makevars} (or + \code{Makevars.win}) rather than in an interactive session. +} +\usage{ +LdFlags(static=staticLinking()) +} +\arguments{ + \item{static}{A boolean determining use of static (as opposed to + dynamic) linking; defaults to using the \code{staticLinking()} + function which defaults to \code{FALSE} on Linux, and \code{TRUE} + if the operating system is different from Linux.} +} +\value{ + A character vector suitable by use by the system linker in order to + create a library based on \pkg{Rcpp}. +} +\details{ + This function is not meant to used interactively, and is intended + solely for use by the build tools. +} +\references{ + Dirk Eddelbuettel and Romain Francois (2011). \pkg{Rcpp}: Seamless R + and C++ Integration. \emph{Journal of Statistical Software}, + \bold{40(8)}, 1-18. URL http://www.jstatsoft.org/v40/i08/ and + available as \code{vignette("Rcpp-introduction")}. +} +\seealso{ + The vignette \sQuote{Rcpp-package} has more details. +} +\author{Dirk Eddelbuettel and Romain Francois} +\keyword{programming} +\keyword{interface} Deleted: pkg/Rcpp/man/RcppLdFlags.Rd =================================================================== --- pkg/Rcpp/man/RcppLdFlags.Rd 2013-10-07 16:32:53 UTC (rev 4562) +++ pkg/Rcpp/man/RcppLdFlags.Rd 2013-10-08 22:02:26 UTC (rev 4563) @@ -1,41 +0,0 @@ -\name{RcppLdFlags} -\alias{RcppLdFlags} -\title{Provide Rcpp Linker Flags} -\description{ - \code{RcppLdFlags} returns the required flags and options for the the - system linker. This allows portable use of \pkg{Rcpp} as package - location as well as operating-system specific details are abstracted - away behind the interface of this function. - - It is commonly called from the files \code{Makevars} (or - \code{Makevars.win}) rather than in an interactive session. -} -\usage{ -RcppLdFlags(static=staticLinking()) -} -\arguments{ - \item{static}{A boolean determining use of static (as opposed to - dynamic) linking; defaults to using the \code{staticLinking()} - function which defaults to \code{FALSE} on Linux, and \code{TRUE} - if the operating system is different from Linux.} -} -\value{ - A character vector suitable by use by the system linker in order to - create a library based on \pkg{Rcpp}. -} -\details{ - This function is not meant to used interactively, and is intended - solely for use by the build tools. -} -\references{ - Dirk Eddelbuettel and Romain Francois (2011). \pkg{Rcpp}: Seamless R - and C++ Integration. \emph{Journal of Statistical Software}, - \bold{40(8)}, 1-18. URL http://www.jstatsoft.org/v40/i08/ and - available as \code{vignette("Rcpp-introduction")}. -} -\seealso{ - The vignette \sQuote{Rcpp-package} has more details. -} -\author{Dirk Eddelbuettel and Romain Francois} -\keyword{programming} -\keyword{interface} From noreply at r-forge.r-project.org Wed Oct 9 00:24:27 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 9 Oct 2013 00:24:27 +0200 (CEST) Subject: [Rcpp-commits] r4564 - pkg/Rcpp/inst Message-ID: <20131008222427.6187418499E@r-forge.r-project.org> Author: jmc Date: 2013-10-09 00:24:27 +0200 (Wed, 09 Oct 2013) New Revision: 4564 Modified: pkg/Rcpp/inst/NEWS.Rd Log: Conform to standard for item heading Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-08 22:02:26 UTC (rev 4563) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-08 22:24:27 UTC (rev 4564) @@ -4,16 +4,14 @@ \section{Changes in Rcpp version 0.10.5.1 (2013-10-07)}{ \itemize{ - \item Exposing C++ classes from a package: + \item Changes in Rcpp API: \itemize{ \item The function \code{exposeClass} takes a description of the constructors, fields and methods to be exposed from a C++ class, and writes C++ and R files in the package. Inherited classes can be dealt with, but require data type information. This approach avoids hand-coding module files. - } - \item Changes in Rcpp API: - \itemize{ + \item Two missing \code{is<>()} templates for \code{CharacterVector} and \code{CharacterMatrix} have been added, and some tests for \code{is_na()} and \code{is_finite()} have been From noreply at r-forge.r-project.org Wed Oct 9 03:21:07 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 9 Oct 2013 03:21:07 +0200 (CEST) Subject: [Rcpp-commits] r4565 - pkg/Rcpp Message-ID: <20131009012107.777E0186393@r-forge.r-project.org> Author: edd Date: 2013-10-09 03:21:05 +0200 (Wed, 09 Oct 2013) New Revision: 4565 Modified: pkg/Rcpp/DESCRIPTION Log: roll Version up a minor Modified: pkg/Rcpp/DESCRIPTION =================================================================== --- pkg/Rcpp/DESCRIPTION 2013-10-08 22:24:27 UTC (rev 4564) +++ pkg/Rcpp/DESCRIPTION 2013-10-09 01:21:05 UTC (rev 4565) @@ -1,6 +1,6 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 0.10.5.1 +Version: 0.10.5.2 Date: $Date$ Author: Dirk Eddelbuettel and Romain Francois, with contributions by Douglas Bates, John Chambers and JJ Allaire From noreply at r-forge.r-project.org Wed Oct 9 03:39:40 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 9 Oct 2013 03:39:40 +0200 (CEST) Subject: [Rcpp-commits] r4566 - in pkg/Rcpp: . inst man Message-ID: <20131009013940.B9489185F6D@r-forge.r-project.org> Author: edd Date: 2013-10-09 03:39:39 +0200 (Wed, 09 Oct 2013) New Revision: 4566 Added: pkg/Rcpp/man/RcppLdFlags.Rd Removed: pkg/Rcpp/man/LdFlags.Rd Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/NAMESPACE pkg/Rcpp/inst/NEWS.Rd Log: turns out we RcppLdFlags and LdFlags -- so both exported and documented now Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-09 01:21:05 UTC (rev 4565) +++ pkg/Rcpp/ChangeLog 2013-10-09 01:39:39 UTC (rev 4566) @@ -1,7 +1,7 @@ 2013-10-08 Dirk Eddelbuettel - * NAMESPACE: Export LdFlags, not RcppLdFlags - * man/LdFlags.Rd: Renamed from RcppLdFlags, and changed + * NAMESPACE: Export LdFlags as well as RcppLdFlags + * man/RcppLdFlags.Rd: Updated 2013-10-06 John M Chambers Modified: pkg/Rcpp/NAMESPACE =================================================================== --- pkg/Rcpp/NAMESPACE 2013-10-09 01:21:05 UTC (rev 4565) +++ pkg/Rcpp/NAMESPACE 2013-10-09 01:39:39 UTC (rev 4566) @@ -26,6 +26,7 @@ sourceCpp, compileAttributes, registerPlugin, + RcppLdFlags, LdFlags, demangle, sizeof, Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-09 01:21:05 UTC (rev 4565) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-09 01:39:39 UTC (rev 4566) @@ -2,7 +2,7 @@ \title{News for Package 'Rcpp'} \newcommand{\cpkg}{\href{http://CRAN.R-project.org/package=#1}{\pkg{#1}}} -\section{Changes in Rcpp version 0.10.5.1 (2013-10-07)}{ +\section{Changes in Rcpp version 0.10.5.2 (2013-10-08)}{ \itemize{ \item Changes in Rcpp API: \itemize{ @@ -11,15 +11,15 @@ class, and writes C++ and R files in the package. Inherited classes can be dealt with, but require data type information. This approach avoids hand-coding module files. - \item Two missing \code{is<>()} templates for - \code{CharacterVector} and \code{CharacterMatrix} have been added, - and some tests for \code{is_na()} and \code{is_finite()} have been - corrected thanks to Thomas Tse. + \code{CharacterVector} and \code{CharacterMatrix} have been added, + and some tests for \code{is_na()} and \code{is_finite()} have been + corrected thanks to Thomas Tse. } \item Changes in R code: \itemize{ - \item Export linking helper function \code{LdFlags}, not \code{RcppLdFlags} + \item Export linking helper function \code{LdFlags} as well as + \code{RcppLdFlags}. } } } Deleted: pkg/Rcpp/man/LdFlags.Rd =================================================================== --- pkg/Rcpp/man/LdFlags.Rd 2013-10-09 01:21:05 UTC (rev 4565) +++ pkg/Rcpp/man/LdFlags.Rd 2013-10-09 01:39:39 UTC (rev 4566) @@ -1,41 +0,0 @@ -\name{LdFlags} -\alias{LdFlags} -\title{Provide Rcpp Linker Flags} -\description{ - \code{LdFlags} returns the required flags and options for the the - system linker. This allows portable use of \pkg{Rcpp} as package - location as well as operating-system specific details are abstracted - away behind the interface of this function. - - It is commonly called from the files \code{Makevars} (or - \code{Makevars.win}) rather than in an interactive session. -} -\usage{ -LdFlags(static=staticLinking()) -} -\arguments{ - \item{static}{A boolean determining use of static (as opposed to - dynamic) linking; defaults to using the \code{staticLinking()} - function which defaults to \code{FALSE} on Linux, and \code{TRUE} - if the operating system is different from Linux.} -} -\value{ - A character vector suitable by use by the system linker in order to - create a library based on \pkg{Rcpp}. -} -\details{ - This function is not meant to used interactively, and is intended - solely for use by the build tools. -} -\references{ - Dirk Eddelbuettel and Romain Francois (2011). \pkg{Rcpp}: Seamless R - and C++ Integration. \emph{Journal of Statistical Software}, - \bold{40(8)}, 1-18. URL http://www.jstatsoft.org/v40/i08/ and - available as \code{vignette("Rcpp-introduction")}. -} -\seealso{ - The vignette \sQuote{Rcpp-package} has more details. -} -\author{Dirk Eddelbuettel and Romain Francois} -\keyword{programming} -\keyword{interface} Copied: pkg/Rcpp/man/RcppLdFlags.Rd (from rev 4564, pkg/Rcpp/man/LdFlags.Rd) =================================================================== --- pkg/Rcpp/man/RcppLdFlags.Rd (rev 0) +++ pkg/Rcpp/man/RcppLdFlags.Rd 2013-10-09 01:39:39 UTC (rev 4566) @@ -0,0 +1,43 @@ +\name{LdFlags} +\alias{LdFlags} +\alias{RcppLdFlags} +\title{Provide Rcpp Linker Flags} +\description{ + \code{LdFlags} and \code{RcppLdFlags} return the required flags and + options for the the system linker. This allows portable use of + \pkg{Rcpp} as package location as well as operating-system specific + details are abstracted away behind the interface of this function. + + \code{LdFlags} is commonly called from the files \code{Makevars} (or + \code{Makevars.win}) rather than in an interactive session. +} +\usage{ +LdFlags(static=staticLinking()) +RcppLdFlags(static=staticLinking()) +} +\arguments{ + \item{static}{A boolean determining use of static (as opposed to + dynamic) linking; defaults to using the \code{staticLinking()} + function which defaults to \code{FALSE} on Linux, and \code{TRUE} + if the operating system is different from Linux.} +} +\value{ + A character vector suitable by use by the system linker in order to + create a library based on \pkg{Rcpp}. +} +\details{ + Thee functions are not meant to used interactively, and are intended + solely for use by the build tools. +} +\references{ + Dirk Eddelbuettel and Romain Francois (2011). \pkg{Rcpp}: Seamless R + and C++ Integration. \emph{Journal of Statistical Software}, + \bold{40(8)}, 1-18. URL http://www.jstatsoft.org/v40/i08/ and + available as \code{vignette("Rcpp-introduction")}. +} +\seealso{ + The vignette \sQuote{Rcpp-package} has more details. +} +\author{Dirk Eddelbuettel and Romain Francois} +\keyword{programming} +\keyword{interface} From noreply at r-forge.r-project.org Thu Oct 10 00:45:17 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Thu, 10 Oct 2013 00:45:17 +0200 (CEST) Subject: [Rcpp-commits] r4567 - pkg/RcppGSL Message-ID: <20131009224517.41D7D185D8E@r-forge.r-project.org> Author: edd Date: 2013-10-10 00:45:15 +0200 (Thu, 10 Oct 2013) New Revision: 4567 Modified: pkg/RcppGSL/ChangeLog pkg/RcppGSL/DESCRIPTION pkg/RcppGSL/NAMESPACE Log: Import LdFlags from Rcpp Modified: pkg/RcppGSL/ChangeLog =================================================================== --- pkg/RcppGSL/ChangeLog 2013-10-09 01:39:39 UTC (rev 4566) +++ pkg/RcppGSL/ChangeLog 2013-10-09 22:45:15 UTC (rev 4567) @@ -1,3 +1,7 @@ +2013-10-09 Dirk Eddelbuettel + + * NAMESPACE: Import LdFlags from Rcpp + 2013-09-10 Dirk Eddelbuettel * DESCRIPTION (Imports): Now 'Imports: Rcpp' rather than Depends: to Modified: pkg/RcppGSL/DESCRIPTION =================================================================== --- pkg/RcppGSL/DESCRIPTION 2013-10-09 01:39:39 UTC (rev 4566) +++ pkg/RcppGSL/DESCRIPTION 2013-10-09 22:45:15 UTC (rev 4567) @@ -1,7 +1,7 @@ Package: RcppGSL Type: Package Title: Rcpp integration for GNU GSL vectors and matrices -Version: 0.2.0.2 +Version: 0.2.0.3 Date: $Date$ Author: Romain Francois and Dirk Eddelbuettel Maintainer: Dirk Eddelbuettel @@ -27,8 +27,8 @@ write a similar package against another library. License: GPL (>= 2) LazyLoad: yes -Imports: Rcpp (>= 0.9.8) Suggests: RUnit, inline, highlight LinkingTo: Rcpp +Imports: Rcpp SystemRequirements: GNU GSL VignetteBuilder: highlight Modified: pkg/RcppGSL/NAMESPACE =================================================================== --- pkg/RcppGSL/NAMESPACE 2013-10-09 01:39:39 UTC (rev 4566) +++ pkg/RcppGSL/NAMESPACE 2013-10-09 22:45:15 UTC (rev 4567) @@ -1,6 +1,7 @@ useDynLib(RcppGSL) importFrom(utils,assignInNamespace) +importFrom(Rcpp,LdFlags) export(fastLmPure, fastLm) S3method(fastLm, default) From noreply at r-forge.r-project.org Thu Oct 10 02:53:10 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Thu, 10 Oct 2013 02:53:10 +0200 (CEST) Subject: [Rcpp-commits] r4568 - in pkg/RcppGSL: . man Message-ID: <20131010005310.F292118092D@r-forge.r-project.org> Author: edd Date: 2013-10-10 02:53:10 +0200 (Thu, 10 Oct 2013) New Revision: 4568 Added: pkg/RcppGSL/man/LdFlags.Rd Modified: pkg/RcppGSL/ChangeLog pkg/RcppGSL/NAMESPACE Log: Export LdFlags and CFlags, and added documentation for exported functions Modified: pkg/RcppGSL/ChangeLog =================================================================== --- pkg/RcppGSL/ChangeLog 2013-10-09 22:45:15 UTC (rev 4567) +++ pkg/RcppGSL/ChangeLog 2013-10-10 00:53:10 UTC (rev 4568) @@ -1,11 +1,12 @@ 2013-10-09 Dirk Eddelbuettel - * NAMESPACE: Import LdFlags from Rcpp + * NAMESPACE: Import LdFlags from Rcpp, and export LdFlags and CFlags + * man/LdFlags.Rd: Added documentation for exported functions 2013-09-10 Dirk Eddelbuettel * DESCRIPTION (Imports): Now 'Imports: Rcpp' rather than Depends: to - satisfy R CMD check for the R version under development + satisfy R CMD check for the R version under development 2013-08-24 Dirk Eddelbuettel Modified: pkg/RcppGSL/NAMESPACE =================================================================== --- pkg/RcppGSL/NAMESPACE 2013-10-09 22:45:15 UTC (rev 4567) +++ pkg/RcppGSL/NAMESPACE 2013-10-10 00:53:10 UTC (rev 4568) @@ -3,7 +3,9 @@ importFrom(utils,assignInNamespace) importFrom(Rcpp,LdFlags) export(fastLmPure, - fastLm) + fastLm, + LdFlags, + CFlags) S3method(fastLm, default) S3method(fastLm, formula) S3method(predict, fastLm) Added: pkg/RcppGSL/man/LdFlags.Rd =================================================================== --- pkg/RcppGSL/man/LdFlags.Rd (rev 0) +++ pkg/RcppGSL/man/LdFlags.Rd 2013-10-10 00:53:10 UTC (rev 4568) @@ -0,0 +1,47 @@ +\name{LdFlags} +\alias{LdFlags} +\alias{CFlags} +\title{Provide RcppGSL Compiler and Linker Flags} +\description{ + \code{LdFlags} and \code{CFlags} return the required flags and + options for the compiler and system linker in order to build against + GNU GSL. This allows portable use of \pkg{RcppGSL} (which needs the + GNU GSL) as package location as well as operating-system specific + details are abstracted away behind the interface of this function. + + \code{LdFlags} and \code{CFlags} are commonly called from the files + \code{Makevars} (or \code{Makevars.win}) rather than in an interactive + session. +} +\usage{ +LdFlags(print=TRUE) +RcppLdFlags(print=TRUE) +} +\arguments{ + \item{print}{A boolean determining whether the requested value is + returned on the standard output, or silenly as a value.} +} +\value{ + A character vector suitable by use by the system compiler linker in order to + compile and/or link against the GNU GSK. +} +\details{ + Thee functions are not meant to used interactively, and are intended + solely for use by the build tools. + + The values that are returned are acquired by the package at load + time. On Linux and OS X, the \code{pkg-config} program is queried. On + Windows, environment variables used for GNU GSL builds with R are used. +} +\references{ + Dirk Eddelbuettel and Romain Francois (2011). \pkg{Rcpp}: Seamless R + and C++ Integration. \emph{Journal of Statistical Software}, + \bold{40(8)}, 1-18. URL http://www.jstatsoft.org/v40/i08/ and + available as \code{vignette("Rcpp-introduction")}. +} +\seealso{ + The document of the \code{pkg-config} system tool. +} +\author{Dirk Eddelbuettel and Romain Francois} +\keyword{programming} +\keyword{interface} From noreply at r-forge.r-project.org Thu Oct 10 03:23:33 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Thu, 10 Oct 2013 03:23:33 +0200 (CEST) Subject: [Rcpp-commits] r4569 - pkg/RcppGSL/man Message-ID: <20131010012333.45CEF185FFC@r-forge.r-project.org> Author: edd Date: 2013-10-10 03:23:31 +0200 (Thu, 10 Oct 2013) New Revision: 4569 Modified: pkg/RcppGSL/man/LdFlags.Rd Log: copy and paste error: CFlags() is the other one Modified: pkg/RcppGSL/man/LdFlags.Rd =================================================================== --- pkg/RcppGSL/man/LdFlags.Rd 2013-10-10 00:53:10 UTC (rev 4568) +++ pkg/RcppGSL/man/LdFlags.Rd 2013-10-10 01:23:31 UTC (rev 4569) @@ -15,7 +15,7 @@ } \usage{ LdFlags(print=TRUE) -RcppLdFlags(print=TRUE) +CFlags(print=TRUE) } \arguments{ \item{print}{A boolean determining whether the requested value is From noreply at r-forge.r-project.org Sun Oct 13 00:41:58 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Sun, 13 Oct 2013 00:41:58 +0200 (CEST) Subject: [Rcpp-commits] r4570 - in pkg/Rcpp: . inst man Message-ID: <20131012224158.780081863B7@r-forge.r-project.org> Author: edd Date: 2013-10-13 00:41:57 +0200 (Sun, 13 Oct 2013) New Revision: 4570 Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/DESCRIPTION pkg/Rcpp/inst/NEWS.Rd pkg/Rcpp/man/RcppLdFlags.Rd Log: Rolled Depends: on R to "R (>= 3.0.0)" as required by the vignette building code (with thanks to Uwe Ligges) Also fixed one typo / grammar error in Rd file Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-10 01:23:31 UTC (rev 4569) +++ pkg/Rcpp/ChangeLog 2013-10-12 22:41:57 UTC (rev 4570) @@ -1,3 +1,8 @@ +2013-10-12 Dirk Eddelbuettel + + * DESCRIPTION (Depends): Rolled Depends: on R to "R (>= 3.0.0)" as + required by the vignette building code (with thanks to Uwe Ligges) + 2013-10-08 Dirk Eddelbuettel * NAMESPACE: Export LdFlags as well as RcppLdFlags Modified: pkg/Rcpp/DESCRIPTION =================================================================== --- pkg/Rcpp/DESCRIPTION 2013-10-10 01:23:31 UTC (rev 4569) +++ pkg/Rcpp/DESCRIPTION 2013-10-12 22:41:57 UTC (rev 4570) @@ -49,7 +49,7 @@ Additional documentation is available via the paper by Eddelbuettel and Francois (2011, JSS) paper and the book by Eddelbuettel (2013, Springer); see 'citation("Rcpp")' for details. -Depends: R (>= 2.15.1) +Depends: R (>= 3.0.0) Imports: methods Suggests: RUnit, inline, rbenchmark, highlight VignetteBuilder: highlight Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-10 01:23:31 UTC (rev 4569) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-12 22:41:57 UTC (rev 4570) @@ -21,6 +21,11 @@ \item Export linking helper function \code{LdFlags} as well as \code{RcppLdFlags}. } + \item Changes in R setup: + \itemize{ + \item Raise requirement for R itself to be version 3.0.0 or later + as needed by the vignette processing + } } } Modified: pkg/Rcpp/man/RcppLdFlags.Rd =================================================================== --- pkg/Rcpp/man/RcppLdFlags.Rd 2013-10-10 01:23:31 UTC (rev 4569) +++ pkg/Rcpp/man/RcppLdFlags.Rd 2013-10-12 22:41:57 UTC (rev 4570) @@ -4,7 +4,7 @@ \title{Provide Rcpp Linker Flags} \description{ \code{LdFlags} and \code{RcppLdFlags} return the required flags and - options for the the system linker. This allows portable use of + options for the system linker. This allows portable use of \pkg{Rcpp} as package location as well as operating-system specific details are abstracted away behind the interface of this function. From noreply at r-forge.r-project.org Mon Oct 14 19:50:40 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Mon, 14 Oct 2013 19:50:40 +0200 (CEST) Subject: [Rcpp-commits] r4571 - in pkg/RcppEigen: . inst/include vignettes Message-ID: <20131014175040.922E2184AD5@r-forge.r-project.org> Author: dmbates Date: 2013-10-14 19:50:40 +0200 (Mon, 14 Oct 2013) New Revision: 4571 Modified: pkg/RcppEigen/.Rbuildignore pkg/RcppEigen/DESCRIPTION pkg/RcppEigen/NEWS pkg/RcppEigen/NEWS.org pkg/RcppEigen/inst/include/RcppEigenCholmod.h pkg/RcppEigen/vignettes/RcppEigen-Introduction.Rnw Log: Create a version compatible with updates cholmod_factor struct in Matrix package. Modified: pkg/RcppEigen/.Rbuildignore =================================================================== --- pkg/RcppEigen/.Rbuildignore 2013-10-12 22:41:57 UTC (rev 4570) +++ pkg/RcppEigen/.Rbuildignore 2013-10-14 17:50:40 UTC (rev 4571) @@ -1 +1,4 @@ vignettes/jss835/ +vignettes/RcppEigen-intro-nojss.* +NEWS.org +vignettes/jss.bst \ No newline at end of file Modified: pkg/RcppEigen/DESCRIPTION =================================================================== --- pkg/RcppEigen/DESCRIPTION 2013-10-12 22:41:57 UTC (rev 4570) +++ pkg/RcppEigen/DESCRIPTION 2013-10-14 17:50:40 UTC (rev 4571) @@ -1,8 +1,8 @@ Package: RcppEigen Type: Package Title: Rcpp integration for the Eigen templated linear algebra library. -Version: 0.3.1.2.1 -Date: 2013-01-14 +Version: 0.3.1.2.3 +Date: 2013-10-14 Author: Douglas Bates, Romain Francois and Dirk Eddelbuettel Maintainer: Douglas Bates Description: R and Eigen integration using Rcpp. @@ -23,9 +23,9 @@ bindings/bridge to Eigen) is licensed under the GNU GPL version 2 or later, as is the rest of Rcpp. License: GPL (>= 2) -Depends: Rcpp (>= 0.10.1), Matrix (>= 1.0-1), R(>= 2.14.0) +Depends: R(>= 3.0.2) LazyLoad: yes -LinkingTo: Rcpp -Imports: Matrix +LinkingTo: Rcpp (>= 0.10.5) +Imports: Matrix (>= 1.0-16), Rcpp Suggests: inline, RUnit, testthat URL: http://eigen.tuxfamily.org Modified: pkg/RcppEigen/NEWS =================================================================== --- pkg/RcppEigen/NEWS 2013-10-12 22:41:57 UTC (rev 4570) +++ pkg/RcppEigen/NEWS 2013-10-14 17:50:40 UTC (rev 4571) @@ -1,20 +1,28 @@ - NEWS for RcppEigen-0.3.0 - ======================== + NEWS for RcppEigen-0.3.1.2.3 + ============================ Author: Douglas Bates -Date: 2013-02-02 Sun +Date: 2013-10-14 Mon Table of Contents ================= -1 New features visible to users in RcppEigen-0.3.1.2 -2 New features visible to users in RcppEigen-0.3.1 -3 New features visible to users in RcppEigen-0.2.0 -4 New features not visible to users in RcppEigen-0.2.0 +1 New features visible to users in RcppEigen-0.3.1.2.3 +2 New features visible to users in RcppEigen-0.3.1.2 +3 New features visible to users in RcppEigen-0.3.1 +4 New features visible to users in RcppEigen-0.2.0 +5 New features not visible to users in RcppEigen-0.2.0 -1 New features visible to users in RcppEigen-0.3.1.2 ------------------------------------------------------ +1 New features visible to users in RcppEigen-0.3.1.2.3 +======================================================= + + Fix to RcppEigenCholmod.h to incorporate changes in the + cholmod_factor struct. These changes are necessary if code + compiled against RcppEigen that uses CHOLMOD factors is to be run + with versions of the Matrix package >= 1.1-0 + +2 New features visible to users in RcppEigen-0.3.1.2 +===================================================== + Upgraded to Eigen 3.1.2 + Fixes to RcppEigenWrap.h and adjustment of tests accordingly. The changes allow RowMajor matrices to be wrapped (thanks to Gael @@ -27,8 +35,8 @@ Makefiles + Fixes related to Rcpp 0.10.* -2 New features visible to users in RcppEigen-0.3.1 ---------------------------------------------------- +3 New features visible to users in RcppEigen-0.3.1 +=================================================== + Upgraded to Eigen 3.1.0 + Removed the "unsupported" Eigen module AutoDiff which defined a macro "sign" that conflicted with a function in the R API (which @@ -39,8 +47,8 @@ conflicting definitions in the std:: namespace and the R API and Eigen, which I don't have time to investigate. -3 New features visible to users in RcppEigen-0.2.0 ---------------------------------------------------- +4 New features visible to users in RcppEigen-0.2.0 +=================================================== + Upgraded the version of Eigen to 3.1.0-alpha2, in which the sparse matrix modules are now in the "supported" tree. + Added several "unsupported" Eigen modules including @@ -66,8 +74,8 @@ + The ability to wrap RowMajor sparse matrices and to use as etc. -4 New features not visible to users in RcppEigen-0.2.0 -------------------------------------------------------- +5 New features not visible to users in RcppEigen-0.2.0 +======================================================= + Migrated some tests to the testthat package. Currently there is some difficulty with combining testthat, inline and R CMD check. These checks are available as Modified: pkg/RcppEigen/NEWS.org =================================================================== --- pkg/RcppEigen/NEWS.org 2013-10-12 22:41:57 UTC (rev 4570) +++ pkg/RcppEigen/NEWS.org 2013-10-14 17:50:40 UTC (rev 4571) @@ -1,11 +1,17 @@ -#+TITLE: NEWS for RcppEigen-0.3.0 +#+TITLE: NEWS for RcppEigen-0.3.1.2.3 #+AUTHOR: Douglas Bates #+EMAIL: bates at stat.wisc.edu -#+DATE: 2013-02-02 Sun +#+DATE: 2013-10-14 Mon #+DESCRIPTION: News regarding the latest version of RcppEigen #+KEYWORDS: #+LANGUAGE: en +* New features visible to users in RcppEigen-0.3.1.2.3 + + Fix to RcppEigenCholmod.h to incorporate changes in the + cholmod_factor struct. These changes are necessary if code + compiled against RcppEigen that uses CHOLMOD factors is to be run + with versions of the Matrix package >= 1.1-0 + * New features visible to users in RcppEigen-0.3.1.2 + Upgraded to Eigen 3.1.2 + Fixes to RcppEigenWrap.h and adjustment of tests accordingly. Modified: pkg/RcppEigen/inst/include/RcppEigenCholmod.h =================================================================== --- pkg/RcppEigen/inst/include/RcppEigenCholmod.h 2013-10-12 22:41:57 UTC (rev 4570) +++ pkg/RcppEigen/inst/include/RcppEigenCholmod.h 2013-10-14 17:50:40 UTC (rev 4571) @@ -26,26 +26,43 @@ extern "C" { #endif -// from ../../src/UFconfig/UFconfig.h - line 51 : -#ifndef UF_long +// from Matrix/src/SuiteSparse_config/SuiteSparse_config.h - line 51 : +#ifndef SuiteSparse_long #ifdef _WIN64 -#define UF_long __int64 -#define UF_long_max _I64_MAX -#define UF_long_idd "I64d" +#define SuiteSparse_long __int64 +#define SuiteSparse_long_max _I64_MAX +#define SuiteSparse_long_idd "I64d" #else -#define UF_long long -#define UF_long_max LONG_MAX -#define UF_long_idd "ld" +#define SuiteSparse_long long +#define SuiteSparse_long_max LONG_MAX +#define SuiteSparse_long_idd "ld" #endif -#define UF_long_id "%" UF_long_idd +#define SuiteSparse_long_id "%" SuiteSparse_long_idd #endif -#define CHOLMOD_DATE "Jan 25, 2011" +/* For backward compatibility with prior versions of SuiteSparse. The UF_* + * macros are deprecated and will be removed in a future version. */ +#ifndef UF_long +#define UF_long SuiteSparse_long +#define UF_long_max SuiteSparse_long_max +#define UF_long_idd SuiteSparse_long_idd +#define UF_long_id SuiteSparse_long_id +#endif + +#define CHOLMOD_HAS_VERSION_FUNCTION + +#define CHOLMOD_DATE "April 25, 2013" +#define CHOLMOD_VER_CODE(main,sub) ((main) * 1000 + (sub)) +#define CHOLMOD_MAIN_VERSION 2 +#define CHOLMOD_SUB_VERSION 1 +#define CHOLMOD_SUBSUB_VERSION 2 +#define CHOLMOD_VERSION \ + CHOLMOD_VER_CODE(CHOLMOD_MAIN_VERSION,CHOLMOD_SUB_VERSION) // from ../../src/CHOLMOD/Include/cholmod_core.h - line 275 : /* Each CHOLMOD object has its own type code. */ @@ -61,9 +78,13 @@ /* itype defines the types of integer used: */ #define CHOLMOD_INT 0 /* all integer arrays are int */ -#define CHOLMOD_INTLONG 1 /* most are int, some are UF_long */ -#define CHOLMOD_LONG 2 /* all integer arrays are UF_long */ +#define CHOLMOD_INTLONG 1 /* most are int, some are SuiteSparse_long */ +#define CHOLMOD_LONG 2 /* all integer arrays are SuiteSparse_long */ +/* The itype of all parameters for all CHOLMOD routines must match. + * FUTURE WORK: CHOLMOD_INTLONG is not yet supported. + */ + /* dtype defines what the numerical type is (double or float): */ #define CHOLMOD_DOUBLE 0 /* all numerical values are double */ #define CHOLMOD_SINGLE 1 /* all numerical values are float */ @@ -92,6 +113,7 @@ #define CHOLMOD_OUT_OF_MEMORY (-2) /* failure: out of memory */ #define CHOLMOD_TOO_LARGE (-3) /* failure: integer overflow occured */ #define CHOLMOD_INVALID (-4) /* failure: invalid input */ +#define CHOLMOD_GPU_PROBLEM (-5) /* failure: GPU fatal error */ #define CHOLMOD_NOT_POSDEF (1) /* warning: matrix not pos. def. */ #define CHOLMOD_DSMALL (2) /* warning: D for LDL' or diag(L) or */ /* LL' has tiny absolute value */ @@ -731,7 +753,7 @@ } cholmod_sparse ; -// in ../../src/CHOLMOD/Include/cholmod_core.h skip forward to - line 1495 : +// in ../../src/CHOLMOD/Include/cholmod_core.h skip forward to - line 1554 : /* A symbolic and numeric factorization, either simplicial or supernodal. * In all cases, the row indices in the columns of L are kept sorted. */ @@ -755,6 +777,9 @@ void *Perm ; /* size n, permutation used */ void *ColCount ; /* size n, column counts for simplicial L */ + void *IPerm ; /* size n, inverse permutation. Only created by + * cholmod_solve2 if Bset is used. */ + /* ---------------------------------------------------------------------- */ /* simplicial factorization */ /* ---------------------------------------------------------------------- */ @@ -846,17 +871,17 @@ * except for the numerical values (x and z). */ - int itype ; /* The integer arrays are Perm, ColCount, p, i, nz, - * next, prev, super, pi, px, and s. If itype is - * CHOLMOD_INT, all of these are int arrays. - * CHOLMOD_INTLONG: p, pi, px are UF_long, others int. - * CHOLMOD_LONG: all integer arrays are UF_long. */ - int xtype ; /* pattern, real, complex, or zomplex */ - int dtype ; /* x and z double or float */ + int itype ; /* The integer arrays are Perm, ColCount, p, i, nz, + * next, prev, super, pi, px, and s. If itype is + * CHOLMOD_INT, all of these are int arrays. + * CHOLMOD_INTLONG: p, pi, px are SuiteSparse_long, others int. + * CHOLMOD_LONG: all integer arrays are SuiteSparse_long. */ + int xtype ; /* pattern, real, complex, or zomplex */ + int dtype ; /* x and z double or float */ } cholmod_factor ; -// in ../../src/CHOLMOD/Include/cholmod_core.h skip forward to - line 1773 : +// in ../../src/CHOLMOD/Include/cholmod_core.h skip forward to - line 1836 : /* A dense matrix in column-oriented form. It has no itype since it contains * no integers. Entry in row i and column j is located in x [i+j*d]. */ @@ -874,7 +899,7 @@ } cholmod_dense ; -// in ../../src/CHOLMOD/Include/cholmod_core.h skip forward to - line 1952 : +// in ../../src/CHOLMOD/Include/cholmod_core.h skip forward to - line 2033 : /* A sparse matrix stored in triplet form. */ typedef struct cholmod_triplet_struct @@ -889,12 +914,55 @@ void *x ; /* size nzmax or 2*nzmax, if present */ void *z ; /* size nzmax, if present */ - int stype ; /* symmetry type */ - // [................................] - int itype ; /* CHOLMOD_LONG: i and j are UF_long. Otherwise int. */ - int xtype ; /* pattern, real, complex, or zomplex */ - int dtype ; /* x and z are double or float */ + int stype ; /* Describes what parts of the matrix are considered: + * + * 0: matrix is "unsymmetric": use both upper and lower triangular parts + * (the matrix may actually be symmetric in pattern and value, but + * both parts are explicitly stored and used). May be square or + * rectangular. + * >0: matrix is square and symmetric. Entries in the lower triangular + * part are transposed and added to the upper triangular part when + * the matrix is converted to cholmod_sparse form. + * <0: matrix is square and symmetric. Entries in the upper triangular + * part are transposed and added to the lower triangular part when + * the matrix is converted to cholmod_sparse form. + * + * Note that stype>0 and stype<0 are different for cholmod_sparse and + * cholmod_triplet. The reason is simple. You can permute a symmetric + * triplet matrix by simply replacing a row and column index with their + * new row and column indices, via an inverse permutation. Suppose + * P = L->Perm is your permutation, and Pinv is an array of size n. + * Suppose a symmetric matrix A is represent by a triplet matrix T, with + * entries only in the upper triangular part. Then the following code: + * + * Ti = T->i ; + * Tj = T->j ; + * for (k = 0 ; k < n ; k++) Pinv [P [k]] = k ; + * for (k = 0 ; k < nz ; k++) Ti [k] = Pinv [Ti [k]] ; + * for (k = 0 ; k < nz ; k++) Tj [k] = Pinv [Tj [k]] ; + * + * creates the triplet form of C=P*A*P'. However, if T initially + * contains just the upper triangular entries (T->stype = 1), after + * permutation it has entries in both the upper and lower triangular + * parts. These entries should be transposed when constructing the + * cholmod_sparse form of A, which is what cholmod_triplet_to_sparse + * does. Thus: + * + * C = cholmod_triplet_to_sparse (T, 0, &Common) ; + * + * will return the matrix C = P*A*P'. + * + * Since the triplet matrix T is so simple to generate, it's quite easy + * to remove entries that you do not want, prior to converting T to the + * cholmod_sparse form. So if you include these entries in T, CHOLMOD + * assumes that there must be a reason (such as the one above). Thus, + * no entry in a triplet matrix is ever ignored. + */ + int itype ; /* CHOLMOD_LONG: i and j are SuiteSparse_long. Otherwise int */ + int xtype ; /* pattern, real, complex, or zomplex */ + int dtype ; /* x and z are double or float */ + } cholmod_triplet ; // -------- our (Matrix) short and const_ forms of of the pointers : Modified: pkg/RcppEigen/vignettes/RcppEigen-Introduction.Rnw =================================================================== --- pkg/RcppEigen/vignettes/RcppEigen-Introduction.Rnw 2013-10-12 22:41:57 UTC (rev 4570) +++ pkg/RcppEigen/vignettes/RcppEigen-Introduction.Rnw 2013-10-14 17:50:40 UTC (rev 4571) @@ -52,7 +52,7 @@ URL: \url{http://dirk.eddelbuettel.com}\\ } -%% need no \usepackage{Sweave.sty} +\usepackage{Sweave} \newcommand{\argmin}{\operatorname{argmin}\displaylimits} \newcommand{\rank}{\operatorname{rank}} From noreply at r-forge.r-project.org Mon Oct 14 19:58:23 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Mon, 14 Oct 2013 19:58:23 +0200 (CEST) Subject: [Rcpp-commits] r4572 - in pkg/Rcpp: . inst/include inst/include/Rcpp inst/include/Rcpp/api/meat inst/include/Rcpp/protection inst/include/Rcpp/vector Message-ID: <20131014175823.1F632184AD5@r-forge.r-project.org> Author: romain Date: 2013-10-14 19:58:22 +0200 (Mon, 14 Oct 2013) New Revision: 4572 Added: pkg/Rcpp/inst/include/Rcpp/api/meat/protection.h pkg/Rcpp/inst/include/Rcpp/protection/ pkg/Rcpp/inst/include/Rcpp/protection/Armor.h pkg/Rcpp/inst/include/Rcpp/protection/Shelter.h pkg/Rcpp/inst/include/Rcpp/protection/Shield.h pkg/Rcpp/inst/include/Rcpp/protection/protection.h Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/DESCRIPTION pkg/Rcpp/inst/include/Rcpp/api/meat/meat.h pkg/Rcpp/inst/include/Rcpp/vector/Vector.h pkg/Rcpp/inst/include/RcppCommon.h Log: added Shield Armor and Shelter Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-14 17:50:40 UTC (rev 4571) +++ pkg/Rcpp/ChangeLog 2013-10-14 17:58:22 UTC (rev 4572) @@ -1,3 +1,8 @@ +2013-10-14 Romain Francois + + * inst/include/Rcpp/protection/protection.h: added Shield/Shelter/Armor + * DESCRIPTION: bump to version 0.10.5.3 + 2013-10-12 Dirk Eddelbuettel * DESCRIPTION (Depends): Rolled Depends: on R to "R (>= 3.0.0)" as Modified: pkg/Rcpp/DESCRIPTION =================================================================== --- pkg/Rcpp/DESCRIPTION 2013-10-14 17:50:40 UTC (rev 4571) +++ pkg/Rcpp/DESCRIPTION 2013-10-14 17:58:22 UTC (rev 4572) @@ -1,6 +1,6 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 0.10.5.2 +Version: 0.10.5.3 Date: $Date$ Author: Dirk Eddelbuettel and Romain Francois, with contributions by Douglas Bates, John Chambers and JJ Allaire Modified: pkg/Rcpp/inst/include/Rcpp/api/meat/meat.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/api/meat/meat.h 2013-10-14 17:50:40 UTC (rev 4571) +++ pkg/Rcpp/inst/include/Rcpp/api/meat/meat.h 2013-10-14 17:58:22 UTC (rev 4572) @@ -30,6 +30,7 @@ #include #include #include +#include #include #endif Added: pkg/Rcpp/inst/include/Rcpp/api/meat/protection.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/api/meat/protection.h (rev 0) +++ pkg/Rcpp/inst/include/Rcpp/api/meat/protection.h 2013-10-14 17:58:22 UTC (rev 4572) @@ -0,0 +1,43 @@ +// Copyright (C) 2013 Romain Francois +// +// This file is part of Rcpp. +// +// Rcpp is free software: you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// Rcpp is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Rcpp. If not, see . + +#ifndef Rcpp_protection_meat_H +#define Rcpp_protection_meat_H + +namespace Rcpp{ + + template + template + Armor::Armor( U x ) : data() { + init( wrap(x) ) ; + } + + template + template + inline Armor& Armor::operator=( U x ){ + REPROTECT(data = wrap(x), index) ; + return *this ; + } + + template + template + inline Shield::operator U() const { + return as(t) ; + } +} + +#endif Added: pkg/Rcpp/inst/include/Rcpp/protection/Armor.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/protection/Armor.h (rev 0) +++ pkg/Rcpp/inst/include/Rcpp/protection/Armor.h 2013-10-14 17:58:22 UTC (rev 4572) @@ -0,0 +1,58 @@ +// Copyright (C) 2013 Romain Francois +// +// This file is part of Rcpp. +// +// Rcpp is free software: you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// Rcpp is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Rcpp. If not, see . + +#ifndef Rcpp_protection_Armor_H +#define Rcpp_protection_Armor_H + +namespace Rcpp { + + template + class Armor { + public: + + Armor() : data(){ + init(R_NilValue) ; + } + + template Armor( U x ); + + inline operator SEXP(){ + return data ; + } + + template + inline Armor& operator=( U x ) ; + + ~Armor(){ + UNPROTECT(1) ; + } + + private: + void init(SEXP x){ + PROTECT_WITH_INDEX( data = x, &index ) ; + } + + SEXP data ; + PROTECT_INDEX index ; + + // not defined on purpose + Armor(const Armor&) ; + Armor& operator=(const Armor&) ; + } ; +} + +#endif Added: pkg/Rcpp/inst/include/Rcpp/protection/Shelter.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/protection/Shelter.h (rev 0) +++ pkg/Rcpp/inst/include/Rcpp/protection/Shelter.h 2013-10-14 17:58:22 UTC (rev 4572) @@ -0,0 +1,47 @@ +// Copyright (C) 2013 Romain Francois +// +// This file is part of Rcpp. +// +// Rcpp is free software: you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// Rcpp is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Rcpp. If not, see . + +#ifndef Rcpp_protection_Shelter_H +#define Rcpp_protection_Shelter_H + +namespace Rcpp { + + template + class Shelter { + public: + Shelter() : nprotected(0){} + + inline SEXP operator()(SEXP x){ + nprotected++; + return PROTECT(x) ; + } + + ~Shelter(){ + UNPROTECT(nprotected) ; + nprotected = 0 ; + } + + private: + int nprotected ; + + // not defined on purpose + Shelter(const Shelter&) ; + Shelter& operator=(const Shelter&) ; + } ; +} + +#endif Added: pkg/Rcpp/inst/include/Rcpp/protection/Shield.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/protection/Shield.h (rev 0) +++ pkg/Rcpp/inst/include/Rcpp/protection/Shield.h 2013-10-14 17:58:22 UTC (rev 4572) @@ -0,0 +1,44 @@ +// Copyright (C) 2013 Romain Francois +// +// This file is part of Rcpp. +// +// Rcpp is free software: you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// Rcpp is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Rcpp. If not, see . + +#ifndef Rcpp_protection_Shield_H +#define Rcpp_protection_Shield_H + +namespace Rcpp { + + template + class Shield{ + public: + Shield( SEXP t_) : t(PROTECT(t_)){} + ~Shield(){ + UNPROTECT(1) ; + } + + template + inline operator U() const ; + + private: + // not defined on purpose + Shield( const Shield& ) ; + Shield& operator=( const Shield& ) ; + + SEXP t ; + } ; + +} + +#endif Added: pkg/Rcpp/inst/include/Rcpp/protection/protection.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/protection/protection.h (rev 0) +++ pkg/Rcpp/inst/include/Rcpp/protection/protection.h 2013-10-14 17:58:22 UTC (rev 4572) @@ -0,0 +1,25 @@ +// Copyright (C) 2013 Romain Francois +// +// This file is part of Rcpp. +// +// Rcpp is free software: you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// Rcpp is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Rcpp. If not, see . + +#ifndef Rcpp_protection_protection_H +#define Rcpp_protection_protection_H + +#include +#include +#include + +#endif Modified: pkg/Rcpp/inst/include/Rcpp/vector/Vector.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/vector/Vector.h 2013-10-14 17:50:40 UTC (rev 4571) +++ pkg/Rcpp/inst/include/Rcpp/vector/Vector.h 2013-10-14 17:58:22 UTC (rev 4572) @@ -88,7 +88,7 @@ update_vector(); } Vector( const char* st ) : RObject( internal::vector_from_string(st) ){ - RCPP_DEBUG_2( "Vector<%d>( const char* = %s )", RTYPE, st.c_str() ) + RCPP_DEBUG_2( "Vector<%d>( const char* = %s )", RTYPE, st ) update_vector(); } Modified: pkg/Rcpp/inst/include/RcppCommon.h =================================================================== --- pkg/Rcpp/inst/include/RcppCommon.h 2013-10-14 17:50:40 UTC (rev 4571) +++ pkg/Rcpp/inst/include/RcppCommon.h 2013-10-14 17:58:22 UTC (rev 4572) @@ -82,6 +82,7 @@ #include +#include #include #include #include From noreply at r-forge.r-project.org Tue Oct 15 16:19:37 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Tue, 15 Oct 2013 16:19:37 +0200 (CEST) Subject: [Rcpp-commits] r4573 - pkg/RcppArmadillo Message-ID: <20131015141937.1B98918346D@r-forge.r-project.org> Author: mpacala Date: 2013-10-15 16:19:36 +0200 (Tue, 15 Oct 2013) New Revision: 4573 Added: pkg/RcppArmadillo/test Log: debug r-forge building process, testfile to trigger build Added: pkg/RcppArmadillo/test =================================================================== From noreply at r-forge.r-project.org Wed Oct 16 11:57:44 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 16 Oct 2013 11:57:44 +0200 (CEST) Subject: [Rcpp-commits] r4574 - in pkg/Rcpp: . inst/include/Rcpp/api/meat Message-ID: <20131016095744.E565C1852C8@r-forge.r-project.org> Author: romain Date: 2013-10-16 11:57:44 +0200 (Wed, 16 Oct 2013) New Revision: 4574 Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/inst/include/Rcpp/api/meat/is.h Log: added missing is and is Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-15 14:19:36 UTC (rev 4573) +++ pkg/Rcpp/ChangeLog 2013-10-16 09:57:44 UTC (rev 4574) @@ -1,3 +1,8 @@ +2013-10-16 Romain Francois + + * include/Rcpp/api/meat/is.h : added missing implementation for + is and is + 2013-10-14 Romain Francois * inst/include/Rcpp/protection/protection.h: added Shield/Shelter/Armor Modified: pkg/Rcpp/inst/include/Rcpp/api/meat/is.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/api/meat/is.h 2013-10-15 14:19:36 UTC (rev 4573) +++ pkg/Rcpp/inst/include/Rcpp/api/meat/is.h 2013-10-16 09:57:44 UTC (rev 4574) @@ -74,6 +74,12 @@ template <> inline bool is__simple( SEXP x ){ return TYPEOF(x) == LGLSXP ; } + template <> inline bool is__simple( SEXP x ){ + return TYPEOF(x) == LANGSXP ; + } + template <> inline bool is__simple( SEXP x ){ + return TYPEOF(x) == LANGSXP ||?TYPEOF(x) == LISTSXP ; + } template <> inline bool is__simple( SEXP x ){ return TYPEOF(x) == VECSXP ; } From noreply at r-forge.r-project.org Wed Oct 16 23:00:56 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 16 Oct 2013 23:00:56 +0200 (CEST) Subject: [Rcpp-commits] r4575 - pkg/Rcpp/inst/include/Rcpp/api/meat Message-ID: <20131016210056.B20B4185044@r-forge.r-project.org> Author: edd Date: 2013-10-16 23:00:56 +0200 (Wed, 16 Oct 2013) New Revision: 4575 Modified: pkg/Rcpp/inst/include/Rcpp/api/meat/is.h Log: fix a compile error due to non-ascii chars; minor whitespace edits too Modified: pkg/Rcpp/inst/include/Rcpp/api/meat/is.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/api/meat/is.h 2013-10-16 09:57:44 UTC (rev 4574) +++ pkg/Rcpp/inst/include/Rcpp/api/meat/is.h 2013-10-16 21:00:56 UTC (rev 4575) @@ -30,23 +30,18 @@ SEXP dim = Rf_getAttrib( x, R_DimSymbol) ; return dim != R_NilValue && Rf_length(dim) == 2 ; } - template <> inline bool is__simple( SEXP x ){ return is_atomic(x) && TYPEOF(x) == INTSXP ; } - template <> inline bool is__simple( SEXP x ){ return is_atomic(x) && TYPEOF(x) == REALSXP ; } - template <> inline bool is__simple( SEXP x ){ return is_atomic(x) && TYPEOF(x) == LGLSXP ; } - template <> inline bool is__simple( SEXP x ){ return is_atomic(x) && TYPEOF(x) == STRSXP ; } - template <> inline bool is__simple( SEXP x ){ return is_atomic(x) && TYPEOF(x) == STRSXP ; } @@ -78,7 +73,7 @@ return TYPEOF(x) == LANGSXP ; } template <> inline bool is__simple( SEXP x ){ - return TYPEOF(x) == LANGSXP ||?TYPEOF(x) == LISTSXP ; + return (TYPEOF(x) == LANGSXP) || (TYPEOF(x) == LISTSXP); } template <> inline bool is__simple( SEXP x ){ return TYPEOF(x) == VECSXP ; From noreply at r-forge.r-project.org Wed Oct 16 23:20:08 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 16 Oct 2013 23:20:08 +0200 (CEST) Subject: [Rcpp-commits] r4576 - in pkg/Rcpp: . R inst man Message-ID: <20131016212008.D64B018603C@r-forge.r-project.org> Author: edd Date: 2013-10-16 23:20:08 +0200 (Wed, 16 Oct 2013) New Revision: 4576 Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/R/Rcpp.package.skeleton.R pkg/Rcpp/inst/NEWS.Rd pkg/Rcpp/man/Rcpp.package.skeleton.Rd Log: deprecate namespace argument in Rcpp.package.skeleton Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-16 21:00:56 UTC (rev 4575) +++ pkg/Rcpp/ChangeLog 2013-10-16 21:20:08 UTC (rev 4576) @@ -1,3 +1,9 @@ +2013-10-16 Dirk Eddelbuettel + + * R/Rcpp.package.skeleton.R (Rcpp.package.skeleton): Deprecate + namespace argument which package.skeleton() no longer uses + * man/Rcpp.package.skeleton.Rd: Updated documentation accordingly + 2013-10-16 Romain Francois * include/Rcpp/api/meat/is.h : added missing implementation for Modified: pkg/Rcpp/R/Rcpp.package.skeleton.R =================================================================== --- pkg/Rcpp/R/Rcpp.package.skeleton.R 2013-10-16 21:00:56 UTC (rev 4575) +++ pkg/Rcpp/R/Rcpp.package.skeleton.R 2013-10-16 21:20:08 UTC (rev 4576) @@ -1,6 +1,6 @@ # -*- tab-width: 4; -*- -# Copyright (C) 2009 - 2012 Dirk Eddelbuettel and Romain Francois +# Copyright (C) 2009 - 2013 Dirk Eddelbuettel and Romain Francois # # This file is part of Rcpp. # @@ -17,20 +17,17 @@ # You should have received a copy of the GNU General Public License # along with Rcpp. If not, see . -Rcpp.package.skeleton <- function( - name = "anRpackage", list = character(), environment = .GlobalEnv, - path = ".", force = FALSE, namespace = TRUE, - code_files = character(), cpp_files = character(), - example_code = TRUE, - attributes = TRUE, - module = FALSE, - author = "Who wrote it", - maintainer = if(missing( author)) "Who to complain to" else author, - email = "yourfault at somewhere.net", - license = "What Licence is it under ?" - ){ - - if (!is.character(cpp_files)) +Rcpp.package.skeleton <- function(name = "anRpackage", list = character(), + environment = .GlobalEnv, + path = ".", force = FALSE, + code_files = character(), cpp_files = character(), + example_code = TRUE, attributes = TRUE, module = FALSE, + author = "Who wrote it", + maintainer = if(missing( author)) "Who to complain to" else author, + email = "yourfault at somewhere.net", + license = "What Licence is it under ?") { + + if (!is.character(cpp_files)) stop("'cpp_files' must be a character vector") # set example_code if attributes is set if( isTRUE(attributes) ) @@ -40,7 +37,7 @@ if( !length(list) ){ fake <- TRUE assign( "Rcpp.fake.fun", function(){}, envir = env ) - if( example_code && !isTRUE(attributes)){ + if( example_code && !isTRUE(attributes)){ assign( "rcpp_hello_world", function(){}, envir = env ) remove_hello_world <- TRUE } else { @@ -59,7 +56,6 @@ # first let the traditional version do its business call <- match.call() call[[1]] <- as.name("package.skeleton") - call[["namespace"]] <- namespace # remove Rcpp specific arguments call <- call[ c( 1L, which( names(call) %in% names(formals(package.skeleton)))) ] @@ -117,15 +113,15 @@ } close( ns ) } - + # update the package description help page package_help_page <- file.path( root, "man", sprintf( "%s-package.Rd", name ) ) if( file.exists(package_help_page) ){ lines <- readLines(package_help_page) lines <- gsub( "What license is it under?", license, lines, fixed = TRUE ) - lines <- gsub( "Who to complain to ", - sprintf( "%s <%s>", maintainer, email), - lines, + lines <- gsub( "Who to complain to ", + sprintf( "%s <%s>", maintainer, email), + lines, fixed = TRUE ) lines <- gsub( "Who wrote it", author, lines, fixed = TRUE ) @@ -149,7 +145,7 @@ file.copy( file.path( skeleton, "Makevars.win" ), Makevars.win ) message( " >> added Makevars.win file with Rcpp settings" ) } - + if ( length(cpp_files) > 0L ) { for (file in cpp_files) { file.copy(file, src) @@ -157,10 +153,10 @@ } compileAttributes(root) } - + if( example_code ){ if ( isTRUE( attributes ) ) { - file.copy( file.path( skeleton, "rcpp_hello_world_attributes.cpp" ), + file.copy( file.path( skeleton, "rcpp_hello_world_attributes.cpp" ), file.path( src, "rcpp_hello_world.cpp" ) ) message( " >> added example src file using Rcpp attributes") compileAttributes(root) @@ -170,16 +166,16 @@ header <- gsub( "@PKG@", name, header, fixed = TRUE ) writeLines( header , file.path( src, "rcpp_hello_world.h" ) ) message( " >> added example header file using Rcpp classes") - + file.copy( file.path( skeleton, "rcpp_hello_world.cpp" ), src ) message( " >> added example src file using Rcpp classes") - + rcode <- readLines( file.path( skeleton, "rcpp_hello_world.R" ) ) rcode <- gsub( "@PKG@", name, rcode, fixed = TRUE ) writeLines( rcode , file.path( root, "R", "rcpp_hello_world.R" ) ) message( " >> added example R file calling the C++ example") } - + hello.Rd <- file.path( root, "man", "rcpp_hello_world.Rd") unlink( hello.Rd ) file.copy( Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-16 21:00:56 UTC (rev 4575) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-16 21:20:08 UTC (rev 4576) @@ -20,6 +20,8 @@ \itemize{ \item Export linking helper function \code{LdFlags} as well as \code{RcppLdFlags}. + \item Function \code{Rcpp.package.skeleton()} no longer passes a + \code{namespace} argument on to \code{package.skeleton()} } \item Changes in R setup: \itemize{ Modified: pkg/Rcpp/man/Rcpp.package.skeleton.Rd =================================================================== --- pkg/Rcpp/man/Rcpp.package.skeleton.Rd 2013-10-16 21:00:56 UTC (rev 4575) +++ pkg/Rcpp/man/Rcpp.package.skeleton.Rd 2013-10-16 21:20:08 UTC (rev 4576) @@ -13,7 +13,7 @@ \usage{ Rcpp.package.skeleton(name = "anRpackage", list = character(), environment = .GlobalEnv, path = ".", force = FALSE, - namespace = TRUE, code_files = character(), cpp_files = character(), + code_files = character(), cpp_files = character(), example_code = TRUE, attributes = TRUE, module = FALSE, author = "Who wrote it", maintainer = if(missing( author)) "Who to complain to" else author, @@ -27,7 +27,6 @@ \item{environment}{See \link[utils]{package.skeleton}} \item{path}{See \link[utils]{package.skeleton}} \item{force}{See \link[utils]{package.skeleton}} - \item{namespace}{See \link[utils]{package.skeleton}} \item{code_files}{See \link[utils]{package.skeleton}} \item{cpp_files}{A character vector with the paths to C++ source files to add to the package. } \item{example_code}{If TRUE, example c++ code using Rcpp is added to the package. } From noreply at r-forge.r-project.org Thu Oct 17 16:47:18 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Thu, 17 Oct 2013 16:47:18 +0200 (CEST) Subject: [Rcpp-commits] r4577 - in pkg/Rcpp: . R inst Message-ID: <20131017144718.86927185D9B@r-forge.r-project.org> Author: jjallaire Date: 2013-10-17 16:47:18 +0200 (Thu, 17 Oct 2013) New Revision: 4577 Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/R/Attributes.R pkg/Rcpp/inst/NEWS.Rd Log: sourceCpp now correctly binds to Rtools 3.0 and 3.1 Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-16 21:20:08 UTC (rev 4576) +++ pkg/Rcpp/ChangeLog 2013-10-17 14:47:18 UTC (rev 4577) @@ -1,3 +1,7 @@ +2013-10-17 JJ Allaire + + * R/Attributes.R: sourceCpp now correctly binds to Rtools 3.0 and 3.1 + 2013-10-16 Dirk Eddelbuettel * R/Rcpp.package.skeleton.R (Rcpp.package.skeleton): Deprecate Modified: pkg/Rcpp/R/Attributes.R =================================================================== --- pkg/Rcpp/R/Attributes.R 2013-10-16 21:20:08 UTC (rev 4576) +++ pkg/Rcpp/R/Attributes.R 2013-10-17 14:47:18 UTC (rev 4577) @@ -653,7 +653,8 @@ # Check version -- we only support 2.15 and 2.16 right now ver <- key$`Current Version` - if (identical("2.15", ver) || identical("2.16", ver)) { + if (identical("2.15", ver) || identical("2.16", ver) || + identical("3.0", ver) || identical("3.1", ver)) { # See if the InstallPath leads to the expected directories rToolsPath <- key$`InstallPath` Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-16 21:20:08 UTC (rev 4576) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-17 14:47:18 UTC (rev 4577) @@ -28,6 +28,10 @@ \item Raise requirement for R itself to be version 3.0.0 or later as needed by the vignette processing } + \item Changes in Rcpp attributes: + \itemize{ + \item \code{sourceCpp} now correctly binds to Rtools 3.0 and 3.1 + } } } From noreply at r-forge.r-project.org Fri Oct 18 14:55:12 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Fri, 18 Oct 2013 14:55:12 +0200 (CEST) Subject: [Rcpp-commits] r4578 - pkg/RcppExamples Message-ID: <20131018125513.04A38186025@r-forge.r-project.org> Author: edd Date: 2013-10-18 14:55:12 +0200 (Fri, 18 Oct 2013) New Revision: 4578 Added: pkg/RcppExamples/deleteMe Log: empty change to trigger build at R-Forge Added: pkg/RcppExamples/deleteMe =================================================================== From noreply at r-forge.r-project.org Mon Oct 21 01:10:59 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Mon, 21 Oct 2013 01:10:59 +0200 (CEST) Subject: [Rcpp-commits] r4579 - pkg/RcppGSL/R Message-ID: <20131020231059.9CD98185118@r-forge.r-project.org> Author: edd Date: 2013-10-21 01:10:59 +0200 (Mon, 21 Oct 2013) New Revision: 4579 Modified: pkg/RcppGSL/R/inline.R Log: fix a copy-and-pasto error (and trigger an R-Forge rebuild as well) Modified: pkg/RcppGSL/R/inline.R =================================================================== --- pkg/RcppGSL/R/inline.R 2013-10-18 12:55:12 UTC (rev 4578) +++ pkg/RcppGSL/R/inline.R 2013-10-20 23:10:59 UTC (rev 4579) @@ -13,7 +13,7 @@ ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License -## along with RcppArmadillo. If not, see . +## along with RcppGSL. If not, see . .pkgglobalenv <- new.env(parent=emptyenv()) From noreply at r-forge.r-project.org Tue Oct 22 20:38:37 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Tue, 22 Oct 2013 20:38:37 +0200 (CEST) Subject: [Rcpp-commits] r4580 - in pkg/RcppGSL: . inst Message-ID: <20131022183837.E0F071852C9@r-forge.r-project.org> Author: edd Date: 2013-10-22 20:38:37 +0200 (Tue, 22 Oct 2013) New Revision: 4580 Modified: pkg/RcppGSL/ChangeLog pkg/RcppGSL/DESCRIPTION pkg/RcppGSL/NAMESPACE pkg/RcppGSL/inst/NEWS.Rd Log: minor tweak of not importing LdPath from Rcpp (R-devel's R CMD check came to its senses) but added Rcpp to Suggests: as the vignette uses the bibtex file from Rcpp (via a call to Rcpp:::bib()) Modified: pkg/RcppGSL/ChangeLog =================================================================== --- pkg/RcppGSL/ChangeLog 2013-10-20 23:10:59 UTC (rev 4579) +++ pkg/RcppGSL/ChangeLog 2013-10-22 18:38:37 UTC (rev 4580) @@ -1,6 +1,11 @@ +2013-10-22 Dirk Eddelbuettel + + * DESCRIPTION: Added 'Suggests: Rcpp' to build vignette as we call + into Rcpp to get its bibtex file + 2013-10-09 Dirk Eddelbuettel - * NAMESPACE: Import LdFlags from Rcpp, and export LdFlags and CFlags + * NAMESPACE: Export LdFlags and CFlags * man/LdFlags.Rd: Added documentation for exported functions 2013-09-10 Dirk Eddelbuettel Modified: pkg/RcppGSL/DESCRIPTION =================================================================== --- pkg/RcppGSL/DESCRIPTION 2013-10-20 23:10:59 UTC (rev 4579) +++ pkg/RcppGSL/DESCRIPTION 2013-10-22 18:38:37 UTC (rev 4580) @@ -27,8 +27,7 @@ write a similar package against another library. License: GPL (>= 2) LazyLoad: yes -Suggests: RUnit, inline, highlight +Suggests: Rcpp, RUnit, inline, highlight LinkingTo: Rcpp -Imports: Rcpp SystemRequirements: GNU GSL VignetteBuilder: highlight Modified: pkg/RcppGSL/NAMESPACE =================================================================== --- pkg/RcppGSL/NAMESPACE 2013-10-20 23:10:59 UTC (rev 4579) +++ pkg/RcppGSL/NAMESPACE 2013-10-22 18:38:37 UTC (rev 4580) @@ -1,7 +1,6 @@ useDynLib(RcppGSL) importFrom(utils,assignInNamespace) -importFrom(Rcpp,LdFlags) export(fastLmPure, fastLm, LdFlags, Modified: pkg/RcppGSL/inst/NEWS.Rd =================================================================== --- pkg/RcppGSL/inst/NEWS.Rd 2013-10-20 23:10:59 UTC (rev 4579) +++ pkg/RcppGSL/inst/NEWS.Rd 2013-10-22 18:38:37 UTC (rev 4580) @@ -15,9 +15,8 @@ also been added for command-line builds. \item Unit tests now use \code{sourceCpp()} instead of \code{cxxfunction()} from the \pkg{inline} package - \item The \code{DESCRIPTION} file now uses \code{Imports: Rcpp} - rather than \code{Depends: Rcpp} to satisfy \code{R CMD check} under - the R development version. + \item The \code{DESCRIPTION} file now uses \code{Suggests: Rcpp} + (instead of \code{Depends: Rcpp}) to permit building of the vignette } } From noreply at r-forge.r-project.org Wed Oct 23 02:56:45 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 23 Oct 2013 02:56:45 +0200 (CEST) Subject: [Rcpp-commits] r4581 - in pkg/Rcpp/inst/include/Rcpp: api/meat traits Message-ID: <20131023005645.17701185AC8@r-forge.r-project.org> Author: edd Date: 2013-10-23 02:56:44 +0200 (Wed, 23 Oct 2013) New Revision: 4581 Modified: pkg/Rcpp/inst/include/Rcpp/api/meat/is.h pkg/Rcpp/inst/include/Rcpp/traits/is_finite.h Log: suppress two "unused paramter 'x'" warnings Modified: pkg/Rcpp/inst/include/Rcpp/api/meat/is.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/api/meat/is.h 2013-10-22 18:38:37 UTC (rev 4580) +++ pkg/Rcpp/inst/include/Rcpp/api/meat/is.h 2013-10-23 00:56:44 UTC (rev 4581) @@ -51,7 +51,7 @@ template <> inline bool is__simple(SEXP x) { return TYPEOF(x) == STRSXP && is_matrix(x); } - template <> inline bool is__simple( SEXP x ){ + template <> inline bool is__simple(SEXP) { return true ; } template <> inline bool is__simple( SEXP x ){ Modified: pkg/Rcpp/inst/include/Rcpp/traits/is_finite.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/traits/is_finite.h 2013-10-22 18:38:37 UTC (rev 4580) +++ pkg/Rcpp/inst/include/Rcpp/traits/is_finite.h 2013-10-23 00:56:44 UTC (rev 4581) @@ -46,8 +46,8 @@ } template <> - inline bool is_finite(SEXP x) { - return false; // see rcpp-devel on 2013-10-02; was: x != NA_STRING; + inline bool is_finite(SEXP) { + return false; // see rcpp-devel on 2013-10-02; was: x != NA_STRING; } template <> From noreply at r-forge.r-project.org Wed Oct 23 03:21:12 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 23 Oct 2013 03:21:12 +0200 (CEST) Subject: [Rcpp-commits] r4582 - pkg/RcppXts Message-ID: <20131023012112.AD8E0185C0A@r-forge.r-project.org> Author: edd Date: 2013-10-23 03:21:10 +0200 (Wed, 23 Oct 2013) New Revision: 4582 Modified: pkg/RcppXts/ChangeLog pkg/RcppXts/DESCRIPTION pkg/RcppXts/NAMESPACE Log: minor cleanup in NAMESPACE and DESCRIPTION Modified: pkg/RcppXts/ChangeLog =================================================================== --- pkg/RcppXts/ChangeLog 2013-10-23 00:56:44 UTC (rev 4581) +++ pkg/RcppXts/ChangeLog 2013-10-23 01:21:10 UTC (rev 4582) @@ -1,3 +1,7 @@ +2013-10-22 Dirk Eddelbuettel + + * NAMESPACE: Minor cleanup + 2013-07-12 Dirk Eddelbuettel * man/RcppXts-package.Rd: Added some documentation for new functions Modified: pkg/RcppXts/DESCRIPTION =================================================================== --- pkg/RcppXts/DESCRIPTION 2013-10-23 00:56:44 UTC (rev 4581) +++ pkg/RcppXts/DESCRIPTION 2013-10-23 01:21:10 UTC (rev 4582) @@ -1,7 +1,7 @@ Package: RcppXts Type: Package Title: Interface the xts API via Rcpp -Version: 0.0.4.1 +Version: 0.0.4.2 Date: $Date$ Author: Dirk Eddelbuettel Maintainer: Dirk Eddelbuettel @@ -11,6 +11,7 @@ In its current state, the package is mostly a proof-of-concept to support adding useful functions, and does not yet add any of its own. License: GPL (>= 2) -Depends: methods, Rcpp (>= 0.10.2), xts (>= 0.9-6) +Depends: xts (>= 0.9-6) +Imports: methods, Rcpp (>= 0.10.2) LinkingTo: Rcpp, xts RcppModules: xts Modified: pkg/RcppXts/NAMESPACE =================================================================== --- pkg/RcppXts/NAMESPACE 2013-10-23 00:56:44 UTC (rev 4581) +++ pkg/RcppXts/NAMESPACE 2013-10-23 01:21:10 UTC (rev 4582) @@ -1,5 +1,6 @@ useDynLib(RcppXts) exportPattern("^[[:alpha:]]+") -import(Rcpp) +import(methods) +importFrom(Rcpp, loadModule) import(xts) From noreply at r-forge.r-project.org Thu Oct 24 17:57:12 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Thu, 24 Oct 2013 17:57:12 +0200 (CEST) Subject: [Rcpp-commits] r4583 - pkg/RcppEigen Message-ID: <20131024155712.B4DA8185011@r-forge.r-project.org> Author: dmbates Date: 2013-10-24 17:57:12 +0200 (Thu, 24 Oct 2013) New Revision: 4583 Modified: pkg/RcppEigen/DESCRIPTION Log: Release date Modified: pkg/RcppEigen/DESCRIPTION =================================================================== --- pkg/RcppEigen/DESCRIPTION 2013-10-23 01:21:10 UTC (rev 4582) +++ pkg/RcppEigen/DESCRIPTION 2013-10-24 15:57:12 UTC (rev 4583) @@ -2,7 +2,7 @@ Type: Package Title: Rcpp integration for the Eigen templated linear algebra library. Version: 0.3.1.2.3 -Date: 2013-10-14 +Date: 2013-10-24 Author: Douglas Bates, Romain Francois and Dirk Eddelbuettel Maintainer: Douglas Bates Description: R and Eigen integration using Rcpp. @@ -26,6 +26,6 @@ Depends: R(>= 3.0.2) LazyLoad: yes LinkingTo: Rcpp (>= 0.10.5) -Imports: Matrix (>= 1.0-16), Rcpp +Imports: Matrix (>= 1.1-0), Rcpp Suggests: inline, RUnit, testthat URL: http://eigen.tuxfamily.org From noreply at r-forge.r-project.org Sun Oct 27 02:00:06 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Sun, 27 Oct 2013 02:00:06 +0100 (CET) Subject: [Rcpp-commits] r4584 - testlogs Message-ID: <20131027010006.B3019185E5C@r-forge.r-project.org> Author: edd Date: 2013-10-27 02:00:06 +0100 (Sun, 27 Oct 2013) New Revision: 4584 Added: testlogs/Rcpp-Summary-20131026.R testlogs/Rcpp-check-20131026-1602.txt testlogs/result-20131026-183339.RData testlogs/result-20131026-183339.txt Log: Rcpp release regression tests on 2013-10-26: 115 pass, 30 fail for missing, 1 fails as before for missing x11 Added: testlogs/Rcpp-Summary-20131026.R =================================================================== --- testlogs/Rcpp-Summary-20131026.R (rev 0) +++ testlogs/Rcpp-Summary-20131026.R 2013-10-27 01:00:06 UTC (rev 4584) @@ -0,0 +1,90 @@ +## results here are edited after a second run following manual +## installation of a number of package missing in the first run + +## loads 'res' +load("~/svn/rcpp/testlogs/result-20131026-183339.RData") + +## good <- as.character(subset(res, res==0)[,1]) +## dput(good) +goodPkg <- c("accelerometry", "acer", "AdaptiveSparsity", "ALKr", "Amelia", + "apcluster", "BayesComm", "bcp", "bcpa", "bfa", "bfp", "bifactorial", + "blockcluster", "ccaPP", "cda", "cladoRcpp", "clogitL1", "clusteval", + "ConConPiWiFun", "coneproj", "Delaporte", "ecp", "EpiContactTrace", + "ExactNumCI", "fastGHQuad", "FastPCS", "FastRCS", "FBFsearch", + "fdaMixed", "forecast", "gRbase", "gRim", "growcurves", "GSE", + "GUTS", "GxM", "HLMdiag", "httpuv", "inarmix", "jaatha", "Kmisc", + "lm.br", "maxent", "minqa", "MPTinR", "msgl", "multmod", "mvabund", + "MVB", "NetSim", "NetworkAnalysis", "oem", "PedCNV", "phom", + "phylobase", "planar", "PReMiuM", "prospectr", "psgp", "Rankcluster", + "Rclusterpp", "RcppArmadillo", "RcppBDT", "rcppbugs", "RcppClassic", + "RcppClassicExamples", "RcppCNPy", "RcppDE", "RcppEigen", "RcppExamples", + "RcppGSL", "RcppOctave", "RcppProgress", "RcppRoll", "RcppSMC", + "RcppXts", "RcppZiggurat", "rexpokit", "rforensicbatwing", "rgam", + "RInside", "Rmalschains", "RMessenger", "rmgarch", "Rmixmod", + "robustgam", "robustHD", "rococo", "rotations", "RProtoBuf", + "RQuantLib", "RSNNS", "RSofia", "rugarch", "RVowpalWabbit", "SBSA", + "sdcMicro", "sequences", "simFrame", "sparseHessianFD", "sparseLTSEigen", + "SpatialTools", "stochvol", "survSNP", "tagcloud", "termstrc", + "tmg", "transmission", "trustOptim", "unmarked", "VIM", "waffect", + "WideLM", "wordcloud", "zic") + + +## bad <- as.character(subset(res, res==1)[,1]) +## dput(bad) +badPkg <- c("ALDqr", "CDM", "classify", "climdex.pcic", "disclapmix", "diversitree", + "fugeR", "Funclustering", "geiger", "GeneticTools", "gMWT", "GOsummaries", + "hsphase", "hypervolume", "KernSmoothIRT", "LaF", "lme4", "marked", + "mets", "mirt", "miscF", "ngspatial", "openair", "orQA", + "sdcTable", "sirt", "spacodiR", "surveillance", "TAM", "tbart", + "VIMGUI") + +bad4missing <- c("ALDqr", # 'HyperbolicDist? + "CDM", # sirt, TAM + "classify", # ?R2WinBUGS? ?R2jags? + "climdex.pcic", # 'PCIct' + "disclapmix", # disclap + "diversitree", # ?deSolve? ?subplex? + "fugeR", # snowfall + "Funclustering", # fda + "geiger", # ?msm? ?subplex? ?deSolve? ?coda? ?ncbit? + "GeneticTools", # ?gMWT? ?snpStats? + "gMWT", # ?clinfun? + "GOsummaries", # ?gProfileR? ?limma? + "hsphase", # snowfall + "hypervolume", # raster, maps + "LaF", # 'yaml' + "lme4", # MEMSS + "marked", # ?optimx? ?coda? ?R2admb? + "mets", # ?lava? ?timereg? ?prodlim? + "mirt", # ?GPArotation? + "miscF", # ?MCMCpack? + "ngspatial", # ?batchmeans? + "openair", # ?latticeExtra? ?hexbin? ?RgoogleMaps? ?png? ?mapdata? + "orQA", # ?genefilter? + "sdcTable", # ?lpSolveAPI? + "sirt", # ?pbivnorm? ?sfsmisc? + "spacodiR", # ?picante? + "surveillance", # ?spatstat? + "TAM", # ?tensor? ?sfsmisc? ?GPArotation? ?psych? + "tbart", # ?GISTools? + "VIMGUI") # VIM, survey + +bad4rcpp <- c() # Yay! + +## these fail initially but can all be run with some extra effort +bad4notrcpp <- c("KernSmoothIRT") # rgl failed, needs full x11 session + +good <- length(goodPkg) +bad <- length(bad4missing) + length(bad4rcpp) + length(bad4notrcpp) +stopifnot(all.equal(bad,length(badPkg))) ## account for GeoBIO + +cat("Good ", good, "\n") +cat("Bad ", bad, "\n") +cat(" RcppErr ", length(bad4rcpp), "\n") +cat(" MissDep ", length(bad4missing), "\n") +cat(" NotRcpp ", length(bad4notrcpp), "\n") +cat("Total ", good + bad, "\n") +cat("Error Pct ", length(bad4rcpp) / (good + bad), "\n") + + + Added: testlogs/Rcpp-check-20131026-1602.txt =================================================================== --- testlogs/Rcpp-check-20131026-1602.txt (rev 0) +++ testlogs/Rcpp-check-20131026-1602.txt 2013-10-27 01:00:06 UTC (rev 4584) @@ -0,0 +1,344 @@ +Started at 2013-10-26 16:02:56 + [1] "accelerometry" "acer" "AdaptiveSparsity" + [4] "ALDqr" "ALKr" "Amelia" + [7] "apcluster" "BayesComm" "bcp" + [10] "bcpa" "bfa" "bfp" + [13] "bifactorial" "blockcluster" "ccaPP" + [16] "cda" "CDM" "cladoRcpp" + [19] "classify" "climdex.pcic" "clogitL1" + [22] "clusteval" "ConConPiWiFun" "coneproj" + [25] "Delaporte" "disclapmix" "diversitree" + [28] "ecp" "EpiContactTrace" "ExactNumCI" + [31] "fastGHQuad" "FastPCS" "FastRCS" + [34] "FBFsearch" "fdaMixed" "forecast" + [37] "fugeR" "Funclustering" "geiger" + [40] "GeneticTools" "gMWT" "GOsummaries" + [43] "gRbase" "gRim" "growcurves" + [46] "GSE" "GUTS" "GxM" + [49] "HLMdiag" "hsphase" "httpuv" + [52] "hypervolume" "inarmix" "jaatha" + [55] "KernSmoothIRT" "Kmisc" "LaF" + [58] "lm.br" "lme4" "marked" + [61] "maxent" "mets" "minqa" + [64] "mirt" "miscF" "MPTinR" + [67] "msgl" "multmod" "mvabund" + [70] "MVB" "NetSim" "NetworkAnalysis" + [73] "ngspatial" "oem" "openair" + [76] "orQA" "PedCNV" "phom" + [79] "phylobase" "planar" "PReMiuM" + [82] "prospectr" "psgp" "Rankcluster" + [85] "Rclusterpp" "RcppArmadillo" "RcppBDT" + [88] "rcppbugs" "RcppClassic" "RcppClassicExamples" + [91] "RcppCNPy" "RcppDE" "RcppEigen" + [94] "RcppExamples" "RcppGSL" "RcppOctave" + [97] "RcppProgress" "RcppRoll" "RcppSMC" +[100] "RcppXts" "RcppZiggurat" "rexpokit" +[103] "rforensicbatwing" "rgam" "RInside" +[106] "Rmalschains" "RMessenger" "rmgarch" +[109] "Rmixmod" "robustgam" "robustHD" +[112] "rococo" "rotations" "RProtoBuf" +[115] "RQuantLib" "RSNNS" "RSofia" +[118] "rugarch" "RVowpalWabbit" "SBSA" +[121] "sdcMicro" "sdcTable" "sequences" +[124] "simFrame" "sirt" "spacodiR" +[127] "sparseHessianFD" "sparseLTSEigen" "SpatialTools" +[130] "stochvol" "surveillance" "survSNP" +[133] "tagcloud" "TAM" "tbart" +[136] "termstrc" "tmg" "transmission" +[139] "trustOptim" "unmarked" "VIM" +[142] "VIMGUI" "waffect" "WideLM" +[145] "wordcloud" "zic" +0 : accelerometry_2.0.tar.gz +0 : acer_0.1.2.tar.gz +0 : AdaptiveSparsity_1.2.tar.gz +1 : ALDqr_0.2.tar.gz +0 : ALKr_0.5.3.tar.gz +0 : Amelia_1.7.2.tar.gz +0 : apcluster_1.3.2.tar.gz +0 : BayesComm_0.1-0.tar.gz +0 : bcp_3.0.1.tar.gz +0 : bcpa_1.0.tar.gz +0 : bfa_0.3.tar.gz +0 : bfp_0.0-25.tar.gz +0 : bifactorial_1.4.7.tar.gz +0 : blockcluster_3.0.tar.gz +0 : ccaPP_0.2.0.tar.gz +0 : cda_1.3.3.tar.gz +1 : CDM_2.4-9.tar.gz +0 : cladoRcpp_0.14.2.tar.gz +1 : classify_1.1.tar.gz +1 : climdex.pcic_0.7-4.tar.gz +0 : clogitL1_1.1.tar.gz +0 : clusteval_0.1.tar.gz +0 : ConConPiWiFun_0.4.1.tar.gz +0 : coneproj_1.2.tar.gz +0 : Delaporte_1.0-1.tar.gz +1 : disclapmix_1.2.tar.gz +1 : diversitree_0.9-6.tar.gz +0 : ecp_1.5.4.tar.gz +0 : EpiContactTrace_0.8.6.tar.gz +0 : ExactNumCI_1.0.0.tar.gz +0 : fastGHQuad_0.1-1.tar.gz +0 : FastPCS_0.0.6.tar.gz +0 : FastRCS_0.0.1.tar.gz +0 : FBFsearch_1.0.tar.gz +0 : fdaMixed_0.2.tar.gz +0 : forecast_4.8.tar.gz +1 : fugeR_0.1.2.tar.gz +1 : Funclustering_1.0.tar.gz +1 : geiger_1.99-3.tar.gz +1 : GeneticTools_0.2.1.tar.gz +1 : gMWT_0.3.tar.gz +1 : GOsummaries_1.0.tar.gz +0 : gRbase_1.6-12.tar.gz +0 : gRim_0.1-17.tar.gz +0 : growcurves_0.2.3.5.tar.gz +0 : GSE_3.0.tar.gz +0 : GUTS_0.2.8.tar.gz +0 : GxM_1.0.tar.gz +0 : HLMdiag_0.2.3.tar.gz +1 : hsphase_1.2.3.tar.gz +0 : httpuv_1.2.0.tar.gz +1 : hypervolume_0.9.9.tar.gz +0 : inarmix_0.2.tar.gz +0 : jaatha_2.1.tar.gz +1 : KernSmoothIRT_6.0.tar.gz +0 : Kmisc_0.4.0-1.tar.gz +1 : LaF_0.5.tar.gz +0 : lm.br_2.2.tar.gz +1 : lme4_1.0-5.tar.gz +1 : marked_1.1.2.tar.gz +0 : maxent_1.3.3.tar.gz +1 : mets_0.2.4.tar.gz +0 : minqa_1.2.1.tar.gz +1 : mirt_0.9.0.tar.gz +1 : miscF_0.1-2.tar.gz +0 : MPTinR_1.1.8.tar.gz +0 : msgl_0.1.4.tar.gz +0 : multmod_1.0.tar.gz +0 : mvabund_3.8.0.tar.gz +0 : MVB_1.1.tar.gz +0 : NetSim_0.9.tar.gz +0 : NetworkAnalysis_0.3-1.tar.gz +1 : ngspatial_1.0-1.tar.gz +0 : oem_1.02.tar.gz +1 : openair_0.8-5.tar.gz +1 : orQA_0.2.1.tar.gz +0 : PedCNV_0.1.tar.gz +0 : phom_1.0.2.tar.gz +0 : phylobase_0.6.5.2.tar.gz +0 : planar_1.2.4.tar.gz +0 : PReMiuM_3.0.21.tar.gz +0 : prospectr_0.1.tar.gz +0 : psgp_0.3-4.tar.gz +0 : Rankcluster_0.91.tar.gz +0 : Rclusterpp_0.2.2.tar.gz +0 : RcppArmadillo_0.3.920.1.tar.gz +0 : RcppBDT_0.2.1.tar.gz +0 : rcppbugs_0.1.4.tar.gz +0 : RcppClassic_0.9.4.tar.gz +0 : RcppClassicExamples_0.1.1.tar.gz +0 : RcppCNPy_0.2.0.tar.gz +0 : RcppDE_0.1.1.tar.gz +1 : RcppEigen_0.3.1.2.3.tar.gz +0 : RcppExamples_0.1.6.tar.gz +0 : RcppGSL_0.2.0.tar.gz +0 : RcppOctave_0.11.2.tar.gz +0 : RcppProgress_0.1.tar.gz +0 : RcppRoll_0.1.0.tar.gz +0 : RcppSMC_0.1.1.tar.gz +0 : RcppXts_0.0.4.tar.gz +0 : RcppZiggurat_0.0.1.tar.gz +0 : rexpokit_0.24.1.tar.gz +0 : rforensicbatwing_1.1.tar.gz +0 : rgam_0.6.1.tar.gz +0 : RInside_0.2.10.tar.gz +0 : Rmalschains_0.2-1.tar.gz +0 : RMessenger_0.1.3.tar.gz +0 : rmgarch_1.2-0.tar.gz +0 : Rmixmod_1.1.3.tar.gz +0 : robustgam_0.1.7.tar.gz +0 : robustHD_0.3.2.tar.gz +0 : rococo_1.1.0.tar.gz +0 : rotations_0.1.tar.gz +0 : RProtoBuf_0.3.1.tar.gz +0 : RQuantLib_0.3.10.tar.gz +0 : RSNNS_0.4-3.tar.gz +0 : RSofia_1.1.tar.gz +0 : rugarch_1.2-7.tar.gz +0 : RVowpalWabbit_0.0.5.tar.gz +0 : SBSA_0.2.0.tar.gz +0 : sdcMicro_4.0.3.tar.gz +1 : sdcTable_0.10.2.tar.gz +0 : sequences_0.5.7.tar.gz +0 : simFrame_0.5.0.tar.gz +1 : sirt_0.38-25.tar.gz +1 : spacodiR_0.13.0115.tar.gz +0 : sparseHessianFD_0.1.0.tar.gz +0 : sparseLTSEigen_0.1.3.tar.gz +0 : SpatialTools_0.5.4.tar.gz +0 : stochvol_0.7-1.tar.gz +1 : surveillance_1.6-0.tar.gz +0 : survSNP_0.21-5.tar.gz +0 : tagcloud_0.1.tar.gz +1 : TAM_0.9-9.tar.gz +1 : tbart_0.9.tar.gz +0 : termstrc_1.3.5.tar.gz +0 : tmg_0.1.tar.gz +0 : transmission_0.1.tar.gz +0 : trustOptim_0.8.1.tar.gz +0 : unmarked_0.10-2.tar.gz +0 : VIM_4.0.0.tar.gz +1 : VIMGUI_0.9.0.tar.gz +0 : waffect_1.2.tar.gz +0 : WideLM_0.1-1.tar.gz +0 : wordcloud_2.4.tar.gz +0 : zic_0.7.5.tar.gz + pkg res +1 accelerometry 0 +2 acer 0 +3 AdaptiveSparsity 0 +4 ALDqr 1 +5 ALKr 0 +6 Amelia 0 +7 apcluster 0 +8 BayesComm 0 +9 bcp 0 +10 bcpa 0 +11 bfa 0 +12 bfp 0 +13 bifactorial 0 +14 blockcluster 0 +15 ccaPP 0 +16 cda 0 +17 CDM 1 +18 cladoRcpp 0 +19 classify 1 +20 climdex.pcic 1 +21 clogitL1 0 +22 clusteval 0 +23 ConConPiWiFun 0 +24 coneproj 0 +25 Delaporte 0 +26 disclapmix 1 +27 diversitree 1 +28 ecp 0 +29 EpiContactTrace 0 +30 ExactNumCI 0 +31 fastGHQuad 0 +32 FastPCS 0 +33 FastRCS 0 +34 FBFsearch 0 +35 fdaMixed 0 +36 forecast 0 +37 fugeR 1 +38 Funclustering 1 +39 geiger 1 +40 GeneticTools 1 +41 gMWT 1 +42 GOsummaries 1 +43 gRbase 0 +44 gRim 0 +45 growcurves 0 +46 GSE 0 +47 GUTS 0 +48 GxM 0 +49 HLMdiag 0 +50 hsphase 1 +51 httpuv 0 +52 hypervolume 1 +53 inarmix 0 +54 jaatha 0 +55 KernSmoothIRT 1 +56 Kmisc 0 +57 LaF 1 +58 lm.br 0 +59 lme4 1 +60 marked 1 +61 maxent 0 +62 mets 1 +63 minqa 0 +64 mirt 1 +65 miscF 1 +66 MPTinR 0 +67 msgl 0 +68 multmod 0 +69 mvabund 0 +70 MVB 0 +71 NetSim 0 +72 NetworkAnalysis 0 +73 ngspatial 1 +74 oem 0 +75 openair 1 +76 orQA 1 +77 PedCNV 0 +78 phom 0 +79 phylobase 0 +80 planar 0 +81 PReMiuM 0 +82 prospectr 0 +83 psgp 0 +84 Rankcluster 0 +85 Rclusterpp 0 +86 RcppArmadillo 0 +87 RcppBDT 0 +88 rcppbugs 0 +89 RcppClassic 0 +90 RcppClassicExamples 0 +91 RcppCNPy 0 +92 RcppDE 0 +93 RcppEigen 1 +94 RcppExamples 0 +95 RcppGSL 0 +96 RcppOctave 0 +97 RcppProgress 0 +98 RcppRoll 0 +99 RcppSMC 0 +100 RcppXts 0 +101 RcppZiggurat 0 +102 rexpokit 0 +103 rforensicbatwing 0 +104 rgam 0 +105 RInside 0 +106 Rmalschains 0 +107 RMessenger 0 +108 rmgarch 0 +109 Rmixmod 0 +110 robustgam 0 +111 robustHD 0 +112 rococo 0 +113 rotations 0 +114 RProtoBuf 0 +115 RQuantLib 0 +116 RSNNS 0 +117 RSofia 0 +118 rugarch 0 +119 RVowpalWabbit 0 +120 SBSA 0 +121 sdcMicro 0 +122 sdcTable 1 +123 sequences 0 +124 simFrame 0 +125 sirt 1 +126 spacodiR 1 +127 sparseHessianFD 0 +128 sparseLTSEigen 0 +129 SpatialTools 0 +130 stochvol 0 +131 surveillance 1 +132 survSNP 0 +133 tagcloud 0 +134 TAM 1 +135 tbart 1 +136 termstrc 0 +137 tmg 0 +138 transmission 0 +139 trustOptim 0 +140 unmarked 0 +141 VIM 0 +142 VIMGUI 1 +143 waffect 0 +144 WideLM 0 +145 wordcloud 0 +146 zic 0 +Ended at 2013-10-26 18:33:39 Added: testlogs/result-20131026-183339.RData =================================================================== (Binary files differ) Property changes on: testlogs/result-20131026-183339.RData ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: testlogs/result-20131026-183339.txt =================================================================== --- testlogs/result-20131026-183339.txt (rev 0) +++ testlogs/result-20131026-183339.txt 2013-10-27 01:00:06 UTC (rev 4584) @@ -0,0 +1,147 @@ +"pkg","res" +"1","accelerometry",0 +"2","acer",0 +"3","AdaptiveSparsity",0 +"4","ALDqr",1 +"5","ALKr",0 +"6","Amelia",0 +"7","apcluster",0 +"8","BayesComm",0 +"9","bcp",0 +"10","bcpa",0 +"11","bfa",0 +"12","bfp",0 +"13","bifactorial",0 +"14","blockcluster",0 +"15","ccaPP",0 +"16","cda",0 +"17","CDM",1 +"18","cladoRcpp",0 +"19","classify",1 +"20","climdex.pcic",1 +"21","clogitL1",0 +"22","clusteval",0 +"23","ConConPiWiFun",0 +"24","coneproj",0 +"25","Delaporte",0 +"26","disclapmix",1 +"27","diversitree",1 +"28","ecp",0 +"29","EpiContactTrace",0 +"30","ExactNumCI",0 +"31","fastGHQuad",0 +"32","FastPCS",0 +"33","FastRCS",0 +"34","FBFsearch",0 +"35","fdaMixed",0 +"36","forecast",0 +"37","fugeR",1 +"38","Funclustering",1 +"39","geiger",1 +"40","GeneticTools",1 +"41","gMWT",1 +"42","GOsummaries",1 +"43","gRbase",0 +"44","gRim",0 +"45","growcurves",0 +"46","GSE",0 +"47","GUTS",0 +"48","GxM",0 +"49","HLMdiag",0 +"50","hsphase",1 +"51","httpuv",0 +"52","hypervolume",1 +"53","inarmix",0 +"54","jaatha",0 +"55","KernSmoothIRT",1 +"56","Kmisc",0 +"57","LaF",1 +"58","lm.br",0 +"59","lme4",1 +"60","marked",1 +"61","maxent",0 +"62","mets",1 +"63","minqa",0 +"64","mirt",1 +"65","miscF",1 +"66","MPTinR",0 +"67","msgl",0 +"68","multmod",0 +"69","mvabund",0 +"70","MVB",0 +"71","NetSim",0 +"72","NetworkAnalysis",0 +"73","ngspatial",1 +"74","oem",0 +"75","openair",1 +"76","orQA",1 +"77","PedCNV",0 +"78","phom",0 +"79","phylobase",0 +"80","planar",0 +"81","PReMiuM",0 +"82","prospectr",0 +"83","psgp",0 +"84","Rankcluster",0 +"85","Rclusterpp",0 +"86","RcppArmadillo",0 +"87","RcppBDT",0 +"88","rcppbugs",0 +"89","RcppClassic",0 +"90","RcppClassicExamples",0 +"91","RcppCNPy",0 +"92","RcppDE",0 +"93","RcppEigen",1 +"94","RcppExamples",0 +"95","RcppGSL",0 +"96","RcppOctave",0 +"97","RcppProgress",0 +"98","RcppRoll",0 +"99","RcppSMC",0 +"100","RcppXts",0 +"101","RcppZiggurat",0 +"102","rexpokit",0 +"103","rforensicbatwing",0 +"104","rgam",0 +"105","RInside",0 +"106","Rmalschains",0 +"107","RMessenger",0 +"108","rmgarch",0 +"109","Rmixmod",0 +"110","robustgam",0 +"111","robustHD",0 +"112","rococo",0 +"113","rotations",0 +"114","RProtoBuf",0 +"115","RQuantLib",0 +"116","RSNNS",0 +"117","RSofia",0 +"118","rugarch",0 +"119","RVowpalWabbit",0 +"120","SBSA",0 +"121","sdcMicro",0 +"122","sdcTable",1 +"123","sequences",0 +"124","simFrame",0 +"125","sirt",1 +"126","spacodiR",1 +"127","sparseHessianFD",0 +"128","sparseLTSEigen",0 +"129","SpatialTools",0 +"130","stochvol",0 +"131","surveillance",1 +"132","survSNP",0 +"133","tagcloud",0 +"134","TAM",1 +"135","tbart",1 +"136","termstrc",0 +"137","tmg",0 +"138","transmission",0 +"139","trustOptim",0 +"140","unmarked",0 +"141","VIM",0 +"142","VIMGUI",1 +"143","waffect",0 +"144","WideLM",0 +"145","wordcloud",0 +"146","zic",0 From noreply at r-forge.r-project.org Sun Oct 27 23:19:22 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Sun, 27 Oct 2013 23:19:22 +0100 (CET) Subject: [Rcpp-commits] r4585 - in pkg/Rcpp: . debian inst/include/Rcpp Message-ID: <20131027221922.D69811862D4@r-forge.r-project.org> Author: edd Date: 2013-10-27 23:19:22 +0100 (Sun, 27 Oct 2013) New Revision: 4585 Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/DESCRIPTION pkg/Rcpp/debian/changelog pkg/Rcpp/debian/copyright pkg/Rcpp/debian/rules pkg/Rcpp/inst/include/Rcpp/config.h Log: Rcpp release 0.10.6 Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-27 01:00:06 UTC (rev 4584) +++ pkg/Rcpp/ChangeLog 2013-10-27 22:19:22 UTC (rev 4585) @@ -1,3 +1,10 @@ +2013-10-27 Dirk Eddelbuettel + + * DESCRIPTION: Release 0.10.6 + * inst/NEWS.Rd: Release 0.10.6 + * inst/include/Rcpp/config.h: Release 0.10.5 + * debian/*: Similarly updated for new release to Debian + 2013-10-17 JJ Allaire * R/Attributes.R: sourceCpp now correctly binds to Rtools 3.0 and 3.1 @@ -10,12 +17,13 @@ 2013-10-16 Romain Francois - * include/Rcpp/api/meat/is.h : added missing implementation for - is and is + * include/Rcpp/api/meat/is.h : added missing implementation for + is and is 2013-10-14 Romain Francois - - * inst/include/Rcpp/protection/protection.h: added Shield/Shelter/Armor + + * inst/include/Rcpp/protection/protection.h: added + Shield/Shelter/Armor * DESCRIPTION: bump to version 0.10.5.3 2013-10-12 Dirk Eddelbuettel Modified: pkg/Rcpp/DESCRIPTION =================================================================== --- pkg/Rcpp/DESCRIPTION 2013-10-27 01:00:06 UTC (rev 4584) +++ pkg/Rcpp/DESCRIPTION 2013-10-27 22:19:22 UTC (rev 4585) @@ -1,6 +1,6 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 0.10.5.3 +Version: 0.10.6 Date: $Date$ Author: Dirk Eddelbuettel and Romain Francois, with contributions by Douglas Bates, John Chambers and JJ Allaire Modified: pkg/Rcpp/debian/changelog =================================================================== --- pkg/Rcpp/debian/changelog 2013-10-27 01:00:06 UTC (rev 4584) +++ pkg/Rcpp/debian/changelog 2013-10-27 22:19:22 UTC (rev 4585) @@ -1,3 +1,9 @@ +rcpp (0.10.6-1) unstable; urgency=low + + * New release + + -- Dirk Eddelbuettel Sun, 27 Oct 2013 16:47:29 -0500 + rcpp (0.10.5-1) unstable; urgency=low * New release Modified: pkg/Rcpp/debian/copyright =================================================================== --- pkg/Rcpp/debian/copyright 2013-10-27 01:00:06 UTC (rev 4584) +++ pkg/Rcpp/debian/copyright 2013-10-27 22:19:22 UTC (rev 4585) @@ -19,7 +19,7 @@ Copyright (C) 2005 - 2006 Dominick Samperi Copyright (C) 2008 Dirk Eddelbuettel -Copyright (C) 2009 - 2010 Dirk Eddelbuettel and Romain Francois +Copyright (C) 2009 - 2013 Dirk Eddelbuettel and Romain Francois Portions Copyright (C) 2008 Simon Urbanek Portions Copyright (C) 2010 Doug Bates Modified: pkg/Rcpp/debian/rules =================================================================== --- pkg/Rcpp/debian/rules 2013-10-27 01:00:06 UTC (rev 4584) +++ pkg/Rcpp/debian/rules 2013-10-27 22:19:22 UTC (rev 4585) @@ -1,6 +1,6 @@ #!/usr/bin/make -f # -*- makefile -*- # debian/rules file for the Debian/GNU Linux rcpp package -# Copyright 2003-2008 by Dirk Eddelbuettel +# Copyright 2003-2013 by Dirk Eddelbuettel include /usr/share/R/debian/r-cran.mk Modified: pkg/Rcpp/inst/include/Rcpp/config.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/config.h 2013-10-27 01:00:06 UTC (rev 4584) +++ pkg/Rcpp/inst/include/Rcpp/config.h 2013-10-27 22:19:22 UTC (rev 4585) @@ -25,7 +25,7 @@ #define Rcpp_Version(v,p,s) (((v) * 65536) + ((p) * 256) + (s)) // All three digits have to be integers for g++-4.7 or later -#define RCPP_VERSION Rcpp_Version(0,10,5) +#define RCPP_VERSION Rcpp_Version(0,10,6) // Rcpp 0.10.3 has initial support for new preserve/release semantics // This switch enables a rollback to the standard R preserve/release semantics From noreply at r-forge.r-project.org Sun Oct 27 23:54:07 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Sun, 27 Oct 2013 23:54:07 +0100 (CET) Subject: [Rcpp-commits] r4586 - pkg/Rcpp Message-ID: <20131027225407.9249B18625D@r-forge.r-project.org> Author: edd Date: 2013-10-27 23:54:07 +0100 (Sun, 27 Oct 2013) New Revision: 4586 Modified: pkg/Rcpp/.Rbuildignore Log: add doxyfile to .Rbuildignore as R-devel now complains Modified: pkg/Rcpp/.Rbuildignore =================================================================== --- pkg/Rcpp/.Rbuildignore 2013-10-27 22:19:22 UTC (rev 4585) +++ pkg/Rcpp/.Rbuildignore 2013-10-27 22:54:07 UTC (rev 4586) @@ -10,3 +10,4 @@ inst/include/Rcpp/preprocessor inst/include/Rcpp/sugar/functions/impl vignettes/notyet +doxyfile From noreply at r-forge.r-project.org Mon Oct 28 08:03:44 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Mon, 28 Oct 2013 08:03:44 +0100 (CET) Subject: [Rcpp-commits] r4587 - in pkg/Rcpp: . inst/include/Rcpp/protection Message-ID: <20131028070344.995E11807F9@r-forge.r-project.org> Author: romain Date: 2013-10-28 08:03:44 +0100 (Mon, 28 Oct 2013) New Revision: 4587 Modified: pkg/Rcpp/ChangeLog pkg/Rcpp/inst/include/Rcpp/protection/Armor.h Log: operator SEXP has to be const for it to work with wrap Modified: pkg/Rcpp/ChangeLog =================================================================== --- pkg/Rcpp/ChangeLog 2013-10-27 22:54:07 UTC (rev 4586) +++ pkg/Rcpp/ChangeLog 2013-10-28 07:03:44 UTC (rev 4587) @@ -1,3 +1,8 @@ +2013-10-28 Romain Francois + + * include/Rcpp/protection/Armor.h : Armor::operator SEXP has to be const + for it to work properly with wrap. + 2013-10-27 Dirk Eddelbuettel * DESCRIPTION: Release 0.10.6 Modified: pkg/Rcpp/inst/include/Rcpp/protection/Armor.h =================================================================== --- pkg/Rcpp/inst/include/Rcpp/protection/Armor.h 2013-10-27 22:54:07 UTC (rev 4586) +++ pkg/Rcpp/inst/include/Rcpp/protection/Armor.h 2013-10-28 07:03:44 UTC (rev 4587) @@ -30,7 +30,7 @@ template Armor( U x ); - inline operator SEXP(){ + inline operator SEXP() const { return data ; } From noreply at r-forge.r-project.org Tue Oct 29 02:19:52 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Tue, 29 Oct 2013 02:19:52 +0100 (CET) Subject: [Rcpp-commits] r4588 - pkg/Rcpp/vignettes Message-ID: <20131029011952.BD19A18532D@r-forge.r-project.org> Author: edd Date: 2013-10-29 02:19:52 +0100 (Tue, 29 Oct 2013) New Revision: 4588 Modified: pkg/Rcpp/vignettes/Rcpp-FAQ.Rnw pkg/Rcpp/vignettes/Rcpp-attributes.Rnw pkg/Rcpp/vignettes/Rcpp-extending.Rnw pkg/Rcpp/vignettes/Rcpp-introduction.Rnw pkg/Rcpp/vignettes/Rcpp-modules.Rnw pkg/Rcpp/vignettes/Rcpp-package.Rnw pkg/Rcpp/vignettes/Rcpp-quickref.Rnw pkg/Rcpp/vignettes/Rcpp-sugar.Rnw pkg/Rcpp/vignettes/Rcpp-unitTests.Rnw Log: change VignetteKeyword to VignetteKeywords, add VignetteDepends Modified: pkg/Rcpp/vignettes/Rcpp-FAQ.Rnw =================================================================== --- pkg/Rcpp/vignettes/Rcpp-FAQ.Rnw 2013-10-28 07:03:44 UTC (rev 4587) +++ pkg/Rcpp/vignettes/Rcpp-FAQ.Rnw 2013-10-29 01:19:52 UTC (rev 4588) @@ -1,6 +1,8 @@ \documentclass[10pt]{article} %\VignetteIndexEntry{Rcpp-FAQ} %\VignetteEngine{highlight::highlight} +%\VignetteKeywords{Rcpp, FAQ} +%\VignetteDepends{Rcpp} \usepackage[USletter]{vmargin} \setmargrb{0.75in}{0.75in}{0.75in}{0.75in} Modified: pkg/Rcpp/vignettes/Rcpp-attributes.Rnw =================================================================== --- pkg/Rcpp/vignettes/Rcpp-attributes.Rnw 2013-10-28 07:03:44 UTC (rev 4587) +++ pkg/Rcpp/vignettes/Rcpp-attributes.Rnw 2013-10-29 01:19:52 UTC (rev 4588) @@ -1,6 +1,8 @@ \documentclass[11pt]{article} %\VignetteIndexEntry{Rcpp-attributes} %\VignetteEngine{highlight::highlight} +%\VignetteKeywords{Rcpp, attributes} +%\VignetteDepends{Rcpp} \usepackage[USletter]{vmargin} \setmargrb{1.25in}{1.25in}{1.25in}{1.25in} Modified: pkg/Rcpp/vignettes/Rcpp-extending.Rnw =================================================================== --- pkg/Rcpp/vignettes/Rcpp-extending.Rnw 2013-10-28 07:03:44 UTC (rev 4587) +++ pkg/Rcpp/vignettes/Rcpp-extending.Rnw 2013-10-29 01:19:52 UTC (rev 4588) @@ -1,6 +1,8 @@ \documentclass[10pt]{article} %\VignetteIndexEntry{Rcpp-extending} %\VignetteEngine{highlight::highlight} +%\VignetteKeywords{Rcpp, package} +%\VignetteDepends{Rcpp} \usepackage[USletter]{vmargin} \setmargrb{0.75in}{0.75in}{0.75in}{0.75in} Modified: pkg/Rcpp/vignettes/Rcpp-introduction.Rnw =================================================================== --- pkg/Rcpp/vignettes/Rcpp-introduction.Rnw 2013-10-28 07:03:44 UTC (rev 4587) +++ pkg/Rcpp/vignettes/Rcpp-introduction.Rnw 2013-10-29 01:19:52 UTC (rev 4588) @@ -2,8 +2,8 @@ \documentclass[shortnames,nojss,article]{jss} \usepackage{booktabs,flafter,thumbpdf} %\VignetteIndexEntry{Rcpp-introduction} -%\VignetteKeywords{foreign function interface, .Call, C++, R} -%\VignettePackage{Rcpp} +%\VignetteKeywords{Rcpp, foreign function interface, .Call, C++, R} +%\VignetteDepends{Rcpp} \author{Dirk Eddelbuettel\\Debian Project \And Romain Fran\c{c}ois\\\proglang{R} Enthusiasts} \Plainauthor{Dirk Eddelbuettel, Romain Fran\c{c}ois} Modified: pkg/Rcpp/vignettes/Rcpp-modules.Rnw =================================================================== --- pkg/Rcpp/vignettes/Rcpp-modules.Rnw 2013-10-28 07:03:44 UTC (rev 4587) +++ pkg/Rcpp/vignettes/Rcpp-modules.Rnw 2013-10-29 01:19:52 UTC (rev 4588) @@ -1,6 +1,9 @@ \documentclass[10pt]{article} %\VignetteIndexEntry{Rcpp-modules} %\VignetteEngine{highlight::highlight} +%\VignetteKeywords{Rcpp, module} +%\VignetteDepends{Rcpp} + \usepackage[USletter]{vmargin} \setmargrb{0.75in}{0.75in}{0.75in}{0.75in} Modified: pkg/Rcpp/vignettes/Rcpp-package.Rnw =================================================================== --- pkg/Rcpp/vignettes/Rcpp-package.Rnw 2013-10-28 07:03:44 UTC (rev 4587) +++ pkg/Rcpp/vignettes/Rcpp-package.Rnw 2013-10-29 01:19:52 UTC (rev 4588) @@ -1,6 +1,9 @@ \documentclass[10pt]{article} %\VignetteIndexEntry{Rcpp-package} %\VignetteEngine{highlight::highlight} +%\VignetteKeywords{Rcpp, package} +%\VignetteDepends{Rcpp} + \usepackage[USletter]{vmargin} \setmargrb{0.75in}{0.75in}{0.75in}{0.75in} \usepackage{color,alltt} Modified: pkg/Rcpp/vignettes/Rcpp-quickref.Rnw =================================================================== --- pkg/Rcpp/vignettes/Rcpp-quickref.Rnw 2013-10-28 07:03:44 UTC (rev 4587) +++ pkg/Rcpp/vignettes/Rcpp-quickref.Rnw 2013-10-29 01:19:52 UTC (rev 4588) @@ -1,6 +1,8 @@ \documentclass[8pt,twocolumn,a4paper]{article} %\VignetteIndexEntry{Rcpp-quickref} %\VignetteEngine{highlight::highlight} +%\VignetteKeywords{Rcpp, reference} +%\VignetteDepends{Rcpp} \setlength{\hoffset}{-0.8in} \setlength{\voffset}{-0.8in} Modified: pkg/Rcpp/vignettes/Rcpp-sugar.Rnw =================================================================== --- pkg/Rcpp/vignettes/Rcpp-sugar.Rnw 2013-10-28 07:03:44 UTC (rev 4587) +++ pkg/Rcpp/vignettes/Rcpp-sugar.Rnw 2013-10-29 01:19:52 UTC (rev 4588) @@ -1,6 +1,9 @@ \documentclass[10pt]{article} %\VignetteIndexEntry{Rcpp-sugar} %\VignetteEngine{highlight::highlight} +%\VignetteKeywords{Rcpp, syntactic sugar} +%\VignetteDepends{Rcpp} + \usepackage[USletter]{vmargin} \setmargrb{0.75in}{0.75in}{0.75in}{0.75in} Modified: pkg/Rcpp/vignettes/Rcpp-unitTests.Rnw =================================================================== --- pkg/Rcpp/vignettes/Rcpp-unitTests.Rnw 2013-10-28 07:03:44 UTC (rev 4587) +++ pkg/Rcpp/vignettes/Rcpp-unitTests.Rnw 2013-10-29 01:19:52 UTC (rev 4588) @@ -1,7 +1,7 @@ \documentclass[10pt]{article} %\VignetteIndexEntry{Rcpp-unitTests} %\VignetteKeywords{R,Rcpp,unit tests} -%\VignettePackage{Rcpp} +%\VignetteDepends{Rcpp} \usepackage{vmargin} \setmargrb{0.75in}{0.75in}{0.75in}{0.75in} From noreply at r-forge.r-project.org Tue Oct 29 02:20:25 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Tue, 29 Oct 2013 02:20:25 +0100 (CET) Subject: [Rcpp-commits] r4589 - pkg/Rcpp Message-ID: <20131029012025.8239B18532D@r-forge.r-project.org> Author: edd Date: 2013-10-29 02:20:25 +0100 (Tue, 29 Oct 2013) New Revision: 4589 Modified: pkg/Rcpp/.Rbuildignore Log: no exclude the build/ directory as we want build/vignette.rds Modified: pkg/Rcpp/.Rbuildignore =================================================================== --- pkg/Rcpp/.Rbuildignore 2013-10-29 01:19:52 UTC (rev 4588) +++ pkg/Rcpp/.Rbuildignore 2013-10-29 01:20:25 UTC (rev 4589) @@ -2,7 +2,6 @@ inst/doc/html inst/doc/latex inst/doc/man -build inst/doc/jss.bst vignettes/jss.bst ^.*\.Rproj$ From noreply at r-forge.r-project.org Tue Oct 29 15:33:42 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Tue, 29 Oct 2013 15:33:42 +0100 (CET) Subject: [Rcpp-commits] r4590 - pkg/RcppClassic Message-ID: <20131029143342.DB88318619D@r-forge.r-project.org> Author: edd Date: 2013-10-29 15:33:40 +0100 (Tue, 29 Oct 2013) New Revision: 4590 Removed: pkg/RcppClassic/.Rbuildignore Log: remove .Rbuildignore which was a leftover from the actual Rcpp Deleted: pkg/RcppClassic/.Rbuildignore =================================================================== --- pkg/RcppClassic/.Rbuildignore 2013-10-29 01:20:25 UTC (rev 4589) +++ pkg/RcppClassic/.Rbuildignore 2013-10-29 14:33:40 UTC (rev 4590) @@ -1,5 +0,0 @@ -debian -inst/doc/html -inst/doc/latex -inst/doc/man -build From noreply at r-forge.r-project.org Tue Oct 29 15:42:58 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Tue, 29 Oct 2013 15:42:58 +0100 (CET) Subject: [Rcpp-commits] r4591 - pkg/Rcpp/debian Message-ID: <20131029144258.C459918618B@r-forge.r-project.org> Author: edd Date: 2013-10-29 15:42:58 +0100 (Tue, 29 Oct 2013) New Revision: 4591 Modified: pkg/Rcpp/debian/changelog pkg/Rcpp/debian/control Log: minor cosmetics for the Debian build Modified: pkg/Rcpp/debian/changelog =================================================================== --- pkg/Rcpp/debian/changelog 2013-10-29 14:33:40 UTC (rev 4590) +++ pkg/Rcpp/debian/changelog 2013-10-29 14:42:58 UTC (rev 4591) @@ -1,9 +1,13 @@ rcpp (0.10.6-1) unstable; urgency=low * New release + * debian/control: Set Build-Depends: to current R version + * debian/control: Set Standards-Version: to current version + * debian/control: Add 'r-cran-codetools' to Build-Depends (as it is + used at preparation for LazuyLoading stage) + + -- Dirk Eddelbuettel Tue, 29 Oct 2013 09:42:30 -0500 - -- Dirk Eddelbuettel Sun, 27 Oct 2013 16:47:29 -0500 - rcpp (0.10.5-1) unstable; urgency=low * New release Modified: pkg/Rcpp/debian/control =================================================================== --- pkg/Rcpp/debian/control 2013-10-29 14:33:40 UTC (rev 4590) +++ pkg/Rcpp/debian/control 2013-10-29 14:42:58 UTC (rev 4591) @@ -2,8 +2,8 @@ Section: gnu-r Priority: optional Maintainer: Dirk Eddelbuettel -Build-Depends: debhelper (>= 7.0.0), r-base-dev (>= 3.0.2), cdbs -Standards-Version: 3.9.4 +Build-Depends: debhelper (>= 7.0.0), r-base-dev (>= 3.0.2), cdbs, r-cran-codetools +Standards-Version: 3.9.5 Homepage: http://dirk.eddelbuettel.com/code/rcpp.html Package: r-cran-rcpp From noreply at r-forge.r-project.org Tue Oct 29 16:29:40 2013 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Tue, 29 Oct 2013 16:29:40 +0100 (CET) Subject: [Rcpp-commits] r4592 - pkg/Rcpp/inst Message-ID: <20131029152940.25B6F186168@r-forge.r-project.org> Author: edd Date: 2013-10-29 16:29:39 +0100 (Tue, 29 Oct 2013) New Revision: 4592 Modified: pkg/Rcpp/inst/NEWS.Rd Log: belatedly fix NEWS header for 0.10.6 release Modified: pkg/Rcpp/inst/NEWS.Rd =================================================================== --- pkg/Rcpp/inst/NEWS.Rd 2013-10-29 14:42:58 UTC (rev 4591) +++ pkg/Rcpp/inst/NEWS.Rd 2013-10-29 15:29:39 UTC (rev 4592) @@ -2,7 +2,7 @@ \title{News for Package 'Rcpp'} \newcommand{\cpkg}{\href{http://CRAN.R-project.org/package=#1}{\pkg{#1}}} -\section{Changes in Rcpp version 0.10.5.2 (2013-10-08)}{ +\section{Changes in Rcpp version 0.10.6 (2013-10-27)}{ \itemize{ \item Changes in Rcpp API: \itemize{