[Bioc-devel] Newbie Question - How to submit patches

Florian Hahne f.hahne at dkfz.de
Wed Oct 26 18:54:19 CEST 2005


Hi Paul and Robert,
To close this thread:
I just submitted an updated version of rowPAUCs to the genefilter 
package. This is now real ANSI C and also the code is optimized. I'm 
affraid you may not be able to get this in the stable release of bioC at 
the moment but only in the latest devel version. Anyways, it should run 
quite a bit faster than the old version.
Best regards,
Florian


Paul Gordon wrote:

>Thank you gentlemen for all your responses.  As a summary:
>
>-I compiled R with Sun's cc, which by default is ANSI C.  This worked fine.
>-I ran getBioC.R's getBioC() fror the latest stable release
>-It failed on the gcrma and genefilter packages, because postmean.c and 
>rowPAUCs.c require ISO C99.
>-The Writing R Extensions document says that you can safely assume ANSI 
>C compliance, but must check for ISO C99 compliance of the compiler 
>(usually autoconf)
>-These two packages probably do not use autoconf, because when they are 
>compiling, by default they use the exact same flags as were used to 
>compile R itself (which does not have the C99 requirement), rather than 
>adding the required "-xc99=%all" flag.
>-Not knowing how to easily change this compilation flag in the context 
>of just trying getBioC(), I modified the two offending C files (in the 
>temporary download directory) to declare all variables at the beginning 
>of the functions.
>-They then compiled and installed fine.
>-I e-mailed the list asking if anyone else had had difficulty compiling 
>these two files.
>-Based on your feedback, I changed my malloc calls to R's Calloc calls 
>(R_alloc, which is what I now assume you meant, would hold on to the 
>memory unneccessaarily long).  It is much nicer now. :-)  I've attached 
>them again for your perusal.
>-To make getBioC() seamless for non-gcc people, perhaps contributed 
>packages should be required to be ANSI C or use autoconf...
>
>Below is the output when I try to install the original gcrma and 
>genefilter packages (I modified biocinstall.R to just get these two for 
>brevity purposes).  These packages do not seem to call autconf, but do 
>rely on an ISO C99 compiler:
>
> > biocinstall()
>
>Running biocinstall version 1.0  with R version  2.2.0
>trying URL 
>'http://www.bioconductor.org/packages/bioc/devel/src/contrib/genefilter_1.8.0.tar.gz'
>Content type 'application/x-gzip' length 224986 bytes
>opened URL
>==================================================
>downloaded 219Kb
>
>trying URL 
>'http://www.bioconductor.org/packages/bioc/devel/src/contrib/gcrma_2.2.0.tar.gz'
>Content type 'application/x-gzip' length 107239 bytes
>opened URL
>==================================================
>downloaded 104Kb
>
>* Installing *source* package 'genefilter' ...
>** libs
>cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
>-xprefetch -xlibmil -c genedist.c -o genedist.o
>cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
>-xprefetch -xlibmil -c init.c -o init.o
>cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
>-xprefetch -xlibmil -c rowPAUCs.c -o rowPAUCs.o
>"rowPAUCs.c", line 56: syntax error before or at: double
>"rowPAUCs.c", line 61: undefined symbol: xin
>"rowPAUCs.c", line 61: cannot dereference non-pointer type
>"rowPAUCs.c", line 62: undefined symbol: yin
>"rowPAUCs.c", line 62: cannot dereference non-pointer type
>"rowPAUCs.c", line 67: syntax error before or at: double
>"rowPAUCs.c", line 69: undefined symbol: xall
>"rowPAUCs.c", line 69: cannot dereference non-pointer type
>"rowPAUCs.c", line 70: undefined symbol: yall
>"rowPAUCs.c", line 70: cannot dereference non-pointer type
>"rowPAUCs.c", line 72: cannot dereference non-pointer type
>"rowPAUCs.c", line 72: undefined symbol: xin
>"rowPAUCs.c", line 72: cannot dereference non-pointer type
>"rowPAUCs.c", line 73: cannot dereference non-pointer type
>"rowPAUCs.c", line 73: undefined symbol: yin
>"rowPAUCs.c", line 73: cannot dereference non-pointer type
>"rowPAUCs.c", line 77: cannot dereference non-pointer type
>"rowPAUCs.c", line 78: cannot dereference non-pointer type
>"rowPAUCs.c", line 81: cannot dereference non-pointer type
>"rowPAUCs.c", line 81: cannot dereference non-pointer type
>"rowPAUCs.c", line 82: cannot dereference non-pointer type
>"rowPAUCs.c", line 82: cannot dereference non-pointer type
>"rowPAUCs.c", line 86: cannot recover from previous errors
>cc: acomp failed for rowPAUCs.c
>make: *** [rowPAUCs.o] Error 2
>ERROR: compilation failed for package 'genefilter'
>** Removing '/usr/local/lib/R/library/genefilter'
>** Restoring previous '/usr/local/lib/R/library/genefilter'
>* Installing *source* package 'gcrma' ...
>** libs
>cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
>-xprefetch -xlibmil -c baseProfile.c -o baseProfile.o
>cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
>-xprefetch -xlibmil -c computeAffinities.c -o computeAffinities.o
>cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
>-xprefetch -xlibmil -c postmean.c -o postmean.o
>"postmean.c", line 26: syntax error before or at: double
>"postmean.c", line 27: undefined symbol: pnorms
>"postmean.c", line 27: cannot dereference non-pointer type
>"postmean.c", line 32: cannot dereference non-pointer type
>"postmean.c", line 33: undefined symbol: diff_pnorms
>"postmean.c", line 33: cannot dereference non-pointer type
>"postmean.c", line 33: cannot dereference non-pointer type
>cc: acomp failed for postmean.c
>make: *** [postmean.o] Error 2
>ERROR: compilation failed for package 'gcrma'
>** Removing '/usr/local/lib/R/library/gcrma'
>** Restoring previous '/usr/local/lib/R/library/gcrma'
>
>The downloaded packages are in
>    /tmp/Rtmp4890/downloaded_packages
>Warning messages:
>1: 'CRAN.packages' is deprecated.
>Use 'available.packages' instead.
>See help("Deprecated")
>2: installation of package 'genefilter' had non-zero exit status in: 
>install.packages(pkgs = c("genefilter", "gcrma"), repos = 
>c("http://www.bioconductor.org/packages/bioc/devel", 
>3: installation of package 'gcrma' had non-zero exit status in: 
>install.packages(pkgs = c("genefilter", "gcrma"), repos = 
>c("http://www.bioconductor.org/packages/bioc/devel",
>
>_______________________________________________
>Bioc-devel at stat.math.ethz.ch mailing list
>https://stat.ethz.ch/mailman/listinfo/bioc-devel
>  
>



More information about the Bioc-devel mailing list