Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
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 , 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.