From ripley at stats.ox.ac.uk  Sat Jun 17 07:40:53 2017
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Sat, 17 Jun 2017 06:40:53 +0100
Subject: [Rd] =?utf-8?q?R_history=3A_Why_=27L=3B_in_suffix_character_?=
 =?utf-8?b?4oCYTOKAmSBmb3IgaW50ZWdlciBjb25zdGFudHM/?=
In-Reply-To: <CAD6tx940Gxs2wjRJCXyE7J=caNFg3JsPk_wsCTJc2UxkbJ==+Q@mail.gmail.com>
References: <CAFDcVCRohsOKwzd2-8eFhD0zmR8vm-+t_5X=6FWjmL7uH5vzXA@mail.gmail.com>
 <5126a9af-49ac-8bd8-1ccc-03f5e13e2263@insa-toulouse.fr>
 <CANROs4dp_GKt0GMSX50R0h9TY7X=d87v_5pX6Tb0vg8_KmnmFQ@mail.gmail.com>
 <CAF8bMca+f_rV4qGBGNb68Atbm+Mr3t9Bv9EAPTLksBrRUyWcqg@mail.gmail.com>
 <24C37219-4592-49FB-9A27-5A7440774401@gmail.com>
 <CAF8bMcbTWdxUXEDtDA-CSmDmQg2TNPa5H-aLMBUzMEOcDPnUTQ@mail.gmail.com>
 <CAD6tx940Gxs2wjRJCXyE7J=caNFg3JsPk_wsCTJc2UxkbJ==+Q@mail.gmail.com>
Message-ID: <c4bdec95-f82b-0964-d2b7-e54ee8899fb5@stats.ox.ac.uk>

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 at 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 dalgaard <pdalgd at gmail.com> wrote:
>>>
>>> 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 at 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 <xie at yihui.name> 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 <
>> sokol at 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 at r-project.org mailing list
>>>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>>
>>>>        [[alternative HTML version deleted]]
>>>>
>>>> ______________________________________________
>>>> R-devel at 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.mes at cbs.dk  Priv: PDalgd at gmail.com
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>          [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Emeritus Professor of Applied Statistics, University of Oxford



[Rd] =?utf-8?q?R_history=3A_Why_=27L=3B_in_suffix_character_?= =?utf-8?b?4oCYTOKAmSBmb3IgaW50ZWdlciBjb25zdGFudHM/?=
Prof Brian Ripley