> -----Original Message----- > From: r-devel-boun...@r-project.org > [mailto:r-devel-boun...@r-project.org] On Behalf Of Martin Maechler > Sent: Wednesday, June 03, 2009 2:37 AM > To: Wacek Kusnierczyk > Cc: r-devel@r-project.org > Subject: Re: [Rd] Print bug for matrix(list(NA_complex_, ...)) > > >>>>> "vQ" == Wacek Kusnierczyk > <waclaw.marcin.kusnierc...@idi.ntnu.no> > >>>>> on Wed, 03 Jun 2009 10:43:25 +0200 writes: > > vQ> Stavros Macrakis wrote: > >> In R 2.8.0 on Windows (tested both under ESS and under > R Console in case > >> there was an I/O issue) > >> > >> There is a bug in printing val <- > matrix(list(NA_complex_,NA_complex_),1). > >> > >> > >>> dput(val) > >>> > >> structure(list(NA_complex_, NA_complex_), .Dim = 1:2) > >> > >> > >>> print(val) > >>> > >> > >> [,1] > >> > >> [1,] > >> > >> > >> [,2] > >> > >> [1,] > >> > >> > >> Note that a large number of spaces are printed instead of NA. > > vQ> on ubuntu 8.04 with r 2.10.0 r48703 there is almost > no problem (still > vQ> some unnecessary spaces): > > vQ> [,1] [,2] > vQ> [1,] NA NA > > thank you, Waclav. > > I don't see any unnecessary space (or other CPU problems), > using another Linux variant (RHEL 5) > in the three R version > 2.9.0 , > 2.9.0-patched (r48700) > 2.10.0-devel (r48700) > > Can other Windows (or ...) users confirm problems in R 2.9.0 > (or newer) ?
I just tried it on 2.9.0 on the Windows GUI (RGui.exe) and saw similar problems. When printing to the command window, with either print(val) or show(val) it took a very long time and put $'s at the ends of the lines (indicating that there was text beyond the edge of the window). I used sink() to put the output into a file and then print() and show() acted quickly. The resulting file had 119 character lines, consisting mainly of trailing blanks: > readLines("c:/temp/val.txt") # output of print(val);show(val);str(val) [1] " [,1] " [2] "[1,] " [3] " [,2] " [4] "[1,] " [5] " [,1] " [6] "[1,] " [7] " [,2] " [8] "[1,] " [9] "List of 2" [10] " $ : cplx NA" [11] " $ : cplx NA" [12] " - attr(*, \"dim\")= int [1:2] 1 2" > nchar(readLines("c:/temp/val.txt")) [1] 119 119 119 119 119 119 119 119 9 12 12 32 On Linux, using yesterday's 2.9.0, valgrind shows lots of 'depends on uninitialized value' problems that could explain the Linux-Windows difference in behavior: > val<-matrix(list(NA_complex_,NA_complex_),1) > val ==24859== Conditional jump or move depends on uninitialised value(s) ==24859== at 0x6F7E2F: vfprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x7177A5: vsnprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x6FF4E1: snprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x809DDC1: Rf_EncodeReal (printutils.c:179) ==24859== by 0x8099AA9: Rf_PrintValueRec (print.c:359) ==24859== by 0x809A124: Rf_PrintValueEnv (print.c:956) ==24859== by 0x80584CA: Rf_ReplIteration (main.c:261) ==24859== by 0x8058572: R_ReplConsole (main.c:306) ==24859== by 0x8058BB8: run_Rmainloop (main.c:967) ==24859== by 0x8056A70: main (Rmain.c:33) ==24859== ==24859== Conditional jump or move depends on uninitialised value(s) ==24859== at 0x6F7E44: vfprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x7177A5: vsnprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x6FF4E1: snprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x809DDC1: Rf_EncodeReal (printutils.c:179) ==24859== by 0x8099AA9: Rf_PrintValueRec (print.c:359) ==24859== by 0x809A124: Rf_PrintValueEnv (print.c:956) ==24859== by 0x80584CA: Rf_ReplIteration (main.c:261) ==24859== by 0x8058572: R_ReplConsole (main.c:306) ==24859== by 0x8058BB8: run_Rmainloop (main.c:967) ==24859== by 0x8056A70: main (Rmain.c:33) ==24859== ==24859== Conditional jump or move depends on uninitialised value(s) ==24859== at 0x6F7E4C: vfprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x7177A5: vsnprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x6FF4E1: snprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x809DDC1: Rf_EncodeReal (printutils.c:179) ==24859== by 0x8099AA9: Rf_PrintValueRec (print.c:359) ==24859== by 0x809A124: Rf_PrintValueEnv (print.c:956) ==24859== by 0x80584CA: Rf_ReplIteration (main.c:261) ==24859== by 0x8058572: R_ReplConsole (main.c:306) ==24859== by 0x8058BB8: run_Rmainloop (main.c:967) ==24859== by 0x8056A70: main (Rmain.c:33) ==24859== ==24859== Conditional jump or move depends on uninitialised value(s) ==24859== at 0x6FA87A: vfprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x7177A5: vsnprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x6FF4E1: snprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x809DDC1: Rf_EncodeReal (printutils.c:179) ==24859== by 0x8099AA9: Rf_PrintValueRec (print.c:359) ==24859== by 0x809A124: Rf_PrintValueEnv (print.c:956) ==24859== by 0x80584CA: Rf_ReplIteration (main.c:261) ==24859== by 0x8058572: R_ReplConsole (main.c:306) ==24859== by 0x8058BB8: run_Rmainloop (main.c:967) ==24859== by 0x8056A70: main (Rmain.c:33) ==24859== ==24859== Conditional jump or move depends on uninitialised value(s) ==24859== at 0x6F86E8: vfprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x7177A5: vsnprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x6FF4E1: snprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x809DDC1: Rf_EncodeReal (printutils.c:179) ==24859== by 0x8099AA9: Rf_PrintValueRec (print.c:359) ==24859== by 0x809A124: Rf_PrintValueEnv (print.c:956) ==24859== by 0x80584CA: Rf_ReplIteration (main.c:261) ==24859== by 0x8058572: R_ReplConsole (main.c:306) ==24859== by 0x8058BB8: run_Rmainloop (main.c:967) ==24859== by 0x8056A70: main (Rmain.c:33) ==24859== ==24859== Conditional jump or move depends on uninitialised value(s) ==24859== at 0x6F86FA: vfprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x7177A5: vsnprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x6FF4E1: snprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x809DDC1: Rf_EncodeReal (printutils.c:179) ==24859== by 0x8099AA9: Rf_PrintValueRec (print.c:359) ==24859== by 0x809A124: Rf_PrintValueEnv (print.c:956) ==24859== by 0x80584CA: Rf_ReplIteration (main.c:261) ==24859== by 0x8058572: R_ReplConsole (main.c:306) ==24859== by 0x8058BB8: run_Rmainloop (main.c:967) ==24859== by 0x8056A70: main (Rmain.c:33) ==24859== ==24859== Conditional jump or move depends on uninitialised value(s) ==24859== at 0x711183: _IO_padn (in /lib/tls/libc-2.3.4.so) ==24859== by 0x6F8713: vfprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x7177A5: vsnprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x6FF4E1: snprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x809DDC1: Rf_EncodeReal (printutils.c:179) ==24859== by 0x8099AA9: Rf_PrintValueRec (print.c:359) ==24859== by 0x809A124: Rf_PrintValueEnv (print.c:956) ==24859== by 0x80584CA: Rf_ReplIteration (main.c:261) ==24859== by 0x8058572: R_ReplConsole (main.c:306) ==24859== by 0x8058BB8: run_Rmainloop (main.c:967) ==24859== by 0x8056A70: main (Rmain.c:33) ==24859== ==24859== Conditional jump or move depends on uninitialised value(s) ==24859== at 0x7111BF: _IO_padn (in /lib/tls/libc-2.3.4.so) ==24859== by 0x6F8713: vfprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x7177A5: vsnprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x6FF4E1: snprintf (in /lib/tls/libc-2.3.4.so) ==24859== by 0x809DDC1: Rf_EncodeReal (printutils.c:179) ==24859== by 0x8099AA9: Rf_PrintValueRec (print.c:359) ==24859== by 0x809A124: Rf_PrintValueEnv (print.c:956) ==24859== by 0x80584CA: Rf_ReplIteration (main.c:261) ==24859== by 0x8058572: R_ReplConsole (main.c:306) ==24859== by 0x8058BB8: run_Rmainloop (main.c:967) ==24859== by 0x8056A70: main (Rmain.c:33) Bill Dunlap TIBCO Software Inc - Spotfire Division wdunlap tibco.com > > Regards, > Martin Maechler > > >> Compare the > >> unproblematic real case: > >> > >> print(structure(list(NA_real_, NA_real_), .Dim = 1:2)) > >> [,1] [,2] > >> [1,] NA NA > >> > >> Also, when printed in the read-eval-print loop, > printing takes a very very > >> long time: > >> > >> > >>> proc.time(); matrix(list(NA_complex_,NA_complex_),1); > proc.time() > >>> > >> user system elapsed > >> 74.35 0.09 329.45 > >> > >> [,1] > >> > >> [1,] > >> > >> > >> [,2] > >> > >> [1,] > >> > >> user system elapsed > >> 92.63 0.15 347.86 > >> > >> 18 seconds runtime! > >> > > vQ> user system elapsed > vQ> 0.648 0.056 155.843 > vQ> [,1] [,2] > vQ> [1,] NA NA > vQ> user system elapsed > vQ> 0.648 0.056 155.843 > > vQ> vQ > > vQ> ______________________________________________ > vQ> R-devel@r-project.org mailing list > vQ> https://stat.ethz.ch/mailman/listinfo/r-devel > > ______________________________________________ > 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