qinwf/re2r

re2r being removed from CRAN

kgjerde opened this issue · 9 comments

I have received a mail from the CRAN maintainers because I have a CRAN package that imports re2r:

re2r will unfortunately now be removed/archived by the CRAN maintainers due to CRAN check problems (see below) (some of which seem to be addressed by @Pilipino in #21).

re2r works in many cases much faster than the other available regex implementations in R, so this is very regrettable indeed. I do not myself have the necessary C/C++ etc. competency to fix the issues.

Copied from https://cran.r-project.org/web/checks/check_results_re2r.html on 4 March 2020:

Check Details
Version: 0.2.0
Check: for GNU extensions in Makefiles
Result: NOTE
GNU make is a SystemRequirements.
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc, r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc, r-devel-windows-ix86+x86_64, r-devel-windows-ix86+x86_64-gcc8, r-patched-linux-x86_64, r-patched-solaris-x86, r-release-linux-x86_64, r-release-windows-ix86+x86_64, r-release-osx-x86_64, r-oldrel-windows-ix86+x86_64, r-oldrel-osx-x86_64

Version: 0.2.0
Check: pragmas in C/C++ headers and code
Result: NOTE
Files which contain pragma(s) suppressing diagnostics:
'inst/include/re2/prog.h' 'inst/include/re2/re2.h'
'inst/include/re2/regexp.h' 'src/dfa.cc' 'src/onepass.cc'
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc, r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc, r-devel-windows-ix86+x86_64, r-devel-windows-ix86+x86_64-gcc8, r-patched-linux-x86_64, r-release-linux-x86_64, r-release-windows-ix86+x86_64, r-oldrel-windows-ix86+x86_64

Version: 0.2.0
Check: whether package can be installed
Result: WARN
Found the following significant warnings:
compile.cc:292:69: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class re2::Prog::Inst’; use assignment or value-initialization instead [-Wclass-memaccess]
regexp.cc:343:33: warning: ‘void* memmove(void*, const void*, size_t)’ writing to an object of type ‘class re2::Regexp’ with no trivial copy-assignment [-Wclass-memaccess]
regexp.cc:344:32: warning: ‘void* memmove(void*, const void*, size_t)’ writing to an object of type ‘class re2::Regexp’ with no trivial copy-assignment [-Wclass-memaccess]
Flavors: r-devel-linux-x86_64-debian-gcc, r-devel-linux-x86_64-fedora-gcc, r-devel-windows-ix86+x86_64-gcc8, r-patched-linux-x86_64, r-release-linux-x86_64

Version: 0.2.0
Check: installed package size
Result: NOTE
installed size is 11.7Mb
sub-directories of 1Mb or more:
doc 1.5Mb
libs 9.0Mb
Flavors: r-devel-linux-x86_64-fedora-clang, r-devel-windows-ix86+x86_64, r-devel-windows-ix86+x86_64-gcc8, r-release-windows-ix86+x86_64, r-release-osx-x86_64, r-oldrel-windows-ix86+x86_64, r-oldrel-osx-x86_64

Version: 0.2.0
Check: for unstated dependencies in ‘tests’
Result: WARN
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Warning in deparse(e[[2L]]) :
it is not known that wchar_t is Unicode on this platform
Flavor: r-patched-solaris-x86

qinwf commented

WIP #23

CRAN will get less test cases. Sad.

test-unicode.R

hi @qinwf if you do not have time to maintain re2r anymore, or you just want a partner to help with maintenance / bug fixes, you may think about training a student to take over maintenance as part of R-GSOC'20 https://github.com/rstats-gsoc/gsoc2020/wiki/table%20of%20proposed%20coding%20projects

qinwf commented

boostorg/interprocess#59

-Wpedantic is not an option CRAN uses. In fact, it warns against it as not portable. So when you two say "this blocks my submission" exactly what do you mean?
As of today, 152 packages on CRAN reverse-depend on BH. According to you two that would not be possible (modulo not all 152 using IPC but you get the idea).
That said, always nice to get changes into upstream. I try to update BH once or twice a year.

Now, CRAN uses -Wpedantic on r-devel Debian?

The latest result from r-devel

Dear maintainer,

package re2r_1.0.0.tar.gz does not pass the incoming checks automatically, please see the following pre-tests:
Windows: <https://win-builder.r-project.org/incoming_pretest/re2r_1.0.0_20200313_181345/Windows/00check.log>
Status: 1 NOTE
Debian: <https://win-builder.r-project.org/incoming_pretest/re2r_1.0.0_20200313_181345/Debian/00check.log>
Status: 1 WARNING, 1 NOTE

Last released version's CRAN status: WARN: 6, NOTE: 7
See: <https://CRAN.R-project.org/web/checks/check_results_re2r.html>

CRAN Web: <https://cran.r-project.org/package=re2r>

Please fix all problems and resubmit a fixed version via the webform.
If you are not sure how to fix the problems shown, please ask for help on the R-package-devel mailing list:
<https://stat.ethz.ch/mailman/listinfo/r-package-devel>
If you are fairly certain the rejection is a false positive, please reply-all to this message and explain.

More details are given in the directory:
<https://win-builder.r-project.org/incoming_pretest/re2r_1.0.0_20200313_181345/>
The files will be removed after roughly 7 days.

No strong reverse dependencies to be checked.

Best regards,
CRAN teams' auto-check service
Flavor: r-devel-linux-x86_64-debian-gcc, r-devel-windows-ix86+x86_64
Check: CRAN incoming feasibility, Result: NOTE
  Maintainer: 'Qin Wenfeng <mail@qinwenfeng.com>'

  License components with restrictions and base license permitting such:
    BSD_3_clause + file LICENSE
  File 'LICENSE':
    YEAR: 2016-2020
    COPYRIGHT HOLDER: Qin Wenfeng

Flavor: r-devel-linux-x86_64-debian-gcc
Check: whether package can be installed, Result: WARNING
  Found the following significant warnings:
    ../inst/include/re2/regexp.h:564:5: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
    ../inst/include/re2/regexp.h:568:5: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
    ../inst/include/re2/regexp.h:572:5: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
    ../inst/include/re2/regexp.h:579:5: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
    ../inst/include/re2/prog.h:158:7: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
    dfa.cc:135:25: warning: ISO C++ forbids flexible array member 'next_' [-Wpedantic]
    onepass.cc:148:12: warning: ISO C++ forbids flexible array member 'action' [-Wpedantic]
  See '/srv/hornik/tmp/CRAN/re2r.Rcheck/00install.out' for details.
qinwf commented

The solution they used is not available here, because CRAN does not allowpragma GCC diagnostic ignored "-Wpedantic"

boostorg/interprocess@818ef81

hi @qinwf I posted a R-GSOC'20 project idea page for getting re2r back on CRAN, and listed you as a mentor https://github.com/rstats-gsoc/gsoc2020/wiki/re2r-back-on-CRAN is that ok? can you please add/edit that wiki page with some info about what the current problem is, and what other features may be good to work on during a gsoc project?

also this seems to be an issue with upstream (RE2) code.. can you please file an issue with them? I don't see any outstanding issues with that warning, https://github.com/google/re2/issues?q=ISO+C%2B%2B+prohibits+anonymous+structs+

qinwf commented

@tdhock Thanks for the idea. Working on it now.

@qinwf Hi qinwf, I'm a student, hoping to work on this project in GSOC 2021. There appears no issue about this problem in the RE2 repository, have you ever filed an issue about this problem in RE2? Thanks!