Re: [Rd] R history: Why 'L; in suffix character ‘L’ for integer constants?
On 16/06/2017 20:37, Jim Hester wrote: The relevant sections of the C standard are http://c0x.coding-guidelines.com/5.2.4.2.1.html, which specifies that C There is more than one C standard, but that is none of them. ints are only guaranteed to be 16 bits, C long ints at least 32 bits in size, as Peter mentioned. Also http://c0x.coding-guidelines.com/6.4.4.1.html specifies l or L as the suffix for a long int constants. However R does define integers as `int` in it's source code, so use of L is not strictly correct if a compiler uses 16 bit int types. I guess this ambiguity is why the `int32_t` typedef exists. However, R checks that the compiler uses 32-bit ints in its build (configure and src/main/arithmetic.c) and documents that in R-admin . In any case, the C standard does not apply to the R language. Also, int32_t - postdates R (it was introduced in C99, a few OSes having it earlier) - is optional in the C99 and C11 standards (§7.20.1.1 in C11). On Fri, Jun 16, 2017 at 3:01 PM, William Dunlap via R-devel < r-devel@r-project.org> wrote: "Writing R Extensions" says "int": R storage mode C type FORTRAN type logical int* INTEGER integer int* INTEGER double double* DOUBLE PRECISION complex Rcomplex* DOUBLE COMPLEX character char** CHARACTER*255 raw unsigned char* none Bill Dunlap TIBCO Software wdunlap tibco.com On Fri, Jun 16, 2017 at 11:53 AM, peter dalgaardwrote: Wikipedia claims that C ints are still only guaranteed to be at least 16 bits, and longs are at least 32 bits. So no, R's integers are long. -pd On 16 Jun 2017, at 20:20 , William Dunlap via R-devel < r-devel@r-project.org> wrote: But R "integers" are C "ints", as opposed to S "integers", which are C "long ints". (I suppose R never had to run on ancient hardware with 16 bit ints.) Bill Dunlap TIBCO Software wdunlap tibco.com On Fri, Jun 16, 2017 at 10:47 AM, Yihui Xie wrote: Yeah, that was what I heard from our instructor when I was a graduate student: L stands for Long (integer). Regards, Yihui -- https://yihui.name On Fri, Jun 16, 2017 at 11:00 AM, Serguei Sokol < so...@insa-toulouse.fr wrote: Le 16/06/2017 à 17:54, Henrik Bengtsson a écrit : I'm just curious (no complaints), what was the reason for choosing the letter 'L' as a suffix for integer constants? Does it stand for something (literal?), is it because it visually stands out, ..., or no specific reason at all? My guess is that it is inherited form C "long integer" type (contrary to "short integer" or simply "integer") https://en.wikipedia.org/wiki/C_data_types __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel [[alternative HTML version deleted]] __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd@cbs.dk Priv: pda...@gmail.com [[alternative HTML version deleted]] __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel [[alternative HTML version deleted]] __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel -- Brian D. Ripley, rip...@stats.ox.ac.uk Emeritus Professor of Applied Statistics, University of Oxford __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] R history: Why 'L; in suffix character ‘L’ for integer constants?
The relevant sections of the C standard are http://c0x.coding-guidelines.com/5.2.4.2.1.html, which specifies that C ints are only guaranteed to be 16 bits, C long ints at least 32 bits in size, as Peter mentioned. Also http://c0x.coding-guidelines.com/6.4.4.1.html specifies l or L as the suffix for a long int constants. However R does define integers as `int` in it's source code, so use of L is not strictly correct if a compiler uses 16 bit int types. I guess this ambiguity is why the `int32_t` typedef exists. On Fri, Jun 16, 2017 at 3:01 PM, William Dunlap via R-devel < r-devel@r-project.org> wrote: > "Writing R Extensions" says "int": > > R storage mode C type FORTRAN type > logical int* INTEGER > integer int* INTEGER > double double* DOUBLE PRECISION > complex Rcomplex* DOUBLE COMPLEX > character char** CHARACTER*255 > raw unsigned char* none > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > On Fri, Jun 16, 2017 at 11:53 AM, peter dalgaardwrote: > > > > Wikipedia claims that C ints are still only guaranteed to be at least 16 > bits, and longs are at least 32 bits. So no, R's integers are long. > > > > -pd > > > > > On 16 Jun 2017, at 20:20 , William Dunlap via R-devel < > r-devel@r-project.org> wrote: > > > > > > But R "integers" are C "ints", as opposed to S "integers", which are C > > > "long ints". (I suppose R never had to run on ancient hardware with 16 > bit > > > ints.) > > > > > > Bill Dunlap > > > TIBCO Software > > > wdunlap tibco.com > > > > > > On Fri, Jun 16, 2017 at 10:47 AM, Yihui Xie wrote: > > > > > >> Yeah, that was what I heard from our instructor when I was a graduate > > >> student: L stands for Long (integer). > > >> > > >> Regards, > > >> Yihui > > >> -- > > >> https://yihui.name > > >> > > >> > > >> On Fri, Jun 16, 2017 at 11:00 AM, Serguei Sokol < > so...@insa-toulouse.fr > > > > >> wrote: > > >>> Le 16/06/2017 à 17:54, Henrik Bengtsson a écrit : > > > > I'm just curious (no complaints), what was the reason for choosing > the > > letter 'L' as a suffix for integer constants? Does it stand for > > something (literal?), is it because it visually stands out, ..., or > no > > specific reason at all? > > >>> > > >>> My guess is that it is inherited form C "long integer" type (contrary > to > > >>> "short integer" or simply "integer") > > >>> https://en.wikipedia.org/wiki/C_data_types > > >> > > >> __ > > >> R-devel@r-project.org mailing list > > >> https://stat.ethz.ch/mailman/listinfo/r-devel > > > > > > [[alternative HTML version deleted]] > > > > > > __ > > > R-devel@r-project.org mailing list > > > https://stat.ethz.ch/mailman/listinfo/r-devel > > > > -- > > Peter Dalgaard, Professor, > > Center for Statistics, Copenhagen Business School > > Solbjerg Plads 3, 2000 Frederiksberg, Denmark > > Phone: (+45)38153501 > > Office: A 4.23 > > Email: pd@cbs.dk Priv: pda...@gmail.com > > > > > > > > > > > > > > > > > > > > [[alternative HTML version deleted]] > > __ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > [[alternative HTML version deleted]] __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] R history: Why 'L; in suffix character ‘L’ for integer constants?
"Writing R Extensions" says "int": R storage mode C type FORTRAN type logical int* INTEGER integer int* INTEGER double double* DOUBLE PRECISION complex Rcomplex* DOUBLE COMPLEX character char** CHARACTER*255 raw unsigned char* none Bill Dunlap TIBCO Software wdunlap tibco.com On Fri, Jun 16, 2017 at 11:53 AM, peter dalgaardwrote: > > Wikipedia claims that C ints are still only guaranteed to be at least 16 bits, and longs are at least 32 bits. So no, R's integers are long. > > -pd > > > On 16 Jun 2017, at 20:20 , William Dunlap via R-devel < r-devel@r-project.org> wrote: > > > > But R "integers" are C "ints", as opposed to S "integers", which are C > > "long ints". (I suppose R never had to run on ancient hardware with 16 bit > > ints.) > > > > Bill Dunlap > > TIBCO Software > > wdunlap tibco.com > > > > On Fri, Jun 16, 2017 at 10:47 AM, Yihui Xie wrote: > > > >> Yeah, that was what I heard from our instructor when I was a graduate > >> student: L stands for Long (integer). > >> > >> Regards, > >> Yihui > >> -- > >> https://yihui.name > >> > >> > >> On Fri, Jun 16, 2017 at 11:00 AM, Serguei Sokol > >> wrote: > >>> Le 16/06/2017 à 17:54, Henrik Bengtsson a écrit : > > I'm just curious (no complaints), what was the reason for choosing the > letter 'L' as a suffix for integer constants? Does it stand for > something (literal?), is it because it visually stands out, ..., or no > specific reason at all? > >>> > >>> My guess is that it is inherited form C "long integer" type (contrary to > >>> "short integer" or simply "integer") > >>> https://en.wikipedia.org/wiki/C_data_types > >> > >> __ > >> R-devel@r-project.org mailing list > >> https://stat.ethz.ch/mailman/listinfo/r-devel > > > > [[alternative HTML version deleted]] > > > > __ > > R-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > -- > Peter Dalgaard, Professor, > Center for Statistics, Copenhagen Business School > Solbjerg Plads 3, 2000 Frederiksberg, Denmark > Phone: (+45)38153501 > Office: A 4.23 > Email: pd@cbs.dk Priv: pda...@gmail.com > > > > > > > > > [[alternative HTML version deleted]] __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] R history: Why 'L; in suffix character ‘L’ for integer constants?
Wikipedia claims that C ints are still only guaranteed to be at least 16 bits, and longs are at least 32 bits. So no, R's integers are long. -pd > On 16 Jun 2017, at 20:20 , William Dunlap via R-devel> wrote: > > But R "integers" are C "ints", as opposed to S "integers", which are C > "long ints". (I suppose R never had to run on ancient hardware with 16 bit > ints.) > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > On Fri, Jun 16, 2017 at 10:47 AM, Yihui Xie wrote: > >> Yeah, that was what I heard from our instructor when I was a graduate >> student: L stands for Long (integer). >> >> Regards, >> Yihui >> -- >> https://yihui.name >> >> >> On Fri, Jun 16, 2017 at 11:00 AM, Serguei Sokol >> wrote: >>> Le 16/06/2017 à 17:54, Henrik Bengtsson a écrit : I'm just curious (no complaints), what was the reason for choosing the letter 'L' as a suffix for integer constants? Does it stand for something (literal?), is it because it visually stands out, ..., or no specific reason at all? >>> >>> My guess is that it is inherited form C "long integer" type (contrary to >>> "short integer" or simply "integer") >>> https://en.wikipedia.org/wiki/C_data_types >> >> __ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel > > [[alternative HTML version deleted]] > > __ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd@cbs.dk Priv: pda...@gmail.com __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] R history: Why 'L; in suffix character ‘L’ for integer constants?
But R "integers" are C "ints", as opposed to S "integers", which are C "long ints". (I suppose R never had to run on ancient hardware with 16 bit ints.) Bill Dunlap TIBCO Software wdunlap tibco.com On Fri, Jun 16, 2017 at 10:47 AM, Yihui Xiewrote: > Yeah, that was what I heard from our instructor when I was a graduate > student: L stands for Long (integer). > > Regards, > Yihui > -- > https://yihui.name > > > On Fri, Jun 16, 2017 at 11:00 AM, Serguei Sokol > wrote: > > Le 16/06/2017 à 17:54, Henrik Bengtsson a écrit : > >> > >> I'm just curious (no complaints), what was the reason for choosing the > >> letter 'L' as a suffix for integer constants? Does it stand for > >> something (literal?), is it because it visually stands out, ..., or no > >> specific reason at all? > > > > My guess is that it is inherited form C "long integer" type (contrary to > > "short integer" or simply "integer") > > https://en.wikipedia.org/wiki/C_data_types > > __ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel [[alternative HTML version deleted]] __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] R history: Why 'L; in suffix character ‘L’ for integer constants?
Yeah, that was what I heard from our instructor when I was a graduate student: L stands for Long (integer). Regards, Yihui -- https://yihui.name On Fri, Jun 16, 2017 at 11:00 AM, Serguei Sokolwrote: > Le 16/06/2017 à 17:54, Henrik Bengtsson a écrit : >> >> I'm just curious (no complaints), what was the reason for choosing the >> letter 'L' as a suffix for integer constants? Does it stand for >> something (literal?), is it because it visually stands out, ..., or no >> specific reason at all? > > My guess is that it is inherited form C "long integer" type (contrary to > "short integer" or simply "integer") > https://en.wikipedia.org/wiki/C_data_types __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] R history: Why 'L; in suffix character ‘L’ for integer constants?
Le 16/06/2017 à 17:54, Henrik Bengtsson a écrit : I'm just curious (no complaints), what was the reason for choosing the letter 'L' as a suffix for integer constants? Does it stand for something (literal?), is it because it visually stands out, ..., or no specific reason at all? My guess is that it is inherited form C "long integer" type (contrary to "short integer" or simply "integer") https://en.wikipedia.org/wiki/C_data_types __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel