Re: [Rcpp-devel] Rcpp11 3.1.0 is on CRAN

2014-04-17 Thread Søren Højsgaard
Dear all,
My understanding is that Rcpp11 will employ features of c++11 (which is very 
nice) but other than that it is not clear to me how Rcpp and Rcpp11 relate to 
each other? Can I start to use Rcpp11 with my existing Rcpp-based packages or 
is Rcpp and Rcpp11 branching off in different directions?
Cheers
Søren

-Original Message-
From: rcpp-devel-boun...@lists.r-forge.r-project.org 
[mailto:rcpp-devel-boun...@lists.r-forge.r-project.org] On Behalf Of Romain 
Francois
Sent: 11. april 2014 15:26
To: rcpp-devel@lists.r-forge.r-project.org
Subject: [Rcpp-devel] Rcpp11 3.1.0 is on CRAN

Hello, 

I'll keep it short here. Rcpp11 3.1.0 was released on CRAN today. An 
announcement email has been sent to both r-packages and the new R and C++ 
mailing list. https://groups.google.com/forum/#!forum/r-and-cpp

Best Regards, 

Romain
___
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
___
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel


Re: [Rcpp-devel] Rcpp11 3.1.0 is on CRAN

2014-04-17 Thread Romain François
Hello, 

(may contains traces of personal opinions)

My motivation for starting Rcpp11 were:
 - Assuming C++11, which is nicer to use and teach. Rcpp still wants to be 
compatible with older standard, which essentially means that even if I write 
something new using C++11, I still have to figure out how to write the same 
thing in C++98. 
 - modernize the code base. This meant let go of a few features so that we have 
what we keep better. This is incompatible with Rcpp’s maintainership policy. 
Last time I asked to remove a feature from Rcpp, I was told that it would take 
a year of deprecation. In Rcpp11, because I’m in charge I can decide to break 
stuff to make something better. 

Rcpp has been a great project to work on for me. I’ve learned a lot of C++, and 
I think I owe most of my C++ knowledge from involvement I have with Rcpp. But 
as far as I’m concerned, the string requirements take all the fun away. Working 
on Rcpp11 has brought fun back. I can innovate. 

There will always be some conceptual compatibility between Rcpp and Rcpp11. For 
example both have the NumericVector class to handle numeric vectors. However in 
that particular example, the implementation of NumericVector in Rcpp is too 
complicated, you have gazillion of constructors, etc ... hard to maintain, hard 
to document, hard to teach. 

Now that Rcpp11 can be used on current versions of OSX, recent enough linux, 
windows and even solaris (if you use gcc), what I would suggest is that you try 
it and come back with questions (not on this list though, please use the google 
group that is not strictly restricted to Rcpp questions). 

What might help you deciding is that in Rcpp11, we did not retain some features 
such as modules and date/time related classes. If your code uses these, then 
you should probably either stick with Rcpp or start motivating me for adding 
something along the lines in Rcpp11. There is still a need for something like 
modules, but not with this implementation. 

Now, as Dirk says, you can use C++11 with Rcpp. Just as much as you can use 
C++11 with vanilla .Call/.C. 

Personally I think the future of R and C++ is with Rcpp11. This is where I’ll 
focus my time. 

Romain

Le 17 avr. 2014 à 08:24, Søren Højsgaard sor...@math.aau.dk a écrit :

 Dear all,
 My understanding is that Rcpp11 will employ features of c++11 (which is very 
 nice) but other than that it is not clear to me how Rcpp and Rcpp11 relate to 
 each other? Can I start to use Rcpp11 with my existing Rcpp-based packages or 
 is Rcpp and Rcpp11 branching off in different directions?
 Cheers
 Søren
 
 -Original Message-
 From: rcpp-devel-boun...@lists.r-forge.r-project.org 
 [mailto:rcpp-devel-boun...@lists.r-forge.r-project.org] On Behalf Of Romain 
 Francois
 Sent: 11. april 2014 15:26
 To: rcpp-devel@lists.r-forge.r-project.org
 Subject: [Rcpp-devel] Rcpp11 3.1.0 is on CRAN
 
 Hello, 
 
 I'll keep it short here. Rcpp11 3.1.0 was released on CRAN today. An 
 announcement email has been sent to both r-packages and the new R and C++ 
 mailing list. https://groups.google.com/forum/#!forum/r-and-cpp
 
 Best Regards, 
 
 Romain
 ___
 Rcpp-devel mailing list
 Rcpp-devel@lists.r-forge.r-project.org
 https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

___
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel


Re: [Rcpp-devel] Rcpp11 3.1.0 is on CRAN

2014-04-17 Thread Romain François

Le 17 avr. 2014 à 09:42, Hao Ye h...@ucsd.edu a écrit :

 Hi Romain,
 
 Thanks for the explanation -- I was curious about the difference between Rcpp 
 and Rcpp11, as well.
  
 What might help you deciding is that in Rcpp11, we did not retain some 
 features such as modules and date/time related classes. If your code uses 
 these, then you should probably either stick with Rcpp or start motivating me 
 for adding something along the lines in Rcpp11. There is still a need for 
 something like modules, but not with this implementation.
 
 Does this mean that there will be some other mechanism for exposing c++ 
 classes to R? Maybe in some way that supports inheritence? ;)

Yes. Problems with Rcpp modules are: 
  -  the way you express things is limited by C++ grammar. It was fun and 
challenging to write it. But experience of teaching modules shows that the 
concepts are somewhat hard to grasp. 
  - it is very demanding in terms of resources

In the future, I’d like to look into code generation (a la attributes) as a 
mean of exposing classes. So we need something expressive enough. My current 
blue sky line of thinking about this is that I’d like to have some sort of 
intermediate language between R and C++. John has done something similar with 
the exposeClass in Rcpp. 
https://github.com/RcppCore/Rcpp/blob/master/R/exposeClass.R

It goes in the right direction, but this time you are limited by R’s grammar. 
This has been on my radar for some time, but I think having a class system that 
is nice to use in R requires some grammatical changes. It is unlikely that I 
will have the leverage to change R’s grammar, but what I can work on is an 
intermediate language that generates R code. 

In any case, Rcpp11 still has the external pointer class template, so we can « 
write modules by hand ». 

Romain

___
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Re: [Rcpp-devel] Rcpp11 3.1.0 is on CRAN

2014-04-17 Thread Dirk Eddelbuettel

On 17 April 2014 at 09:24, Romain François wrote:
| Now, as Dirk says, you can use C++11 with Rcpp. Just as much as you can use 
C++11 with vanilla .Call/.C. 

Yes of course. 

As R in a C program, and as .C (no SEXP) and .Call (SEXP interface) are C
interfaces, Rcpp and Rcpp11 are in the exact same boat.  

There is no advantage at the interface level. Everything turns to C the
moment we interface R.  Beyond that point, we can use C++ in all its
features, including C++11.  Rcpp has supported the option of C++11 as long as
the compilers have as it required just an optional switch.

Dirk

-- 
Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com
___
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel


[Rcpp-devel] Rcpp11 3.1.0 is on CRAN

2014-04-11 Thread Romain Francois
Hello, 

I’ll keep it short here. Rcpp11 3.1.0 was released on CRAN today. An 
announcement email has been sent to both r-packages and the new R and C++ 
mailing list. https://groups.google.com/forum/#!forum/r-and-cpp

Best Regards, 

Romain
___
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel