Repository navigation
Conversation
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Merging this PR will degrade performance by 13.28%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | density_sweep_single_slice[0.9] |
32.1 µs | 48.3 µs | -33.57% |
| ❌ | Simulation | sum_v2_i64 |
193.9 µs | 224.7 µs | -13.7% |
| ❌ | Simulation | sum_i64 |
194 µs | 224.4 µs | -13.56% |
| ❌ | WallTime | dict_canonicalize_gt_u8_neon[1000000] |
488.7 µs | 547.2 µs | -10.68% |
| ⚡ | WallTime | compare_u64_avx2 |
4.1 µs | 3.7 µs | +10.8% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing mk/standalone-array-plugins (e50242a) with develop (292cf6f)
Footnotes
-
503 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Summary
impl<V: VTable> ArrayPlugin for V.serialize/deserializefrom theVTabletrait. The vtable now only covers in-memory behaviour.ArrayPlugindirectly on its vtable type (impl ArrayPlugin for Primitive,impl ArrayPlugin for FoR, ...). There are no new plugin structs, andsession.arrays().register(X)is unchanged.plugin.rschild module of the file that holdsimpl VTable for X, e.g.primitive/vtable/plugin.rsoralp/array/plugin.rs. Because it is a child module, it can use the parent's private metadata types without visibility changes.Encodings that were never serializable lose the two methods and get no plugin: Filter, Slice, Shared, Interleave, ScalarFn, ForeignArray, TransposedBool, PiecewiseSequence and the test-harness vtables.
DecimalBytePartsPluginstruct is removed. Its v1/v2 serde now lives inimpl ArrayPlugin for DecimalByteParts, andinitializeregistersDecimalByteParts. Thebare_vtable_refuses_serdetest is deleted because its premise no longer holds.ALPPatchedPluginandBitPackedPatchedPluginare unchanged apart from delegating toArrayPlugin::deserialize(&ALP/&BitPacked, ...).Behaviour changes
PiecewiseSequenceis no longer registered inArraySession::default(), andTransposedBoolis no longer registered byvortex_fastlanes::initialize. Neither could serialize or deserialize before. Serializing them now fails with "not registered for serialization" instead of "does not support serialization", andserialization_is_not_supportedis updated to match.PythonVTablegets a minimalArrayPluginwhose serialize returnsOk(None)and whose deserialize bails, the same as before. This keepsvortex._lib.registry.registerworking.