January Weiner
2014-Nov-02 11:20 UTC
[Rd] Building R package: “Found 'rand', possibly from 'rand' (C)” NOTE when checking package
I am building a package that makes a simple visualization. A part of the code is in C++, and utilizes the functions srand() and rand() for purposes not related to statistics (introducing random noise in the visualization). The package compiles without problems on my workstation(s), but when I submitted it to the winbuilder service, I got the following weird message: * checking compiled code ... NOTE File 'tagcloud/libs/i386/tagcloud.dll': Found 'rand', possibly from 'rand' (C) Object: 'overlap.o' Found 'srand', possibly from 'srand' (C) Object: 'overlap.o' File 'tagcloud/libs/x64/tagcloud.dll': Found 'rand', possibly from 'rand' (C) Object: 'overlap.o' Found 'srand', possibly from 'srand' (C) Object: 'overlap.o' Compiled code should not call entry points which might terminate R nor write to stdout/stderr instead of to the console, nor the C RNG. To the best of my knowledge, I don't see where in the code I "call entry points which might terminate R" or "write to stdout/stderr", but then, if I remove the calls to rand/srand, this message disappears. You can review the package here: http://win-builder.r-project.org/toy6frr57aCU/ Kind regards, January -- -------- January Weiner --------------------------------------
Berend Hasselman
2014-Nov-02 11:40 UTC
[Rd] Building R package: “Found 'rand', possibly from 'rand' (C)” NOTE when checking package
On 02-11-2014, at 12:20, January Weiner <january.weiner at gmail.com> wrote:> I am building a package that makes a simple visualization. A part of > the code is in C++, and utilizes the functions srand() and rand() for > purposes not related to statistics (introducing random noise in the > visualization). The package compiles without problems on my > workstation(s), but when I submitted it to the winbuilder service, I > got the following weird message: > > * checking compiled code ... NOTE > File 'tagcloud/libs/i386/tagcloud.dll': > Found 'rand', possibly from 'rand' (C) > Object: 'overlap.o' > Found 'srand', possibly from 'srand' (C) > Object: 'overlap.o' > File 'tagcloud/libs/x64/tagcloud.dll': > Found 'rand', possibly from 'rand' (C) > Object: 'overlap.o' > Found 'srand', possibly from 'srand' (C) > Object: 'overlap.o' > > Compiled code should not call entry points which might terminate R nor > write to stdout/stderr instead of to the console, nor the C RNG. > > To the best of my knowledge, I don't see where in the code I "call > entry points which might terminate R" or "write to stdout/stderr", but > then, if I remove the calls to rand/srand, this message disappears. >Which version of R on your workstation? Your code should also not call the C RNG (rand and srand) as the message clearly states. Berend> You can review the package her:e > http://win-builder.r-project.org/toy6frr57aCU/ > > Kind regards, > > January > > -- > -------- January Weiner -------------------------------------- > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel
Possibly Parallel Threads
- [LLVMdev] Use rand_r() instead of non-reentrant thread-unsafe rand() in GetRandomNumber()
- 4-stable and C rand()?
- [LLVMdev] Use rand_r() instead of non-reentrant thread-unsafe rand() in GetRandomNumber()
- [LLVMdev] Use rand_r() instead of non-reentrant thread-unsafe rand() in GetRandomNumber()
- [LLVMdev] Use rand_r() instead of non-reentrant thread-unsafe rand() in GetRandomNumber()