Le 2013-10-29 03:01, Whit Armstrong a écrit :
I would love to see optional c++0x support added for R.

c++0x was the name given for when this was in development. Now c++11 is a published standard backed by implementations by major compilers.
people need to stop calling it c++0x

If there is anything I can do to help, please let me know.

Come here https://github.com/romainfrancois/cpp11_article where I'm writing an article on C++11 and what would be the benefits.

Romain

Sincerely,
Whit

On Mon, Oct 7, 2013 at 5:47 PM, Dirk Eddelbuettel <e...@debian.org> wrote:


Hi Martyn,

On 7 October 2013 at 21:18, Martyn Plummer wrote:
| I don't see any harm in allowing optional C++11 support,

That would be a nice step forward.

| and it is no trouble to update the documentation to acknowledge the
| existence of C++11 conforming compilers.

Indeed.

| However, the questions of what is possible, what is recommended, and what
|  is required for CRAN submissions are distinct.

You may be aware of the difficulties we as R package developers have with
discussions involving CRAN maintainers.

| I have a couple of comments on the macro:
| a) Your version implies mandatory C++11 support. One needs
| AX_CXX_COMPILE_STDCXX_11(noext,optional) for optional support.

I used an existing macros from the GNU autoconf archive. It can certainly
be
tweaked. R's stack of configure logic is an impressive piece of work and I wasn't expecting this to flow through. It was meant to start a discussion.

My principal points are that

   i)  we do have compilers now that can support this, and

   ii) we can test for their capabilities when R itself is compiled.

| b) I find it unhelpful that the macro picks up the partial C++11 support
in
| gcc 4.7 via the -std=c++0x flag, so I would edit (and rename) the macro
to
| remove this.

Of course. All this can and should be discussed. I just wanted to get the ball rolling and had a choice between just emailing Kurt (as the configure
and m4 point man) and emailing here.

To the extent that c++0x support is also widely available, I do not see why one could not allow it either. But that is a minor issue: I would really like us to (eventually) move beyond what is going to become a more and more
constraining C++ standard.

Optional support for deployments where C++11 is indeed available seems
like a
step in the right direction.

Thanks for your feedback!

Dirk

| Martyn
| ________________________________________
| From: r-devel-boun...@r-project.org [r-devel-boun...@r-project.org] on
behalf of Dirk Eddelbuettel [e...@debian.org]
| Sent: 07 October 2013 01:54
| To: R-devel org
| Subject: [Rd] R 3.1.0 and C++11
|
| I would like to bring up two issues concerning C++11.
|
|
| First, the R-devel manuals contain incorrect statements regarding C++11:
|
|   i)   R-exts.texi:
|
| Although there is a 2011 version of the C++ standard, it is not
yet
| fully implemented (nor is it likely to be widely available for
some
| years) and portable C++ code needs to follow the 1998 standard
|        (and not use features from C99).
|
|   ii)  R-ints.texi:
|
| The type `R_xlen_t' is made available to packages in C header
|        `Rinternals.h': this should be fine in C code since C99 is
| required. People do try to use R internals in C++, but C++98 | compilers are not required to support these types (and there are
|        currently no C++11 compilers).
|
| But since the summer we have g++ and clang with working C++11
implementations:
|
|   iii) g++ implements C++11:
|

http://isocpp.org/blog/2013/05/gcc-4.8.1-released-c11-feature-complete
|
|   iv)  llvm/clang++ implements C++11:
|        http://isocpp.org/blog/2013/06/llvm-3.3-is-released
|
| I would suggest to change the wording prior to the release of R 3.1.0
next
| year as it is likely that even Microsoft will by then have a
fully-conformant
| compiler (per Herb Sutter at a recent talk in Chicago). If it helped, I
would
| be glad to provide minimal patches to the two .texi files.
|
| Moreover, the C++ Standards Group is working towards closing the delta | between standards being adopted, and compilers being released. They
expect
| corresponding compilers for C++14 (a "patch" release for C++11 expected
to be
| ready next spring) to be available within a year---possibly during 2014.
|
|
| Second, the current R Policy regarding C++11 is unnecessarily strict. I
would
| propose to treat the availability of C++11 extensions more like the | availability of OpenMP: something which configure can probe at build
time,
| and which can be deployed later via suitable #ifdef tests.
|
| As a proof of concept, I added this macro from the autoconf archive to
the
| m4/ directory of R-devel:
|
|

http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
|
| and made a one-line change to configure.ac (indented two spaces just
for email)
|
|   edd@max:~/svn/r-devel$ svn di configure.ac
|   Index: configure.ac
| ===================================================================
|   --- configure.ac      (revision 64031)
|   +++ configure.ac      (working copy)
|   @@ -906,6 +906,7 @@
|
|    AC_LANG_PUSH(C++)
|    AC_OPENMP
|   +AX_CXX_COMPILE_STDCXX_11(noext)
|    AC_LANG_POP(C++)
|
|    ### *** ObjC compiler
|   edd@max:~/svn/r-devel$
|
| After running 'aclocal -Im4; autoheader; autoconf', the configure test
then
| properly detected C++11 (or, in one case, C++0x) on four different
compilers:
|
|   [ g++-4.7 case, Ubuntu 13.04 ]
|   checking whether g++ supports C++11 features by default... no
| checking whether g++ supports C++11 features with -std=c++11... no | checking whether g++ supports C++11 features with -std=c++0x... yes
|
|   [ CC=clang CXX=clang++ (3.1), Ubuntu 13.04 ]
| checking whether clang++ accepts -M for generating dependencies... yes
|   checking for clang++ option to support OpenMP... unsupported
| checking whether clang++ supports C++11 features by default... no | checking whether clang++ supports C++11 features with -std=c++11... yes
|
|   [ g++-4.8 case, Debian testing ]
|   checking whether g++ supports C++11 features by default... no
| checking whether g++ supports C++11 features with -std=c++11... yes
|
|   [ CC=clang CXX=clang++ (3.2), Debian testing ]
| checking whether clang++ supports C++11 features by default... no | checking whether clang++ supports C++11 features with -std=c++11... yes
|
| It would be easy to another #define to config.h.in.
|
|
| And of course, I understand that R Core is comprised primarily of C | programmers. But to those of us who lean more towards C++ than C, the
step
| towards C++11 is a big one, and a very exciting one. More and more
upstream
| authors are considering right now whether to switch to C++11-only. I
expect
| such switches to become more common as time pass. C++11 provides a lot
-- and
| preventing programmers from using these tools cannot be in our interest.
|
| I think that the timing of the next R release will be a good opportunity
to
| permit use of C++11 where compilers support it -- as a wide range of
sites
| will already be capable of deploying it.
|
| Thanks, Dirk
|
| --
| Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com
|
| ______________________________________________
| R-devel@r-project.org mailing list
| https://stat.ethz.ch/mailman/listinfo/r-devel
| ----------------------------------------------------------------------- | This message and its attachments are strictly confidential. If you are | not the intended recipient of this message, please immediately notify | the sender and delete it. Since its integrity cannot be guaranteed, | its content cannot involve the sender's responsibility. Any misuse, | any disclosure or publication of its content, either whole or partial,
| is prohibited, exception made of formally approved use
| -----------------------------------------------------------------------

--
Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to