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