<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hi Maksim,<br>
      <br>
      It seems that libcxx has stricter rules the lib we "normally" use.<br>
      <br>
      <br>
      replace<br>
      <h1><small><small><small><small>if (illfile == NULL) {</small></small></small></small></h1>
      with<br>
      <br>
      if (!illfile.is_open()) {<br>
      <br>
      and it should compile again. I did not do functional testing!  In
      my opion the is_open() variant looks cleaner then the ==NULL
      construction.<br>
      <br>
      <br>
      >p.s. It seems we always should use 'clang' for compiling R
      packages because as I understand it makes more extensive
      >diagnostic of C++ code before compiling. What do you think?<br>
      <br>
      Most computers do have the GCC pipeline as default (except MacOS),
      so building it with GCC pipeline by default would be good enough.
      LLVM and GCC do both have there strengths and weaknesses. So the
      best way is to test both pipeline in Jenkins. CRAN does use a
      trunk version of R to test the packages so it would be wise to
      compile a fresh R on the jenkins server once in a while. It is in
      general a good idea to use the latest version(maybe even bleeding
      edge) to find error in our software before people have running
      this software on there production machine.<br>
      <br>
      @maksim: were you able to fix all comment of CRAN?<br>
      <br>
      Kind regards,<br>
      <br>
      Maarten<br>
      <br>
       <br>
      On 12/10/2013 12:00 PM, Maksim Struchalin wrote:<br>
    </div>
    <blockquote cite="mid:52A6F452.7050907@mail.ru" type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      Hi Maarten & Lennart,<br>
      <br>
      Following Maarten suggestion to add support of clang in Jenkins, I
      tried to intsall clang on my UBUNTU and here I want to share what
      I got.<br>
      We duscused something separatly already but I thik it is better to
      move in the list so we can trace the dialog back in the future.<br>
      <br>
      <br>
      I installed 'clang' and 'llvm' (both precompiled). And I run in a
      command line:<br>
      <br>
      clang++ -std=c++11 -stdlib=libc++ -fsanitize=undefined
      -fno-omit-frame-pointer -I/usr/share/R/include/  -DNDEBUG 
      -I/home/maksim/distrib/libcxx/include   -DCOMPILE_WITH_R -fpic  -g
      -O2 -Wall -pedantic -mtune=native  -c convert_snp_illumina.cpp -o
      convert_snp_illumina.o<br>
      <br>
      it spit out:<br>
      <small><small><small><small><br>
            </small></small></small></small>
      <h1><small><small><small><small>convert_snp_illumina.cpp:70:14:
                warning: comparison between NULL and non-pointer
                ('ifstream' (aka 'basic_ifstream<char>') and NULL)
                [-Wnull-arithmetic]<br>
                        <br>
                            ~~~~~~~ ^  ~~~~<br>
                convert_snp_illumina.cpp:70:14: error: invalid operands
                to binary expression ('ifstream' (aka
                'basic_ifstream<char>') and 'long')<br>
                        if (illfile == NULL) {<br>
                            ~~~~~~~ ^  ~~~~<br>
                convert_snp_illumina.cpp:270:14: warning: comparison
                between NULL and non-pointer ('ofstream' (aka
                'basic_ofstream<char>') and NULL)
                [-Wnull-arithmetic]<br>
                        if (outfile == NULL) {<br>
                            ~~~~~~~ ^  ~~~~<br>
                convert_snp_illumina.cpp:270:14: error: invalid operands
                to binary expression ('ofstream' (aka
                'basic_ofstream<char>') and 'long')<br>
                        if (outfile == NULL) {<br>
                            ~~~~~~~ ^  ~~~~</small></small></small></small></h1>
      Here -I/home/maksim/distrib/libcxx/include is a standard library
      for clang ('libcxx' was downloaded from <a moz-do-not-send="true"
        class="moz-txt-link-freetext" href="http://libcxx.llvm.org/">http://libcxx.llvm.org/</a>).<br>
      <br>
      <br>
      This is exactly the warinings/errors which CRAN people sent us. To
      run it as R CMD INSTALL, we need to change /etc/R/Makeconf (as
      Maarten mentioned already) appropraitelly and compile the library
      'libcxx' (now, I just downloaded it and used headers files only).
      I tried 'sudo apt-get install libc++-dev' as Maarten suggested but
      got many conflicts with other packages and could not install it.<br>
      <br>
      That's what I got by now. <br>
      <br>
      <br>
      best,<br>
      Maksim<br>
      <br>
      <br>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
genabel-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:genabel-devel@lists.r-forge.r-project.org">genabel-devel@lists.r-forge.r-project.org</a>
<a class="moz-txt-link-freetext" href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel</a></pre>
    </blockquote>
    <br>
  </body>
</html>