You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Kyle Strand (Jira)" <ji...@apache.org> on 2020/09/14 17:15:00 UTC

[jira] [Updated] (ARROW-10002) [Rust] Trait-specialization requries nightly

     [ https://issues.apache.org/jira/browse/ARROW-10002?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kyle Strand updated ARROW-10002:
--------------------------------
    Description: 
Trait specialization is widely used in the Rust Arrow implementation. Uses can be identified by searching for instances of `default fn` in the codebase:

 
{code:java}
$> rg -c 'default fn' ../arrow/rust/
 ../arrow/rust/parquet/src/util/test_common/rand_gen.rs:1
 ../arrow/rust/parquet/src/column/writer.rs:2
 ../arrow/rust/parquet/src/encodings/encoding.rs:16
 ../arrow/rust/parquet/src/arrow/record_reader.rs:1
 ../arrow/rust/parquet/src/encodings/decoding.rs:13
 ../arrow/rust/parquet/src/file/statistics.rs:1
 ../arrow/rust/arrow/src/array/builder.rs:7
 ../arrow/rust/arrow/src/array/array.rs:3
 ../arrow/rust/arrow/src/array/equal.rs:3{code}
 

This feature requires Nightly Rust. Additionally, there is [no schedule for stabilization|https://github.com/rust-lang/rust/issues/31844#issue-135807289] , primarily due to an [unresolved soundness hole|[http://aturon.github.io/blog/2017/07/08/lifetime-dispatch]. (Note: there has been further discussion and ideas for resolving the soundness issue, but to my knowledge no definitive action.)|http://aturon.github.io/tech/2017/07/08/lifetime-dispatch/].]

If we can remove specialization from the Rust codebase, we will not be blocked on the Rust team's stabilization of that feature in order to move to stable Rust.

  was:
Trait specialization is widely used in the Rust Arrow implementation. Uses can be identified by searching for instances of `default fn` in the codebase:


{{ }}
{code:java}
$> rg -c 'default fn' ../arrow/rust/
 ../arrow/rust/parquet/src/util/test_common/rand_gen.rs:1
 ../arrow/rust/parquet/src/column/writer.rs:2
 ../arrow/rust/parquet/src/encodings/encoding.rs:16
 ../arrow/rust/parquet/src/arrow/record_reader.rs:1
 ../arrow/rust/parquet/src/encodings/decoding.rs:13
 ../arrow/rust/parquet/src/file/statistics.rs:1
 ../arrow/rust/arrow/src/array/builder.rs:7
 ../arrow/rust/arrow/src/array/array.rs:3
 ../arrow/rust/arrow/src/array/equal.rs:3{code}
 

This feature requires Nightly Rust. Additionally, there is [no schedule for stabilization|https://github.com/rust-lang/rust/issues/31844#issue-135807289] , primarily due to an [unresolved soundness hole|[http://aturon.github.io/blog/2017/07/08/lifetime-dispatch]. (Note: there has been further discussion and ideas for resolving the soundness issue, but to my knowledge no definitive action.)|http://aturon.github.io/tech/2017/07/08/lifetime-dispatch/].]

If we can remove specialization from the Rust codebase, we will not be blocked on the Rust team's stabilization of that feature in order to move to stable Rust.


> [Rust] Trait-specialization requries nightly
> --------------------------------------------
>
>                 Key: ARROW-10002
>                 URL: https://issues.apache.org/jira/browse/ARROW-10002
>             Project: Apache Arrow
>          Issue Type: Sub-task
>          Components: Rust
>            Reporter: Kyle Strand
>            Priority: Major
>
> Trait specialization is widely used in the Rust Arrow implementation. Uses can be identified by searching for instances of `default fn` in the codebase:
>  
> {code:java}
> $> rg -c 'default fn' ../arrow/rust/
>  ../arrow/rust/parquet/src/util/test_common/rand_gen.rs:1
>  ../arrow/rust/parquet/src/column/writer.rs:2
>  ../arrow/rust/parquet/src/encodings/encoding.rs:16
>  ../arrow/rust/parquet/src/arrow/record_reader.rs:1
>  ../arrow/rust/parquet/src/encodings/decoding.rs:13
>  ../arrow/rust/parquet/src/file/statistics.rs:1
>  ../arrow/rust/arrow/src/array/builder.rs:7
>  ../arrow/rust/arrow/src/array/array.rs:3
>  ../arrow/rust/arrow/src/array/equal.rs:3{code}
>  
> This feature requires Nightly Rust. Additionally, there is [no schedule for stabilization|https://github.com/rust-lang/rust/issues/31844#issue-135807289] , primarily due to an [unresolved soundness hole|[http://aturon.github.io/blog/2017/07/08/lifetime-dispatch]. (Note: there has been further discussion and ideas for resolving the soundness issue, but to my knowledge no definitive action.)|http://aturon.github.io/tech/2017/07/08/lifetime-dispatch/].]
> If we can remove specialization from the Rust codebase, we will not be blocked on the Rust team's stabilization of that feature in order to move to stable Rust.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)