[ 
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.)

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]|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.)

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.)
> 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)

Reply via email to