[
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:
{{ $> 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}}
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:
```
$> 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
```
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:
> {{ $> 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}}
> 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)