[Bioc-devel] Newbie Question - How to submit patches
Paul Gordon
gordonp at ucalgary.ca
Thu Oct 13 22:13:21 CEST 2005
Hi Byron,
I guess I am used to ANSI C, and didn't realize Bioconductor requires a
C99 compliant compiler. As it is only a two files that break the ANSI
standard, and they have a quick fix, would you consider dropping that
requirement? Do you have a quick tip on how to change the compilation
settings within R (Sun's cc does indeed need a special flag to compile
in C99 mode)...
BTW, I used malloc() because I declared the double arrays as double
pointers at the start of the function, and the array size isn't known
until later in the function, e.g. from genefilter's rowPAUCs.c:
...
lx = d;
...
double xin[lx], yin[lx];
...
becomes:
double *xin, *yin;
...
lx = d;
...
if((xin = (double *) malloc(sizeof(double)*lx)) == NULL){
perror("While creating input 'x' array in pAUC (genefilter
package)");
}
if((yin = (double *) malloc(sizeof(double)*lx)) == NULL){
perror("While creating input 'y' array in pAUC (genefilter
package)");
}
...
Kind regards,
Paul
> Local variable declarations are part of the ISO C99 spec (and,
> generally speaking, a good idea IMHO). It may be that you just need
> to toss in a compiler switch. Also, why do you need to malloc them?
>
> On Oct 13, 2005, at 12:11 PM, Paul Gordon wrote:
>
>> Hi all,
>>
>> I just subscribed to this list today, so sorry if my question is naive.
>> I have dowloaded and compiled R with Sun's Workshop Pro compiler to
>> optimize my performance (I find it's about 30-40% faster than gcc with
>> optimization flags), and hence it tries to compile new packages
>> (such as
>> those in Bioconductor) with the Sun's cc too. I have found that some
>> packages (including established ones like genefilter and gcrma) have C
>> files that compile under gcc, but don't strictly adhere to the C spec,
>> and hence don't compile for me. More specifically, gcc lets you
>> declare
>> variable in the middle of a function, but the C spec doesn't (in C+ +
>> you
>> can, but these source files are not flagged as C++). I've created
>> patches for the few source files affected (using malloc() to
>> dynamically
>> create these arrays), but how should I submit these? Am I the first
>> person not using gcc under Unix?
>>
>> Thanks in advance for your input,
>>
>> Paul Gordon
>>
>> _______________________________________________
>> Bioc-devel at stat.math.ethz.ch mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>
>
> ---
> Byron Ellis (ellis at stat.harvard.edu)
> "Oook" -- The Librarian
More information about the Bioc-devel
mailing list