Skip to content

[Rust] Trait-specialization requires nightly #17346

@asfimport

Description

@asfimport

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 , primarily due to an unresolved soundness hole. (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.

Reporter: Kyle Strand
Assignee: Jorge Leitão / @jorgecarleitao

PRs and other links:

Note: This issue was originally created as ARROW-10002. Please see the migration documentation for further details.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions