Forgot to mention, my builds were not instrumented for valgrind, and
also:
vagrant@vagrant:/vagrant/trunk$ ./bin/R --version
R Under development (unstable) (2021-04-27 r80232) -- "Unsuffered
Consequences"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
On Thursday, April 29, 2021, 8:40:21 PM EDT, brodie gaslam via
R-devel <r-devel@r-project.org> wrote:
On Thursday, April 29, 2021, 6:35:16 PM EDT, Winston Chang
<winstoncha...@gmail.com> wrote:
Just to be clear, the RD binary that Jon used was NOT compiled with
Valgrind level 2 instrumentation. In his example, however, he did
run it
with valgrind, as in:
# RD -d valgrind --quiet -e "sum(c(1, NA))"
...
sum(c(1, NA))
[1] NaN
`RD` in that Docker image is a standard build of R-devel. The Docker
image does include a build of R-devel with valgrind level 2
instrumentation, called `RDvalgrind`. It exhibits the same NaN behavior
when run with `-d valgrind`, but when run without `-d valgrind` it
returns NA.
# RDvalgrind -d valgrind --quiet -e "sum(c(1, NA))"
sum(c(1, NA))
[1] NaN
# RDvalgrind --quiet -e "sum(c(1, NA))"
sum(c(1, NA))
[1] NA
In short `RDvalgrind` behaves the same as `RD`. However, adding `-d
valgrind` to either one causes it to return NaN.
-Winston
Thanks for the clarification.
Using the same revision in the e-mail I get the reported issue under
-O0,
but not under -O2. It looks like r-debug builds with -O0, and
presumably
the release debian version is -O2 which is usually the default? I'm
certainly no expert in this area but it seems like it could be an
optimization level rather than a release vs devel issue?
This is what I see:
gcc version 10.1.0 (Ubuntu 10.1.0-2ubuntu1~18.04)
CC="gcc-10"
CFLAGS="-g -O0 -Wall -pedantic -Wextra -std=gnu99"
vagrant@vagrant:/vagrant/trunk$ ./bin/R -d valgrind --vanilla
--quiet -e "sum(c(1,NA))"
==9020== Memcheck, a memory error detector
==9020== Copyright (C) 2002-2017, and GNU GPL'd, by Julian
Seward et al.
==9020== Using Valgrind-3.13.0 and LibVEX; rerun with -h for
copyright info
==9020== Command: /vagrant/trunk/bin/exec/R --vanilla --quiet -e
sum(c(1,NA))
==9020==
> sum(c(1,NA))
[1] NaN
And then:
CC="gcc-10"
CFLAGS="-g -O2 -Wall -pedantic -Wextra -std=gnu99"
vagrant@vagrant:/vagrant/trunk$ ./bin/R -d valgrind --vanilla
--quiet -e "sum(c(1,NA))"
==32751== Memcheck, a memory error detector
==32751== Copyright (C) 2002-2017, and GNU GPL'd, by Julian
Seward et al.
==32751== Using Valgrind-3.13.0 and LibVEX; rerun with -h for
copyright info
==32751== Command: /vagrant/trunk/bin/exec/R --vanilla --quiet
-e sum(c(1,NA))
==32751==
> sum(c(1,NA))
[1] NA
Sadly I did not think to run the -O0 version without valgrind.
Best,
B.
______________________________________________
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