This is not an issue that warrants attention at this time.

On Wed, Jun 8, 2016 at 9:17 PM, Henry Rich <[email protected]> wrote:

> I'll try.  I can handle the J end but I don't know the C standard library
> at all.  I can go through the documentation.  Is the middle of next week
> soon enough?
>
> Henry
>
>
> On 6/8/2016 6:59 PM, bill lam wrote:
>
>> Henry,
>>
>> Would you fix it if it is broken?  Thanks.
>> On Jun 9, 2016 12:25 AM, "Henry Rich" <[email protected]> wrote:
>>
>> The way to create a testcase is to create a locale with a very large
>>> number, by
>>>
>>> a_2147483648_ =: 5
>>>
>>> locale numbering will start after the largest number that has been used.
>>>
>>> Henry
>>>
>>> On 6/8/2016 8:54 AM, bill lam wrote:
>>>
>>> I think using strtoI should be harmless, but I am not sure if u will
>>>> exceed
>>>> range of 32-bit integer. And how to design a test script to show strtol
>>>> will fail while strtoI will pass.
>>>>
>>>> PS. I realized it is nearly impossible to distinguish strtol (last
>>>> character is el) and strtoI (last is capital i) on android gmail app.
>>>> On Jun 8, 2016 8:36 PM, "Raul Miller" <[email protected]> wrote:
>>>>
>>>> Oh!
>>>>
>>>>> There is also a microsoft supplied definition for strtoI, I was
>>>>> similarly lazy and forgot to look in the source code to see if it
>>>>> redefined the name (which it looks like it does).
>>>>>
>>>>> So one part of my objection (that strtoI would cause problems which
>>>>> currently do not happen) should not be the case.
>>>>>
>>>>> But the other issue - that it does not seem like strtoI would fix
>>>>> anything (would not make J perform in a fashion which is closer to
>>>>> what was prescribed by the dictionary), either - might still be an
>>>>> issue.
>>>>>
>>>>> Do you disagree?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> --
>>>>> Raul
>>>>>
>>>>>
>>>>> On Wed, Jun 8, 2016 at 1:12 AM, bill lam <[email protected]> wrote:
>>>>>
>>>>> I am sorry that I was too lazy to include the definition of
>>>>>> strtoI for discussion
>>>>>>
>>>>>> #if SY_64
>>>>>> #define IMAX            9223372036854775807L
>>>>>> #define FMTI            "%lli"
>>>>>> #define FMTI02          "%02lli"
>>>>>> #define FMTI04          "%04lli"
>>>>>> #define FMTI05          "%05lli"
>>>>>>
>>>>>> #if SY_WIN32
>>>>>> #define strtoI         _strtoi64
>>>>>> #else
>>>>>> #define strtoI          strtoll
>>>>>> #endif
>>>>>>
>>>>>> #else
>>>>>> #define IMAX            2147483647L
>>>>>> #define FMTI            "%li"
>>>>>> #define FMTI02          "%02li"
>>>>>> #define FMTI04          "%04li"
>>>>>> #define FMTI05          "%05li"
>>>>>> #define strtoI          strtol
>>>>>> #endif
>>>>>>
>>>>>> For *nix, strtol and strtoll are almost equivalent.
>>>>>>
>>>>>> Вт, 07 июн 2016, Raul Miller написал(а):
>>>>>>
>>>>>> I think strtol (long result) should be better than strtoI (int
>>>>>>> result).
>>>>>>>
>>>>>>> The distinction should only matter when a numeric local name exceeds
>>>>>>> the value which can be stored in a 32 bit integer. That's a rare
>>>>>>> problem and it's probably more important that the behavior be correct
>>>>>>> for that case on 64 bit systems than on 32 bit systems. Worse,
>>>>>>> changing to strtoI would not actually fix any failure case, but it
>>>>>>> would introduce additional failure cases.
>>>>>>>
>>>>>>> That said, it might be worthwhile investigating a solution for the
>>>>>>> resulting problem. I guess you would first want to cocreate/coerase
>>>>>>> about 5 billion times to see if that works. And, if it fails, work
>>>>>>> from there.
>>>>>>>
>>>>>>> One possible failure mode would be overlapping locales. For example,
>>>>>>> locale 4294967296 on a 32 bit system might be the same as locale 0.
>>>>>>> Other failure modes (crashes or whatever) might also be possible?
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> --
>>>>>>> Raul
>>>>>>>
>>>>>>> On Tue, Jun 7, 2016 at 9:00 PM, bill lam <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>> There is still one artefact of strtol in sl.c
>>>>>>>>
>>>>>>>> A jtstfind(J jt,B b,I n,C*u){I old;L*v;
>>>>>>>>    if(!n){n=4; u="base";}
>>>>>>>>    if('9'>=*u)R stfindnum(b,strtol(u,NULL,10));
>>>>>>>>    else{
>>>>>>>>     old=jt->tbase+jt->ttop; v=probe(nfs(n,u),jt->stloc);
>>>>>>>> tpop(old);
>>>>>>>>     R v?v->val:b?stcreate(0,jt->locsize[0],n,u):0;
>>>>>>>> }}   /* find the symbol table for locale u, create if b and
>>>>>>>> non-existent */
>>>>>>>>
>>>>>>>> Is it safe to use strtol here?
>>>>>>>>
>>>>>>>> Is it ok to change to strtoI?
>>>>>>>>
>>>>>>>> * strtol returns 32-bit integers under 32-bit windows.
>>>>>>>>
>>>>>>>> --
>>>>>>>> regards,
>>>>>>>> ====================================================
>>>>>>>> GPG key 1024D/4434BAB3 2008-08-24
>>>>>>>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>>>>>>>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>>>>>>>>
>>>>>>>> ----------------------------------------------------------------------
>>>>>>>> For information about J forums see
>>>>>>>>
>>>>>>>> http://www.jsoftware.com/forums.htm
>>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>>>
>>>>>>> For information about J forums see
>>>>>>> http://www.jsoftware.com/forums.htm
>>>>>>>
>>>>>>> --
>>>>>> regards,
>>>>>> ====================================================
>>>>>> GPG key 1024D/4434BAB3 2008-08-24
>>>>>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>>>>>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>>>>>> ----------------------------------------------------------------------
>>>>>> For information about J forums see
>>>>>> http://www.jsoftware.com/forums.htm
>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>>
>>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>
>>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to