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

Paul Gordon gordonp at ucalgary.ca
Thu Oct 27 17:08:57 CEST 2005


Great, thanks!

> 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