On 04/26/2017 04:46 PM, luke-tier...@uiowa.edu wrote:
Thanks for the report. Fixed in R_devel with r72631; I'll port to
R-patched later today or tomorrow.
Thanks!
The default setting and how to get the current settings are documented
in the Details section of the enableJIT help page at the end of the
paragraph for enableJIT.
Indeed. Sorry for missing that (I was playing with several versions
of R and probably looked at the enableJIT man page in the wrong R).
H.
Best,
luke
On Wed, 26 Apr 2017, Hervé Pagès wrote:
Hi,
I'm running into a case where byte-compilation changes
the semantic of a function. This is with R 3.4.0:
foo <- function(x) { TRUE && x }
foo(c(a=FALSE))
# [1] FALSE # OK
foo(c(a=TRUE))
# [1] TRUE # OK
foo(c(a=FALSE))
# a # ????
# FALSE
The 3rd call returned a result that it different from the 1st
call!
After scratching my head for a while, I found out that there
is a lot going on:
1) When calling foo the first 2 times, the function is not
byte-compiled so is behaving as expected.
2) However after the 2nd call, the function gets automatically
compiled. This seems to be a new feature in R 3.4.0 but
you'll have to grep the NEWS file to find out (search for
JIT). The man page for cmpfun/enableJIT nicely explains
the JIT levels but I couldn't find anywhere that the level
is set to 3 by default. I don't even know how one is
supposed to get the current level. Calling enableJIT() to
change the level returns a value, and this value might
look like the previous level, but this is undocumented and
it returns 0 instead of 3 the 1st time I call it anyway.
3) There is some bug in the byte-compiler that seems to make it
treat `&&` like if it were `&` when compiling foo.
Cheers,
H.
> sessionInfo()
R version 3.4.0 (2017-04-21)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.2 LTS
Matrix products: default
BLAS: /home/biocbuild/bbs-3.5-bioc/R/lib/libRblas.so
LAPACK: /home/biocbuild/bbs-3.5-bioc/R/lib/libRlapack.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.0
--
Hervé Pagès
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024
E-mail: hpa...@fredhutch.org
Phone: (206) 667-5791
Fax: (206) 667-1319
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel