Hola, Estoy creando un paquete de R que incluye código C++. Lo he instalado tanto en Linux (Fedora) como en Windows y todo funciona correctamente. El código C++ lo cargo desde el NAMESPACE utilizando useDynLib. Asà que ahora estoy revisándolo por última vez antes de someterlo al CRAN. Lo que pasa es que he leÃdo en http://cran.r-project.org/doc/manuals/R-exts.html#Writing-portable-packages lo siguiente: ?It is not portable to call compiled code in R or other packages via Internal, .C, .Fortran, .Call or .External, since such interfaces are subject to change without notice and will probably result in your code terminating the R process?. Sin embargo, la función del paquete que quiero someter llama al código C++ mediante .Call. ¿Significa esto que no puedo someter el paquete al CRAN porque la portabilidad del paquete no está asegurada?. De todos modos, ¿alguien sabe cómo podrÃa llamar al código C++ para que el paquete fuese seguro portable?. He escrito también a la lista de R-devel por si me comentaran algo, en cuyo caso, mandarÃa un correo a nuestra lista con la información, por si a alguien le puede servir. Muchas gracias de antemano. Saludos, Guillermo
[R-es] Pregunta sobre paquetes portables
4 messages · Carlos J. Gil Bellosta, Guillermo.Vinue en uv.es
Hola, ¿qué tal? Creo que ese comentario no se refiere al código compilado de tu paquete sino a código compilado por otros que quieras usar en tu paquete. Pero igual me equivoco. No obstante, en el código de rpart (rpart.R) hay una llamada a C_rpart (en C) usando .Call. Y se trata de un paquete mantenido por el prof. Ripley, que ejerce de cancerbero en CRAN. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El dÃa 6 de junio de 2013 16:43, <Guillermo.Vinue en uv.es> escribió:
Hola, Estoy creando un paquete de R que incluye código C++. Lo he instalado tanto en Linux (Fedora) como en Windows y todo funciona correctamente. El código C++ lo cargo desde el NAMESPACE utilizando useDynLib. Asà que ahora estoy revisándolo por última vez antes de someterlo al CRAN. Lo que pasa es que he leÃdo en http://cran.r-project.org/doc/manuals/R-exts.html#Writing-portable-packages lo siguiente: ?It is not portable to call compiled code in R or other packages via Internal, .C, .Fortran, .Call or .External, since such interfaces are subject to change without notice and will probably result in your code terminating the R process?. Sin embargo, la función del paquete que quiero someter llama al código C++ mediante .Call. ¿Significa esto que no puedo someter el paquete al CRAN porque la portabilidad del paquete no está asegurada?. De todos modos, ¿alguien sabe cómo podrÃa llamar al código C++ para que el paquete fuese seguro portable?. He escrito también a la lista de R-devel por si me comentaran algo, en cuyo caso, mandarÃa un correo a nuestra lista con la información, por si a alguien le puede servir. Muchas gracias de antemano. Saludos, Guillermo
_______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola Carlos, Muchas gracias por tu respuesta. Pues sÃ, le he estado echando un ojo al paquete rpart y como dices, sà que usa la función .Call y tratándose del profesor Ripley tiene que ser lo que tú dices. De momento en la lista R-devel no me han contestado. Saludos, Guillermo
Hola, ¿qué tal? Creo que ese comentario no se refiere al código compilado de tu paquete sino a código compilado por otros que quieras usar en tu paquete. Pero igual me equivoco. No obstante, en el código de rpart (rpart.R) hay una llamada a C_rpart (en C) usando .Call. Y se trata de un paquete mantenido por el prof. Ripley, que ejerce de cancerbero en CRAN. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El dÃa 6 de junio de 2013 16:43, <Guillermo.Vinue en uv.es> escribió:
Hola, Estoy creando un paquete de R que incluye código C++. Lo he instalado tanto en Linux (Fedora) como en Windows y todo funciona correctamente. El código C++ lo cargo desde el NAMESPACE utilizando useDynLib. Asà que ahora estoy revisándolo por última vez antes de someterlo al CRAN. Lo que pasa es que he leÃdo en
http://cran.r-project.org/doc/manuals/R-exts.html#Writing-portable-packages
lo siguiente: ?It is not portable to call compiled code in R or other packages via Internal, .C, .Fortran, .Call or .External, since such interfaces are subject to change without notice and will probably result in your code terminating the R process?. Sin embargo, la función del paquete que quiero someter llama al código C++ mediante .Call. ¿Significa esto que no puedo someter el paquete al CRAN porque la portabilidad del paquete no está asegurada?. De todos modos, ¿alguien sabe cómo podrÃa llamar al código C++ para que el paquete fuese seguro portable?. He escrito también a la lista de R-devel por si me comentaran algo, en cuyo caso, mandarÃa un correo a nuestra lista con la información, por si a alguien le puede servir. Muchas gracias de antemano. Saludos, Guillermo
_______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola, Me han contestado muy amablemente también desde la lista R-devel y en resumen me dicen lo que ya ha comentado Carlos: que el comentario que leà se refiere sólo a código C de otros paquetes o de la propia estructura interna de R. Por lo tanto, sà que es posible utilizar la función .Call para llamar a código C de tu propio paquete, pero no se recomienda utilizarla para llamar a código C de otros paquetes o del propio R. Saludos, Guillermo
Hola, ¿qué tal? Creo que ese comentario no se refiere al código compilado de tu paquete sino a código compilado por otros que quieras usar en tu paquete. Pero igual me equivoco. No obstante, en el código de rpart (rpart.R) hay una llamada a C_rpart (en C) usando .Call. Y se trata de un paquete mantenido por el prof. Ripley, que ejerce de cancerbero en CRAN. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El dÃa 6 de junio de 2013 16:43, <Guillermo.Vinue en uv.es> escribió:
Hola, Estoy creando un paquete de R que incluye código C++. Lo he instalado tanto en Linux (Fedora) como en Windows y todo funciona correctamente. El código C++ lo cargo desde el NAMESPACE utilizando useDynLib. Asà que ahora estoy revisándolo por última vez antes de someterlo al CRAN. Lo que pasa es que he leÃdo en
http://cran.r-project.org/doc/manuals/R-exts.html#Writing-portable-packages
lo siguiente: ?It is not portable to call compiled code in R or other packages via Internal, .C, .Fortran, .Call or .External, since such interfaces are subject to change without notice and will probably result in your code terminating the R process?. Sin embargo, la función del paquete que quiero someter llama al código C++ mediante .Call. ¿Significa esto que no puedo someter el paquete al CRAN porque la portabilidad del paquete no está asegurada?. De todos modos, ¿alguien sabe cómo podrÃa llamar al código C++ para que el paquete fuese seguro portable?. He escrito también a la lista de R-devel por si me comentaran algo, en cuyo caso, mandarÃa un correo a nuestra lista con la información, por si a alguien le puede servir. Muchas gracias de antemano. Saludos, Guillermo
_______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es