git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RUST] [DISCUSS] Changing type of array lengths


Thanks All,

I didn't hear any strong opinions against this change so the PR is here:
https://github.com/apache/arrow/pull/3142

Thanks,
Paddy
________________________________
From: Marco Neumann <marco@xxxxxxxxxxxxxx.INVALID>
Sent: Friday, December 7, 2018 12:35 PM
To: dev@xxxxxxxxxxxxxxxx
Subject: Re: [RUST] [DISCUSS] Changing type of array lengths

On windows it depends if it's a 32 or 64 bit binary, like on every other system as well.

usize is usually used by Rust containers for indexing (see for example Vec in the standard library) and I found it personally very annoying if libraries break that rule, because in Rust you have to be explicit about integer conversions. You don't have implicit down or up sizings like in C/C++. So you cast all back and forth 100 of times just for a single library you use.

On December 7, 2018 6:18:42 PM GMT+01:00, Wes McKinney <wesmckinn@xxxxxxxxx> wrote:
>What would be the argument for using usize over i64/u64? Is usize 64
>bits in Rust when compiling on Windows?
>On Fri, Dec 7, 2018 at 9:48 AM Andy Grove <andygrove73@xxxxxxxxx>
>wrote:
>>
>> I am in favor of using usize.
>>
>> Thanks.
>>
>> On Thu, Dec 6, 2018 at 7:20 PM paddy horan <paddyhoran@xxxxxxxxxxx>
>wrote:
>>
>> > All,
>> >
>> > As part of the PR for ARROW-3347 there was a discussion regarding
>the type
>> > that should be used for anything that measures the length of an
>array,
>> > i.e.  len and capacity.
>> >
>> > The result of this discussion was that the Rust implementation
>should
>> > switch to using usize as the type for representing len and
>capacity.  This
>> > would mean supporting a way to split larger arrays into smaller
>array when
>> > passing data from one implementation to another.  The exact size of
>these
>> > smaller arrays would depend on the implementation you are passing
>data to.
>> > C++ supports arrays up to size i64, but **all** implementations
>support
>> > lengths up to i32 as specified by the spec.  The full discussion is
>here:
>> > https://github.com/apache/arrow/pull/2858
>> >
>> > This is not a major change so I’ll push it to 0.13 but I wanted to
>open up
>> > the discussion before making the change, the previous debate was
>hidden in
>> > a PR.  In particular, Andy and Chao are you in favor of this
>change?
>> >
>> > Paddy
>> >