valgrind complains about the save command in R 2.3.1 as shown by the script included below. Of course, I don't know whether this "Conditional jump or move depends on uninitialised value(s)" is really a bug. Experience with similar issues in my own code says it may be, but it is also hard to tell. Having no familiarity with the code cited in deflate.c, I leave the issue to experts. Just thought someone should know. Note that despite the printout in foo.Rout being a bit unclear about exactly where the purported bug occurs, there is no error reported in bar.Rout which does not have the save command.
Irrelevant to the bug, but this was originally spotted when package checking the aster package, which happened to have a save in tests/predict.R. Script started on Tue 25 Jul 2006 09:59:59 AM CDT oak$ cat /etc/SuSE-release SUSE LINUX 10.1 (X86-64) VERSION = 10.1 oak$ export VALGRIND_OPTS="--tool=memcheck" oak$ R CMD BATCH --vanilla --debugger=valgrind foo.R oak$ R CMD BATCH --vanilla --debugger=valgrind bar.R oak$ cat foo.R foo <- 2 save(foo, file = "foo.Rdata") oak$ cat foo.Rout ==13521== Memcheck, a memory error detector. ==13521== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. ==13521== Using LibVEX rev 1575, a library for dynamic binary translation. ==13521== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. ==13521== Using valgrind-3.1.1, a dynamic binary instrumentation framework. ==13521== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==13521== For more details, rerun with: -v ==13521== R : Copyright 2006, The R Foundation for Statistical Computing Version 2.3.1 (2006-06-01) ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. ==13521== Conditional jump or move depends on uninitialised value(s) ==13521== at 0x5D2740: longest_match (deflate.c:1121) ==13521== by 0x5D3BB6: deflate_slow (deflate.c:1595) ==13521== by 0x5D30EB: deflate (deflate.c:790) ==13521== by 0x5D4D21: do_flush (gzio.c:757) ==13521== by 0x5D4F39: gzclose (gzio.c:991) ==13521== by 0x44AC22: gzfile_close (connections.c:1035) ==13521== by 0x44A703: con_close1 (connections.c:2256) ==13521== by 0x44A742: con_close (connections.c:2283) ==13521== by 0x44D3A3: do_close (connections.c:2303) ==13521== by 0x4C43BB: do_internal (names.c:1089) ==13521== by 0x4978F5: Rf_eval (eval.c:398) ==13521== by 0x497F0D: Rf_evalList (eval.c:1400) > invisible(options(echo = TRUE)) > > foo <- 2 > save(foo, file = "foo.Rdata") > > > proc.time() [1] 22.509 0.216 21.774 0.004 0.004 > ==13521== ==13521== ERROR SUMMARY: 9 errors from 1 contexts (suppressed: 12 from 1) ==13521== malloc/free: in use at exit: 22,019,365 bytes in 10,911 blocks. ==13521== malloc/free: 37,822 allocs, 26,911 frees, 55,922,125 bytes allocated. ==13521== For counts of detected errors, rerun with: -v ==13521== searching for pointers to 10,911 not-freed blocks. ==13521== checked 18,666,336 bytes. ==13521== ==13521== LEAK SUMMARY: ==13521== definitely lost: 667 bytes in 35 blocks. ==13521== possibly lost: 0 bytes in 0 blocks. ==13521== still reachable: 22,018,698 bytes in 10,876 blocks. ==13521== suppressed: 0 bytes in 0 blocks. ==13521== Use --leak-check=full to see details of leaked memory. oak$ cat bar.R foo <- 2 oak$ cat bar.Rout ==13534== Memcheck, a memory error detector. ==13534== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. ==13534== Using LibVEX rev 1575, a library for dynamic binary translation. ==13534== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. ==13534== Using valgrind-3.1.1, a dynamic binary instrumentation framework. ==13534== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==13534== For more details, rerun with: -v ==13534== R : Copyright 2006, The R Foundation for Statistical Computing Version 2.3.1 (2006-06-01) ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > invisible(options(echo = TRUE)) > > foo <- 2 > > > proc.time() [1] 22.169 0.204 21.422 0.004 0.004 > ==13534== ==13534== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 12 from 1) ==13534== malloc/free: in use at exit: 21,998,613 bytes in 10,896 blocks. ==13534== malloc/free: 37,788 allocs, 26,892 frees, 55,576,442 bytes allocated. ==13534== For counts of detected errors, rerun with: -v ==13534== searching for pointers to 10,896 not-freed blocks. ==13534== checked 18,645,696 bytes. ==13534== ==13534== LEAK SUMMARY: ==13534== definitely lost: 667 bytes in 35 blocks. ==13534== possibly lost: 0 bytes in 0 blocks. ==13534== still reachable: 21,997,946 bytes in 10,861 blocks. ==13534== suppressed: 0 bytes in 0 blocks. ==13534== Use --leak-check=full to see details of leaked memory. oak$ exit Script done on Tue 25 Jul 2006 10:03:20 AM CDT -- Charles Geyer Professor, School of Statistics University of Minnesota [EMAIL PROTECTED] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel