diff --git a/databases/py-pylance/Makefile b/databases/py-pylance/Makefile index 6bed6aa00ef4..42a6b2f403d4 100644 --- a/databases/py-pylance/Makefile +++ b/databases/py-pylance/Makefile @@ -1,841 +1,844 @@ PORTNAME= pylance DISTVERSIONPREFIX= v DISTVERSION= 11.0.0 PORTREVISION= 1 CATEGORIES= databases python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Python wrapper for Lance columnar format WWW= https://lance.org \ https://github.com/lancedb/lance LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE BROKEN_aarch64= compilation fails: cannot find module or crate `aarch64`, see https://github.com/lancedb/lancedb/issues/3764 BUILD_DEPENDS= ${LOCALBASE}/bin/protoc:devel/protobuf \ ${PYTHON_PKGNAMEPREFIX}maturin>=1.4:devel/py-maturin@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lance-namespace>=0.8.5:databases/py-lance-namespace@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}numpy>=1.22:math/py-numpy@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pyarrow>=14:databases/py-pyarrow@${PY_FLAVOR} + ${PYTHON_PKGNAMEPREFIX}pyarrow>=14:databases/py-pyarrow@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}duckdb>=1.5.0:databases/py-duckdb@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ml-dtypes>=0:math/py-ml-dtypes@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pillow>0:graphics/py-pillow@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}polars>=0:misc/py-polars@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pytest-xdist>=0:devel/py-pytest-xdist@${PY_FLAVOR} + ${PYTHON_PKGNAMEPREFIX}pytest-xdist>=0:devel/py-pytest-xdist@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}tqdm>0:misc/py-tqdm@${PY_FLAVOR} USES= cargo python USE_PYTHON= pep517 concurrent autoplist pytest TEST_ENV= ${MAKE_ENV} \ PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} TEST_WRKSRC= ${WRKSRC}/${WRKSRC_SUBDIR}/tests TEST_ARGS= --disable-plugin-autoload \ -m 'not slow and not integration and not recurring' \ -k 'not lindera and not test_tracing' \ --deselect python/tests/test_dataset.py::test_polar_scan \ --deselect python/tests/test_filter.py::test_simple_predicates \ --deselect python/tests/test_filter.py::test_filter_on_column_beside_struct_with_extension_type \ --deselect python/tests/test_filter.py::test_filter_on_column_beside_root_extension_type \ --deselect python/tests/test_integration.py::test_duckdb_pushdown_extension_types \ --deselect python/tests/test_log.py::test_lance_log_file \ --deselect python/tests/test_log.py::test_lance_log_file_with_directory_creation \ --deselect python/tests/test_log.py::test_lance_log_filters_trace_event_targets \ --deselect python/tests/test_log.py::test_lance_log_file_invalid_path \ --deselect python/tests/test_log.py::test_timestamp_precision \ --deselect python/tests/test_vector_index.py::test_create_index_progress_callback_error_before_completion_propagates USE_GITHUB= yes GH_ACCOUNT= lancedb GH_PROJECT= lance WRKSRC_SUBDIR= python CARGO_BUILD= no CARGO_INSTALL= no CARGO_TEST= no CARGO_CRATES= adler2-2.0.1 \ aes-0.8.4 \ ahash-0.8.12 \ aho-corasick-1.1.4 \ alloc-no-stdlib-2.0.4 \ alloc-stdlib-0.2.2 \ allocator-api2-0.2.21 \ android_system_properties-0.1.5 \ anstream-1.0.0 \ anstyle-1.0.14 \ anstyle-parse-1.0.0 \ anstyle-query-1.1.5 \ anstyle-wincon-3.0.11 \ anyhow-1.0.104 \ approx-0.5.1 \ arc-swap-1.9.2 \ arrayref-0.3.9 \ arrayvec-0.7.6 \ arrow-58.4.0 \ arrow-arith-58.4.0 \ arrow-array-58.4.0 \ arrow-buffer-58.4.0 \ arrow-cast-58.4.0 \ arrow-csv-58.4.0 \ arrow-data-58.4.0 \ arrow-ipc-58.4.0 \ arrow-json-58.4.0 \ arrow-ord-58.4.0 \ arrow-pyarrow-58.4.0 \ arrow-row-58.4.0 \ arrow-schema-58.4.0 \ arrow-select-58.4.0 \ arrow-string-58.4.0 \ async-channel-2.5.0 \ async-compression-0.4.42 \ async-ffi-0.5.0 \ async-lock-3.4.2 \ async-recursion-1.1.1 \ async-trait-0.1.91 \ async_cell-0.2.3 \ atoi-2.0.0 \ atomic-waker-1.1.2 \ autocfg-1.5.1 \ aws-config-1.8.14 \ aws-credential-types-1.2.13 \ aws-lc-rs-1.17.0 \ aws-lc-sys-0.41.0 \ aws-runtime-1.7.1 \ aws-sdk-dynamodb-1.107.0 \ aws-sdk-sso-1.95.0 \ aws-sdk-ssooidc-1.97.0 \ aws-sdk-sts-1.99.0 \ aws-sigv4-1.4.1 \ aws-smithy-async-1.2.13 \ aws-smithy-http-0.63.5 \ aws-smithy-http-client-1.1.11 \ aws-smithy-json-0.62.4 \ aws-smithy-observability-0.2.5 \ aws-smithy-query-0.60.14 \ aws-smithy-runtime-1.10.2 \ aws-smithy-runtime-api-1.11.5 \ aws-smithy-types-1.4.5 \ aws-smithy-xml-0.60.14 \ aws-types-1.3.13 \ axum-0.7.9 \ axum-core-0.4.5 \ backon-1.6.0 \ base64-0.22.1 \ base64-0.23.0 \ base64-simd-0.8.0 \ base64ct-1.8.3 \ bigdecimal-0.4.10 \ bitflags-1.3.2 \ bitflags-2.13.0 \ bitvec-1.1.1 \ blake2-0.10.6 \ blake3-1.8.5 \ block-buffer-0.10.4 \ block-buffer-0.12.1 \ block-padding-0.3.3 \ brotli-8.0.4 \ brotli-decompressor-5.0.3 \ bs58-0.5.1 \ bstr-1.12.1 \ bumpalo-3.20.3 \ bytecheck-0.8.2 \ bytecheck_derive-0.8.2 \ bytecount-0.6.9 \ bytemuck-1.25.2 \ bytemuck_derive-1.10.2 \ byteorder-1.5.0 \ bytes-1.12.1 \ bytes-utils-0.1.4 \ cbc-0.1.2 \ cc-1.3.0 \ cedarwood-0.5.0 \ cfg-if-0.1.10 \ cfg-if-1.0.4 \ cfg_aliases-0.2.1 \ chacha20-0.10.0 \ chrono-0.4.45 \ chrono-tz-0.10.4 \ cipher-0.4.4 \ clap-4.6.4 \ clap_builder-4.6.2 \ clap_derive-4.6.4 \ clap_lex-1.1.0 \ cmake-0.1.58 \ cmov-0.5.4 \ colorchoice-1.0.5 \ colored-3.1.1 \ combine-4.6.7 \ comfy-table-7.2.2 \ compression-codecs-0.4.38 \ compression-core-0.4.32 \ concurrent-queue-2.5.0 \ const-oid-0.9.6 \ const-oid-0.10.2 \ const-random-0.1.18 \ const-random-macro-0.1.16 \ const-str-1.1.0 \ const_panic-0.2.15 \ constant_time_eq-0.4.2 \ core-foundation-0.9.4 \ core-foundation-0.10.1 \ core-foundation-sys-0.8.7 \ countio-0.3.0 \ cpufeatures-0.2.17 \ cpufeatures-0.3.0 \ crc-fast-1.10.0 \ crc32fast-1.5.0 \ crossbeam-channel-0.5.15 \ crossbeam-deque-0.8.6 \ crossbeam-epoch-0.9.20 \ crossbeam-queue-0.3.13 \ crossbeam-skiplist-0.1.3 \ crossbeam-utils-0.8.21 \ crunchy-0.2.4 \ crypto-common-0.1.7 \ crypto-common-0.2.2 \ csv-1.4.0 \ csv-core-0.1.13 \ ctor-0.6.3 \ ctor-1.0.7 \ ctor-proc-macro-0.0.7 \ ctutils-0.4.2 \ daachorse-2.1.1 \ darling-0.20.11 \ darling-0.23.0 \ darling_core-0.20.11 \ darling_core-0.23.0 \ darling_macro-0.20.11 \ darling_macro-0.23.0 \ dashmap-6.2.1 \ datafusion-54.1.0 \ datafusion-catalog-54.1.0 \ datafusion-catalog-listing-54.1.0 \ datafusion-common-54.1.0 \ datafusion-common-runtime-54.1.0 \ datafusion-datasource-54.1.0 \ datafusion-datasource-arrow-54.1.0 \ datafusion-datasource-csv-54.1.0 \ datafusion-datasource-json-54.1.0 \ datafusion-datasource-parquet-54.1.0 \ datafusion-doc-54.1.0 \ datafusion-execution-54.1.0 \ datafusion-expr-54.1.0 \ datafusion-expr-common-54.1.0 \ datafusion-ffi-54.1.0 \ datafusion-functions-54.1.0 \ datafusion-functions-aggregate-54.1.0 \ datafusion-functions-aggregate-common-54.1.0 \ datafusion-functions-nested-54.1.0 \ datafusion-functions-table-54.1.0 \ datafusion-functions-window-54.1.0 \ datafusion-functions-window-common-54.1.0 \ datafusion-macros-54.1.0 \ datafusion-optimizer-54.1.0 \ datafusion-physical-expr-54.1.0 \ datafusion-physical-expr-adapter-54.1.0 \ datafusion-physical-expr-common-54.1.0 \ datafusion-physical-optimizer-54.1.0 \ datafusion-physical-plan-54.1.0 \ datafusion-proto-54.1.0 \ datafusion-proto-common-54.1.0 \ datafusion-pruning-54.1.0 \ datafusion-session-54.1.0 \ datafusion-sql-54.1.0 \ datafusion-substrait-54.1.0 \ der-0.7.10 \ deranged-0.5.8 \ derive_builder-0.20.2 \ derive_builder_core-0.20.2 \ derive_builder_macro-0.20.2 \ digest-0.10.7 \ digest-0.11.3 \ dirs-6.0.0 \ dirs-sys-0.5.0 \ displaydoc-0.2.6 \ dlv-list-0.5.2 \ dtor-0.1.1 \ dtor-proc-macro-0.0.6 \ dunce-1.0.5 \ dyn-clone-1.0.20 \ earcutr-0.4.3 \ either-1.16.0 \ encoding_rs-0.8.35 \ encoding_rs_io-0.1.7 \ endian-type-0.1.2 \ env_filter-2.0.0 \ env_logger-0.11.11 \ equivalent-1.0.2 \ errno-0.3.14 \ ethnum-1.5.3 \ event-listener-5.4.2 \ event-listener-strategy-0.5.4 \ fast-float2-0.2.3 \ fastrand-2.4.1 \ find-msvc-tools-0.1.9 \ fixedbitset-0.5.7 \ flatbuffers-25.12.19 \ flate2-1.1.9 \ float_next_after-1.0.0 \ fnv-1.0.7 \ foldhash-0.1.5 \ foldhash-0.2.0 \ form_urlencoded-1.2.2 \ frostem-1.20260804.0 \ fs_extra-1.3.0 \ fst-0.4.7 \ funty-2.0.0 \ futures-0.3.32 \ futures-channel-0.3.32 \ futures-core-0.3.32 \ futures-executor-0.3.32 \ futures-io-0.3.32 \ futures-macro-0.3.32 \ futures-sink-0.3.32 \ futures-task-0.3.32 \ futures-util-0.3.32 \ gearhash-0.1.3 \ generator-0.8.9 \ generic-array-0.14.7 \ geo-0.31.0 \ geo-traits-0.3.0 \ geo-types-0.7.19 \ geoarrow-array-0.8.0 \ geoarrow-expr-geo-0.8.0 \ geoarrow-schema-0.8.0 \ geodatafusion-0.5.0 \ geographiclib-rs-0.2.7 \ geohash-0.13.2 \ getrandom-0.2.17 \ getrandom-0.3.4 \ getrandom-0.4.3 \ git-version-0.3.9 \ git-version-macro-0.3.9 \ glob-0.3.3 \ gloo-timers-0.3.0 \ goosefs-sdk-0.1.8 \ h2-0.4.16 \ half-2.7.1 \ hash32-0.3.1 \ hashbrown-0.12.3 \ hashbrown-0.14.5 \ hashbrown-0.15.5 \ hashbrown-0.16.1 \ hashbrown-0.17.1 \ heapify-0.2.0 \ heapless-0.8.0 \ heck-0.5.0 \ hermit-abi-0.5.2 \ hex-0.4.3 \ hf-xet-1.5.2 \ hmac-0.12.1 \ hmac-0.13.0 \ hostname-0.4.2 \ http-0.2.12 \ http-1.4.2 \ http-body-0.4.6 \ http-body-1.0.1 \ http-body-util-0.1.3 \ httparse-1.10.1 \ httpdate-1.0.3 \ humantime-2.4.0 \ hybrid-array-0.4.12 \ hyper-1.10.1 \ hyper-rustls-0.27.9 \ hyper-timeout-0.5.2 \ hyper-util-0.1.20 \ hyperloglogplus-0.4.1 \ i_float-1.15.0 \ i_key_sort-0.6.0 \ i_overlay-4.0.7 \ i_shape-1.14.0 \ i_tree-0.16.0 \ iana-time-zone-0.1.65 \ iana-time-zone-haiku-0.1.2 \ icu_collections-2.2.0 \ icu_locale-2.2.0 \ icu_locale_core-2.2.0 \ icu_locale_data-2.2.0 \ icu_normalizer-2.2.0 \ icu_normalizer_data-2.2.0 \ icu_properties-2.2.0 \ icu_properties_data-2.2.0 \ icu_provider-2.2.0 \ icu_segmenter-2.2.0 \ icu_segmenter_data-2.2.0 \ ident_case-1.0.1 \ idna-1.1.0 \ idna_adapter-1.2.2 \ indexmap-1.9.3 \ indexmap-2.14.0 \ inout-0.1.4 \ integer-encoding-3.0.4 \ io-uring-0.7.13 \ ipnet-2.12.0 \ is_terminal_polyfill-1.70.2 \ itertools-0.11.0 \ itertools-0.14.0 \ itoa-1.0.18 \ jieba-macros-0.10.2 \ jieba-rs-0.10.3 \ jiff-0.2.28 \ jiff-static-0.2.28 \ jiff-tzdb-0.1.6 \ jiff-tzdb-platform-0.1.3 \ jni-0.22.4 \ jni-macros-0.22.4 \ jni-sys-0.4.1 \ jni-sys-macros-0.4.1 \ jobserver-0.1.34 \ js-sys-0.3.102 \ jsonb-0.5.6 \ kanaria-0.2.0 \ konst-0.4.3 \ konst_proc_macros-0.4.1 \ lance-namespace-reqwest-client-0.11.0 \ lazy_static-1.5.0 \ lexical-core-1.0.6 \ lexical-parse-float-1.0.6 \ lexical-parse-integer-1.0.6 \ lexical-util-1.0.7 \ lexical-write-float-1.0.6 \ lexical-write-integer-1.0.6 \ libc-0.2.189 \ libloading-0.9.0 \ libm-0.2.16 \ libredox-0.1.17 \ libsais-rs-0.2.0 \ lindera-3.0.7 \ lindera-dictionary-3.0.7 \ link-section-0.18.2 \ linktime-proc-macro-0.2.0 \ linux-raw-sys-0.12.1 \ litemap-0.8.2 \ lock_api-0.4.14 \ log-0.4.33 \ loom-0.7.2 \ lru-0.12.5 \ lru-slab-0.1.2 \ lz4-1.28.1 \ lz4-sys-1.11.1+lz4-1.10.0 \ lz4_flex-0.13.1 \ matchers-0.2.0 \ matchit-0.7.3 \ matrixmultiply-0.3.10 \ md-5-0.10.6 \ md-5-0.11.0 \ mea-0.6.4 \ memchr-2.8.2 \ memmap2-0.9.11 \ metrics-0.24.6 \ metrics-util-0.19.1 \ mime-0.3.17 \ mime_guess-2.0.5 \ miniz_oxide-0.8.9 \ mio-1.2.1 \ moka-0.12.15 \ more-asserts-0.3.1 \ multimap-0.10.1 \ munge-0.4.7 \ munge_macro-0.4.7 \ ndarray-0.16.1 \ nibble_vec-0.1.0 \ nom-8.0.0 \ ntapi-0.4.3 \ nu-ansi-term-0.50.3 \ num-bigint-0.4.6 \ num-bigint-dig-0.8.6 \ num-complex-0.4.6 \ num-conv-0.2.2 \ num-integer-0.1.46 \ num-iter-0.1.45 \ num-traits-0.2.19 \ num_cpus-1.17.0 \ num_enum-0.7.6 \ num_enum_derive-0.7.6 \ objc2-core-foundation-0.3.2 \ objc2-io-kit-0.3.2 \ objc2-system-configuration-0.3.2 \ object_store-0.13.2 \ object_store_opendal-0.58.0 \ once_cell-1.21.4 \ once_cell_polyfill-1.70.2 \ oneshot-0.1.13 \ opendal-0.58.1 \ opendal-core-0.58.1 \ opendal-http-transport-reqwest-0.58.1 \ opendal-layer-concurrent-limit-0.58.1 \ opendal-layer-logging-0.58.1 \ opendal-layer-retry-0.58.1 \ opendal-layer-timeout-0.58.1 \ opendal-service-azblob-0.58.1 \ opendal-service-azdls-0.58.1 \ opendal-service-azure-common-0.58.1 \ opendal-service-cos-0.58.1 \ opendal-service-gcs-0.58.1 \ opendal-service-goosefs-0.58.1 \ opendal-service-hf-0.58.1 \ opendal-service-oss-0.58.1 \ opendal-service-s3-0.58.1 \ opendal-service-tos-0.58.1 \ openssl-probe-0.2.1 \ option-ext-0.2.0 \ ordered-float-2.10.1 \ ordered-float-4.6.0 \ ordered-float-5.3.0 \ ordered-multimap-0.7.3 \ os_str_bytes-6.6.1 \ outref-0.5.2 \ parking-2.2.1 \ parking_lot-0.12.5 \ parking_lot_core-0.9.12 \ parquet-58.4.0 \ paste-1.0.15 \ path_abs-0.5.1 \ pbjson-0.8.0 \ pbjson-build-0.8.0 \ pbjson-types-0.8.0 \ pbkdf2-0.12.2 \ pem-3.0.6 \ pem-rfc7468-0.7.0 \ percent-encoding-2.3.2 \ permutation-0.4.1 \ petgraph-0.8.3 \ phf-0.12.1 \ phf-0.13.1 \ phf_codegen-0.13.1 \ phf_generator-0.13.1 \ phf_shared-0.12.1 \ phf_shared-0.13.1 \ pin-project-1.1.13 \ pin-project-internal-1.1.13 \ pin-project-lite-0.2.17 \ pin-utils-0.1.0 \ pkcs1-0.7.5 \ pkcs5-0.7.1 \ pkcs8-0.10.2 \ pkg-config-0.3.33 \ portable-atomic-1.13.1 \ portable-atomic-util-0.2.7 \ potential_utf-0.1.5 \ powerfmt-0.2.0 \ ppv-lite86-0.2.21 \ prettyplease-0.2.37 \ proc-macro-crate-3.5.0 \ proc-macro2-1.0.106 \ prost-0.14.4 \ prost-build-0.14.4 \ prost-derive-0.14.4 \ prost-types-0.14.4 \ ptr_meta-0.3.1 \ ptr_meta_derive-0.3.1 \ pyo3-0.28.3 \ pyo3-build-config-0.28.3 \ pyo3-ffi-0.28.3 \ pyo3-macros-0.28.3 \ pyo3-macros-backend-0.28.3 \ pythonize-0.28.0 \ quanta-0.12.6 \ quick-xml-0.39.4 \ quick-xml-0.41.0 \ quick_cache-0.6.24 \ quinn-0.11.9 \ quinn-proto-0.11.16 \ quinn-udp-0.5.14 \ quote-1.0.45 \ r-efi-5.3.0 \ r-efi-6.0.0 \ radium-0.7.0 \ radix_trie-0.2.1 \ rancor-0.1.1 \ rand-0.8.6 \ rand-0.9.5 \ rand-0.10.1 \ rand_chacha-0.3.1 \ rand_chacha-0.9.0 \ rand_core-0.6.4 \ rand_core-0.9.5 \ rand_core-0.10.1 \ rand_distr-0.5.1 \ rand_pcg-0.10.2 \ rand_xoshiro-0.7.0 \ rangemap-1.7.1 \ rapidhash-4.4.2 \ raw-cpuid-11.6.0 \ rawpointer-0.2.1 \ rayon-1.12.0 \ rayon-core-1.13.0 \ redb-3.1.3 \ redox_syscall-0.5.18 \ redox_users-0.5.2 \ ref-cast-1.0.25 \ ref-cast-impl-1.0.25 \ regex-1.12.4 \ regex-automata-0.4.14 \ regex-lite-0.1.9 \ regex-syntax-0.8.11 \ regress-0.10.5 \ rend-0.5.3 \ reqsign-aliyun-oss-3.1.2 \ reqsign-aws-v4-3.0.3 \ reqsign-azure-storage-3.1.1 \ reqsign-core-3.2.0 \ reqsign-file-read-tokio-3.0.3 \ reqsign-google-3.0.3 \ reqsign-tencent-cos-3.0.3 \ reqsign-volcengine-tos-3.0.3 \ reqwest-0.12.28 \ reqwest-0.13.4 \ reqwest-middleware-0.5.2 \ ring-0.17.14 \ rkyv-0.8.17 \ rkyv_derive-0.8.17 \ roaring-0.11.4 \ robust-1.2.0 \ rsa-0.9.10 \ rstar-0.12.2 \ rust-ini-0.21.3 \ rustc-hash-2.1.3 \ rustc_version-0.4.1 \ rustix-1.1.4 \ rustls-0.23.40 \ rustls-native-certs-0.8.4 \ rustls-pki-types-1.15.0 \ rustls-platform-verifier-0.7.0 \ rustls-platform-verifier-android-0.1.1 \ rustls-webpki-0.103.13 \ rustversion-1.0.22 \ ryu-1.0.23 \ safe-transmute-0.11.3 \ salsa20-0.10.2 \ same-file-1.0.6 \ schannel-0.1.29 \ schemars-0.8.22 \ schemars-0.9.0 \ schemars-1.2.1 \ schemars_derive-0.8.22 \ scoped-tls-1.0.1 \ scopeguard-1.2.0 \ scrypt-0.11.0 \ security-framework-3.7.0 \ security-framework-sys-2.17.0 \ semver-1.0.28 \ seq-macro-0.3.6 \ serde-1.0.229 \ serde_core-1.0.229 \ serde_derive-1.0.229 \ serde_derive_internals-0.29.1 \ serde_json-1.0.151 \ serde_path_to_error-0.1.20 \ serde_repr-0.1.20 \ serde_tokenstream-0.2.3 \ serde_urlencoded-0.7.1 \ serde_with-3.21.0 \ serde_with_macros-3.21.0 \ serde_yaml-0.9.34+deprecated \ serde_yaml_ng-0.10.0 \ sha1-0.11.0 \ sha2-0.10.9 \ sha2-0.11.0 \ sha2-asm-0.6.4 \ sha2-const-stable-0.1.0 \ sharded-slab-0.1.7 \ shellexpand-3.1.2 \ shlex-2.0.1 \ signal-hook-registry-1.4.8 \ signature-2.2.0 \ simd-adler32-0.3.9 \ simd_cesu8-1.1.1 \ simdutf8-0.1.5 \ siphasher-1.0.3 \ sketches-ddsketch-0.3.1 \ slab-0.4.12 \ smallvec-1.15.2 \ snafu-0.9.2 \ snafu-derive-0.9.2 \ snap-1.1.1 \ socket2-0.6.4 \ spade-2.15.1 \ spin-0.9.9 \ spin-0.10.1 \ spki-0.7.3 \ sqlparser-0.62.0 \ sqlparser_derive-0.5.0 \ stabby-72.1.8 \ stabby-abi-72.1.8 \ stabby-macros-72.1.8 \ stable_deref_trait-1.2.1 \ static_assertions-1.1.0 \ statrs-0.18.0 \ std_prelude-0.2.12 \ stfu8-0.2.7 \ stop-words-0.10.0 \ strsim-0.11.1 \ strum-0.28.0 \ strum_macros-0.28.0 \ substrait-0.63.0 \ subtle-2.6.1 \ symlink-0.1.0 \ syn-2.0.118 \ syn-3.0.2 \ sync_wrapper-1.0.2 \ synstructure-0.13.2 \ sysinfo-0.38.4 \ system-configuration-0.7.0 \ system-configuration-sys-0.6.0 \ tagptr-0.2.0 \ tap-1.0.1 \ target-lexicon-0.13.5 \ tempfile-3.27.0 \ thiserror-1.0.69 \ thiserror-2.0.18 \ thiserror-impl-1.0.69 \ thiserror-impl-2.0.18 \ thread-tree-0.3.3 \ thread_local-1.1.9 \ thrift-0.17.0 \ time-0.3.47 \ time-core-0.1.8 \ time-macros-0.2.27 \ tiny-keccak-2.0.2 \ tinystr-0.8.3 \ tinyvec-1.11.0 \ tinyvec_macros-0.1.1 \ tokio-1.53.1 \ tokio-macros-2.7.0 \ tokio-retry-0.3.2 \ tokio-rustls-0.26.4 \ tokio-stream-0.1.19 \ tokio-util-0.7.19 \ toml_datetime-1.1.1+spec-1.1.0 \ toml_edit-0.25.12+spec-1.1.0 \ toml_parser-1.1.2+spec-1.1.0 \ tonic-0.14.6 \ tonic-prost-0.14.6 \ tower-0.5.3 \ tower-http-0.5.2 \ tower-http-0.6.11 \ tower-layer-0.3.3 \ tower-service-0.3.3 \ tracing-0.1.44 \ tracing-appender-0.2.5 \ tracing-attributes-0.1.31 \ tracing-chrome-0.7.2 \ tracing-core-0.1.36 \ tracing-log-0.2.0 \ tracing-serde-0.2.0 \ tracing-subscriber-0.3.23 \ try-lock-0.2.5 \ twox-hash-2.1.3 \ typenum-1.20.1 \ typewit-1.15.2 \ typify-0.5.0 \ typify-impl-0.5.0 \ typify-macro-0.5.0 \ unicase-2.9.0 \ unicode-blocks-0.1.9 \ unicode-ident-1.0.24 \ unicode-normalization-0.1.25 \ unicode-segmentation-1.13.3 \ unicode-width-0.2.2 \ unsafe-libyaml-0.2.11 \ untrusted-0.9.0 \ url-2.5.8 \ urlencoding-2.1.3 \ utf8-ranges-1.0.5 \ utf8_iter-1.0.4 \ utf8parse-0.2.2 \ uuid-1.24.0 \ valuable-0.1.1 \ version_check-0.9.5 \ vsimd-0.8.0 \ walkdir-2.5.0 \ want-0.3.1 \ wasi-0.11.1+wasi-snapshot-preview1 \ wasi-0.14.7+wasi-0.2.4 \ wasip2-1.0.4+wasi-0.2.12 \ wasite-1.0.2 \ wasm-bindgen-0.2.125 \ wasm-bindgen-futures-0.4.75 \ wasm-bindgen-macro-0.2.125 \ wasm-bindgen-macro-support-0.2.125 \ wasm-bindgen-shared-0.2.125 \ wasm-streams-0.4.2 \ wasm-streams-0.5.0 \ web-sys-0.3.102 \ web-time-1.1.0 \ webpki-root-certs-1.0.8 \ webpki-roots-1.0.8 \ whoami-2.1.2 \ winapi-0.3.9 \ winapi-i686-pc-windows-gnu-0.4.0 \ winapi-util-0.1.11 \ winapi-x86_64-pc-windows-gnu-0.4.0 \ windows-0.62.2 \ windows-collections-0.3.2 \ windows-core-0.62.2 \ windows-future-0.3.2 \ windows-implement-0.60.2 \ windows-interface-0.59.3 \ windows-link-0.2.1 \ windows-numerics-0.3.1 \ windows-registry-0.6.1 \ windows-result-0.4.1 \ windows-strings-0.5.1 \ windows-sys-0.52.0 \ windows-sys-0.60.2 \ windows-sys-0.61.2 \ windows-targets-0.52.6 \ windows-targets-0.53.5 \ windows-threading-0.2.1 \ windows_aarch64_gnullvm-0.52.6 \ windows_aarch64_gnullvm-0.53.1 \ windows_aarch64_msvc-0.52.6 \ windows_aarch64_msvc-0.53.1 \ windows_i686_gnu-0.52.6 \ windows_i686_gnu-0.53.1 \ windows_i686_gnullvm-0.52.6 \ windows_i686_gnullvm-0.53.1 \ windows_i686_msvc-0.52.6 \ windows_i686_msvc-0.53.1 \ windows_x86_64_gnu-0.52.6 \ windows_x86_64_gnu-0.53.1 \ windows_x86_64_gnullvm-0.52.6 \ windows_x86_64_gnullvm-0.53.1 \ windows_x86_64_msvc-0.52.6 \ windows_x86_64_msvc-0.53.1 \ winnow-1.0.3 \ wit-bindgen-0.57.1 \ wkb-0.9.2 \ wkt-0.14.0 \ writeable-0.6.3 \ wyz-0.5.1 \ xet-client-1.5.2 \ xet-core-structures-1.5.2 \ xet-data-1.5.2 \ xet-runtime-1.5.2 \ xmlparser-0.13.6 \ xxhash-rust-0.8.18 \ yoke-0.8.3 \ yoke-derive-0.8.2 \ zerocopy-0.8.52 \ zerocopy-derive-0.8.52 \ zerofrom-0.1.8 \ zerofrom-derive-0.1.7 \ zeroize-1.9.0 \ zerotrie-0.2.4 \ zerovec-0.11.6 \ zerovec-derive-0.11.3 \ zlib-rs-0.6.3 \ zmij-1.0.21 \ zstd-0.13.3 \ zstd-safe-7.2.4 \ zstd-sys-2.0.16+zstd.1.5.7 post-patch: @${REINPLACE_CMD} -e 's/dynamic = \["version"\]/version = "${DISTVERSION}"/g' ${WRKSRC}/pyproject.toml # tests as of 11.0.0: 1366 passed, 1198 skipped, 63 deselected, 11 warnings .include diff --git a/databases/py-pylance/files/patch-rust_lance-linalg_build.rs b/databases/py-pylance/files/patch-rust_lance-linalg_build.rs new file mode 100644 index 000000000000..005cfbf449eb --- /dev/null +++ b/databases/py-pylance/files/patch-rust_lance-linalg_build.rs @@ -0,0 +1,25 @@ +-- Build on architectures without SIMD kernels (e.g. powerpc64le). +-- https://github.com/lance-format/lance/pull/9446 + +--- ../rust/lance-linalg/build.rs.orig 2026-08-30 19:56:29 UTC ++++ ../rust/lance-linalg/build.rs +@@ -19,6 +19,7 @@ fn main() -> Result<(), String> { + println!( + "cargo::rustc-check-cfg=cfg(kernel_support, values(\"avx512_f16\", \"avx512_bf16\", \"avx512_dist_table\", \"amx_fp16\"))" + ); ++ println!("cargo::rustc-check-cfg=cfg(simd_fallback)"); + + println!("cargo:rerun-if-changed=src/simd/f16.c"); + println!("cargo:rerun-if-changed=src/simd/bf16.c"); +@@ -31,6 +32,11 @@ fn main() -> Result<(), String> { + // target_os. + let target_arch = env::var("CARGO_CFG_TARGET_ARCH").unwrap(); + let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap(); ++ ++ // Architectures without SIMD kernels back the vector types with plain arrays. ++ if !matches!(target_arch.as_str(), "x86_64" | "aarch64" | "loongarch64") { ++ println!("cargo:rustc-cfg=simd_fallback"); ++ } + + if target_os == "windows" { + println!( diff --git a/databases/py-pylance/files/patch-rust_lance-linalg_src_simd_f32.rs b/databases/py-pylance/files/patch-rust_lance-linalg_src_simd_f32.rs new file mode 100644 index 000000000000..d7ccbd994d4a --- /dev/null +++ b/databases/py-pylance/files/patch-rust_lance-linalg_src_simd_f32.rs @@ -0,0 +1,406 @@ +-- Build on architectures without SIMD kernels (e.g. powerpc64le). +-- https://github.com/lance-format/lance/pull/9446 + +--- ../rust/lance-linalg/src/simd/f32.rs.orig 2026-08-30 19:56:29 UTC ++++ ../rust/lance-linalg/src/simd/f32.rs +@@ -35,6 +35,11 @@ pub struct f32x8(v8f32); + #[derive(Clone, Copy)] + pub struct f32x8(v8f32); + ++#[allow(non_camel_case_types)] ++#[cfg(simd_fallback)] ++#[derive(Clone, Copy)] ++pub struct f32x8([f32; 8]); ++ + impl std::fmt::Debug for f32x8 { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + let mut arr = [0.0_f32; 8]; +@@ -119,6 +124,10 @@ impl f32x8 { + ]; + Self::load_unaligned(values.as_ptr()) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(indices.map(|i| slice[i as usize])) ++ } + } + } + +@@ -177,6 +186,10 @@ impl SIMD for f32x8 { + unsafe { + Self(transmute(lasx_xvreplgr2vr_w(transmute(val)))) + } ++ #[cfg(simd_fallback)] ++ { ++ Self([val; 8]) ++ } + } + + fn zeros() -> Self { +@@ -192,6 +205,10 @@ impl SIMD for f32x8 { + { + Self::splat(0.0) + } ++ #[cfg(simd_fallback)] ++ { ++ Self::splat(0.0) ++ } + } + + #[inline] +@@ -208,6 +225,10 @@ impl SIMD for f32x8 { + { + Self(transmute(lasx_xvld::<0>(transmute(ptr)))) + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { Self::load_unaligned(ptr) } ++ } + } + + #[inline] +@@ -224,6 +245,10 @@ impl SIMD for f32x8 { + { + Self(transmute(lasx_xvld::<0>(transmute(ptr)))) + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { Self(std::ptr::read_unaligned(ptr as *const [f32; 8])) } ++ } + } + + unsafe fn store(&self, ptr: *mut f32) { +@@ -239,6 +264,10 @@ impl SIMD for f32x8 { + unsafe { + lasx_xvst::<0>(transmute(self.0), transmute(ptr)); + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { self.store_unaligned(ptr) } ++ } + } + + unsafe fn store_unaligned(&self, ptr: *mut f32) { +@@ -254,6 +283,10 @@ impl SIMD for f32x8 { + unsafe { + lasx_xvst::<0>(transmute(self.0), transmute(ptr)); + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { std::ptr::write_unaligned(ptr as *mut [f32; 8], self.0) } ++ } + } + + #[inline] +@@ -282,6 +315,10 @@ impl SIMD for f32x8 { + { + self.as_array().iter().sum() + } ++ #[cfg(simd_fallback)] ++ { ++ self.0.iter().sum() ++ } + } + + fn reduce_min(&self) -> f32 { +@@ -315,6 +352,10 @@ impl SIMD for f32x8 { + let m1 = lasx_xvpermi_w::<1>(transmute(m2), transmute(m2)); + let m2 = lasx_xvfmin_s(transmute(m1), transmute(m2)); + transmute(lasx_xvpickve2gr_w::<0>(transmute(m2))) ++ } ++ #[cfg(simd_fallback)] ++ { ++ self.0.iter().copied().fold(f32::INFINITY, f32::min) + } + } + +@@ -334,6 +375,10 @@ impl SIMD for f32x8 { + unsafe { + Self(lasx_xvfmin_s(self.0, rhs.0)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i].min(rhs.0[i]))) ++ } + } + + fn find(&self, val: f32) -> Option { +@@ -367,6 +412,12 @@ impl SIMD for f32x8 { + } + } + } ++ #[cfg(simd_fallback)] ++ { ++ if let Some(i) = self.0.iter().position(|&v| v == val) { ++ return Some(i as i32); ++ } ++ } + None + } + } +@@ -386,6 +437,12 @@ impl FloatSimd for f32x8 { + unsafe { + self.0 = lasx_xvfmadd_s(a.0, b.0, self.0); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..8 { ++ self.0[i] = a.0[i].mul_add(b.0[i], self.0[i]); ++ } ++ } + } + } + +@@ -409,6 +466,10 @@ impl Add for f32x8 { + unsafe { + Self(lasx_xvfadd_s(self.0, rhs.0)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] + rhs.0[i])) ++ } + } + } + +@@ -428,6 +489,12 @@ impl AddAssign for f32x8 { + unsafe { + self.0 = lasx_xvfadd_s(self.0, rhs.0); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..8 { ++ self.0[i] += rhs.0[i]; ++ } ++ } + } + } + +@@ -451,6 +518,10 @@ impl Sub for f32x8 { + unsafe { + Self(lasx_xvfsub_s(self.0, rhs.0)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] - rhs.0[i])) ++ } + } + } + +@@ -470,6 +541,12 @@ impl SubAssign for f32x8 { + unsafe { + self.0 = lasx_xvfsub_s(self.0, rhs.0); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..8 { ++ self.0[i] -= rhs.0[i]; ++ } ++ } + } + } + +@@ -492,6 +569,10 @@ impl Mul for f32x8 { + #[cfg(target_arch = "loongarch64")] + unsafe { + Self(lasx_xvfmul_s(self.0, rhs.0)) ++ } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] * rhs.0[i])) + } + } + } +@@ -521,6 +602,11 @@ pub struct f32x16(v8f32, v8f32); + #[derive(Clone, Copy)] + pub struct f32x16(v8f32, v8f32); + ++#[allow(non_camel_case_types)] ++#[cfg(simd_fallback)] ++#[derive(Clone, Copy)] ++pub struct f32x16([f32; 16]); ++ + impl std::fmt::Debug for f32x16 { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + let mut arr = [0.0_f32; 16]; +@@ -571,6 +657,10 @@ impl SIMD for f32x16 { + transmute(lasx_xvreplgr2vr_w(transmute(val))), + ) + } ++ #[cfg(simd_fallback)] ++ { ++ Self([val; 16]) ++ } + } + + #[inline] +@@ -587,6 +677,10 @@ impl SIMD for f32x16 { + { + Self::splat(0.0) + } ++ #[cfg(simd_fallback)] ++ { ++ Self::splat(0.0) ++ } + } + + #[inline] +@@ -606,6 +700,10 @@ impl SIMD for f32x16 { + transmute(lasx_xvld::<32>(transmute(ptr))), + ) + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { Self::load_unaligned(ptr) } ++ } + } + + #[inline] +@@ -625,6 +723,10 @@ impl SIMD for f32x16 { + transmute(lasx_xvld::<32>(transmute(ptr))), + ) + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { Self(std::ptr::read_unaligned(ptr as *const [f32; 16])) } ++ } + } + + #[inline] +@@ -643,6 +745,10 @@ impl SIMD for f32x16 { + lasx_xvst::<0>(transmute(self.0), transmute(ptr)); + lasx_xvst::<32>(transmute(self.1), transmute(ptr)); + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { self.store_unaligned(ptr) } ++ } + } + + #[inline] +@@ -661,6 +767,10 @@ impl SIMD for f32x16 { + lasx_xvst::<0>(transmute(self.0), transmute(ptr)); + lasx_xvst::<32>(transmute(self.1), transmute(ptr)); + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { std::ptr::write_unaligned(ptr as *mut [f32; 16], self.0) } ++ } + } + + #[inline] +@@ -691,6 +801,10 @@ impl SIMD for f32x16 { + { + self.as_array().iter().sum() + } ++ #[cfg(simd_fallback)] ++ { ++ self.0.iter().sum() ++ } + } + + #[inline] +@@ -725,6 +839,10 @@ impl SIMD for f32x16 { + let m1 = lasx_xvfmin_s(transmute(m1), transmute(m2)); + transmute(lasx_xvpickve2gr_w::<0>(transmute(m1))) + } ++ #[cfg(simd_fallback)] ++ { ++ self.0.iter().copied().fold(f32::INFINITY, f32::min) ++ } + } + + #[inline] +@@ -746,6 +864,10 @@ impl SIMD for f32x16 { + unsafe { + Self(lasx_xvfmin_s(self.0, rhs.0), lasx_xvfmin_s(self.1, rhs.1)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i].min(rhs.0[i]))) ++ } + } + + #[inline] +@@ -792,6 +914,10 @@ impl SIMD for f32x16 { + } + None + } ++ #[cfg(simd_fallback)] ++ { ++ self.0.iter().position(|&v| v == val).map(|i| i as i32) ++ } + } + } + +@@ -815,6 +941,12 @@ impl FloatSimd for f32x16 { + self.0 = lasx_xvfmadd_s(a.0, b.0, self.0); + self.1 = lasx_xvfmadd_s(a.1, b.1, self.1); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..16 { ++ self.0[i] = a.0[i].mul_add(b.0[i], self.0[i]); ++ } ++ } + } + } + +@@ -840,6 +972,10 @@ impl Add for f32x16 { + unsafe { + Self(lasx_xvfadd_s(self.0, rhs.0), lasx_xvfadd_s(self.1, rhs.1)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] + rhs.0[i])) ++ } + } + } + +@@ -862,6 +998,12 @@ impl AddAssign for f32x16 { + unsafe { + self.0 = lasx_xvfadd_s(self.0, rhs.0); + self.1 = lasx_xvfadd_s(self.1, rhs.1); ++ } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..16 { ++ self.0[i] += rhs.0[i]; ++ } + } + } + } +@@ -888,6 +1030,10 @@ impl Mul for f32x16 { + unsafe { + Self(lasx_xvfmul_s(self.0, rhs.0), lasx_xvfmul_s(self.1, rhs.1)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] * rhs.0[i])) ++ } + } + } + +@@ -912,6 +1058,10 @@ impl Sub for f32x16 { + #[cfg(target_arch = "loongarch64")] + unsafe { + Self(lasx_xvfsub_s(self.0, rhs.0), lasx_xvfsub_s(self.1, rhs.1)) ++ } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] - rhs.0[i])) + } + } + } +@@ -936,6 +1086,12 @@ impl SubAssign for f32x16 { + self.0 = lasx_xvfsub_s(self.0, rhs.0); + self.1 = lasx_xvfsub_s(self.1, rhs.1); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..16 { ++ self.0[i] -= rhs.0[i]; ++ } ++ } + } + } + diff --git a/databases/py-pylance/files/patch-rust_lance-linalg_src_simd_f64.rs b/databases/py-pylance/files/patch-rust_lance-linalg_src_simd_f64.rs new file mode 100644 index 000000000000..b12a151637d8 --- /dev/null +++ b/databases/py-pylance/files/patch-rust_lance-linalg_src_simd_f64.rs @@ -0,0 +1,371 @@ +-- Build on architectures without SIMD kernels (e.g. powerpc64le). +-- https://github.com/lance-format/lance/pull/9446 + +--- ../rust/lance-linalg/src/simd/f64.rs.orig 2026-08-30 19:56:29 UTC ++++ ../rust/lance-linalg/src/simd/f64.rs +@@ -33,6 +33,11 @@ pub struct f64x4(v4f64); + #[derive(Clone, Copy)] + pub struct f64x4(v4f64); + ++#[allow(non_camel_case_types)] ++#[cfg(simd_fallback)] ++#[derive(Clone, Copy)] ++pub struct f64x4([f64; 4]); ++ + impl std::fmt::Debug for f64x4 { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + let mut arr = [0.0_f64; 4]; +@@ -74,6 +79,10 @@ impl SIMD for f64x4 { + unsafe { + Self(transmute(lasx_xvreplgr2vr_d(transmute(val)))) + } ++ #[cfg(simd_fallback)] ++ { ++ Self([val; 4]) ++ } + } + + fn zeros() -> Self { +@@ -89,6 +98,10 @@ impl SIMD for f64x4 { + { + Self::splat(0.0) + } ++ #[cfg(simd_fallback)] ++ { ++ Self::splat(0.0) ++ } + } + + #[inline] +@@ -105,6 +118,10 @@ impl SIMD for f64x4 { + { + Self(transmute(lasx_xvld::<0>(transmute(ptr)))) + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { Self::load_unaligned(ptr) } ++ } + } + + #[inline] +@@ -121,6 +138,10 @@ impl SIMD for f64x4 { + { + Self(transmute(lasx_xvld::<0>(transmute(ptr)))) + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { Self(std::ptr::read_unaligned(ptr as *const [f64; 4])) } ++ } + } + + unsafe fn store(&self, ptr: *mut f64) { +@@ -136,6 +157,10 @@ impl SIMD for f64x4 { + unsafe { + lasx_xvst::<0>(transmute(self.0), transmute(ptr)); + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { self.store_unaligned(ptr) } ++ } + } + + unsafe fn store_unaligned(&self, ptr: *mut f64) { +@@ -151,6 +176,10 @@ impl SIMD for f64x4 { + unsafe { + lasx_xvst::<0>(transmute(self.0), transmute(ptr)); + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { std::ptr::write_unaligned(ptr as *mut [f64; 4], self.0) } ++ } + } + + #[inline] +@@ -174,6 +203,10 @@ impl SIMD for f64x4 { + { + self.as_array().iter().sum() + } ++ #[cfg(simd_fallback)] ++ { ++ self.0.iter().sum() ++ } + } + + fn reduce_min(&self) -> f64 { +@@ -199,6 +232,10 @@ impl SIMD for f64x4 { + .copied() + .fold(f64::INFINITY, f64::min) + } ++ #[cfg(simd_fallback)] ++ { ++ self.0.iter().copied().fold(f64::INFINITY, f64::min) ++ } + } + + fn min(&self, rhs: &Self) -> Self { +@@ -217,6 +254,10 @@ impl SIMD for f64x4 { + unsafe { + Self(lasx_xvfmin_d(self.0, rhs.0)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i].min(rhs.0[i]))) ++ } + } + + fn find(&self, val: f64) -> Option { +@@ -246,6 +287,12 @@ impl FloatSimd for f64x4 { + unsafe { + self.0 = lasx_xvfmadd_d(a.0, b.0, self.0); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..4 { ++ self.0[i] = a.0[i].mul_add(b.0[i], self.0[i]); ++ } ++ } + } + } + +@@ -269,6 +316,10 @@ impl Add for f64x4 { + unsafe { + Self(lasx_xvfadd_d(self.0, rhs.0)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] + rhs.0[i])) ++ } + } + } + +@@ -288,6 +339,12 @@ impl AddAssign for f64x4 { + unsafe { + self.0 = lasx_xvfadd_d(self.0, rhs.0); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..4 { ++ self.0[i] += rhs.0[i]; ++ } ++ } + } + } + +@@ -311,6 +368,10 @@ impl Sub for f64x4 { + unsafe { + Self(lasx_xvfsub_d(self.0, rhs.0)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] - rhs.0[i])) ++ } + } + } + +@@ -330,6 +391,12 @@ impl SubAssign for f64x4 { + unsafe { + self.0 = lasx_xvfsub_d(self.0, rhs.0); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..4 { ++ self.0[i] -= rhs.0[i]; ++ } ++ } + } + } + +@@ -352,6 +419,10 @@ impl Mul for f64x4 { + #[cfg(target_arch = "loongarch64")] + unsafe { + Self(lasx_xvfmul_d(self.0, rhs.0)) ++ } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] * rhs.0[i])) + } + } + } +@@ -382,6 +453,11 @@ pub struct f64x8(v4f64, v4f64); + #[derive(Clone, Copy)] + pub struct f64x8(v4f64, v4f64); + ++#[allow(non_camel_case_types)] ++#[cfg(simd_fallback)] ++#[derive(Clone, Copy)] ++pub struct f64x8([f64; 8]); ++ + impl std::fmt::Debug for f64x8 { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + let mut arr = [0.0_f64; 8]; +@@ -426,6 +502,10 @@ impl SIMD for f64x8 { + let v = transmute(lasx_xvreplgr2vr_d(transmute(val))); + Self(v, v) + } ++ #[cfg(simd_fallback)] ++ { ++ Self([val; 8]) ++ } + } + + #[inline] +@@ -442,6 +522,10 @@ impl SIMD for f64x8 { + { + Self::splat(0.0) + } ++ #[cfg(simd_fallback)] ++ { ++ Self::splat(0.0) ++ } + } + + #[inline] +@@ -461,6 +545,10 @@ impl SIMD for f64x8 { + transmute(lasx_xvld::<32>(transmute(ptr))), + ) + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { Self::load_unaligned(ptr) } ++ } + } + + #[inline] +@@ -480,6 +568,10 @@ impl SIMD for f64x8 { + transmute(lasx_xvld::<32>(transmute(ptr))), + ) + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { Self(std::ptr::read_unaligned(ptr as *const [f64; 8])) } ++ } + } + + #[inline] +@@ -499,6 +591,10 @@ impl SIMD for f64x8 { + lasx_xvst::<0>(transmute(self.0), transmute(ptr)); + lasx_xvst::<32>(transmute(self.1), transmute(ptr)); + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { self.store_unaligned(ptr) } ++ } + } + + #[inline] +@@ -518,6 +614,10 @@ impl SIMD for f64x8 { + lasx_xvst::<0>(transmute(self.0), transmute(ptr)); + lasx_xvst::<32>(transmute(self.1), transmute(ptr)); + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { std::ptr::write_unaligned(ptr as *mut [f64; 8], self.0) } ++ } + } + + #[inline] +@@ -541,6 +641,10 @@ impl SIMD for f64x8 { + { + self.as_array().iter().sum() + } ++ #[cfg(simd_fallback)] ++ { ++ self.0.iter().sum() ++ } + } + + #[inline] +@@ -568,6 +672,10 @@ impl SIMD for f64x8 { + .copied() + .fold(f64::INFINITY, f64::min) + } ++ #[cfg(simd_fallback)] ++ { ++ self.0.iter().copied().fold(f64::INFINITY, f64::min) ++ } + } + + #[inline] +@@ -587,6 +695,10 @@ impl SIMD for f64x8 { + unsafe { + Self(lasx_xvfmin_d(self.0, rhs.0), lasx_xvfmin_d(self.1, rhs.1)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i].min(rhs.0[i]))) ++ } + } + + #[inline] +@@ -622,6 +734,12 @@ impl FloatSimd for f64x8 { + self.0 = lasx_xvfmadd_d(a.0, b.0, self.0); + self.1 = lasx_xvfmadd_d(a.1, b.1, self.1); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..8 { ++ self.0[i] = a.0[i].mul_add(b.0[i], self.0[i]); ++ } ++ } + } + } + +@@ -645,6 +763,10 @@ impl Add for f64x8 { + unsafe { + Self(lasx_xvfadd_d(self.0, rhs.0), lasx_xvfadd_d(self.1, rhs.1)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] + rhs.0[i])) ++ } + } + } + +@@ -668,6 +790,12 @@ impl AddAssign for f64x8 { + self.0 = lasx_xvfadd_d(self.0, rhs.0); + self.1 = lasx_xvfadd_d(self.1, rhs.1); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..8 { ++ self.0[i] += rhs.0[i]; ++ } ++ } + } + } + +@@ -691,6 +819,10 @@ impl Mul for f64x8 { + unsafe { + Self(lasx_xvfmul_d(self.0, rhs.0), lasx_xvfmul_d(self.1, rhs.1)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] * rhs.0[i])) ++ } + } + } + +@@ -714,6 +846,10 @@ impl Sub for f64x8 { + unsafe { + Self(lasx_xvfsub_d(self.0, rhs.0), lasx_xvfsub_d(self.1, rhs.1)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i] - rhs.0[i])) ++ } + } + } + +@@ -737,6 +873,12 @@ impl SubAssign for f64x8 { + self.0 = lasx_xvfsub_d(self.0, rhs.0); + self.1 = lasx_xvfsub_d(self.1, rhs.1); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..8 { ++ self.0[i] -= rhs.0[i]; ++ } ++ } + } + } + diff --git a/databases/py-pylance/files/patch-rust_lance-linalg_src_simd_i32.rs b/databases/py-pylance/files/patch-rust_lance-linalg_src_simd_i32.rs new file mode 100644 index 000000000000..1dd3c967c202 --- /dev/null +++ b/databases/py-pylance/files/patch-rust_lance-linalg_src_simd_i32.rs @@ -0,0 +1,192 @@ +-- Build on architectures without SIMD kernels (e.g. powerpc64le). +-- https://github.com/lance-format/lance/pull/9446 + +--- ../rust/lance-linalg/src/simd/i32.rs.orig 2026-08-30 19:56:29 UTC ++++ ../rust/lance-linalg/src/simd/i32.rs +@@ -38,6 +38,11 @@ pub struct i32x8(v8i32); + #[derive(Clone, Copy)] + pub struct i32x8(v8i32); + ++#[allow(non_camel_case_types)] ++#[cfg(simd_fallback)] ++#[derive(Clone, Copy)] ++pub struct i32x8([i32; 8]); ++ + impl std::fmt::Debug for i32x8 { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + let mut arr = [0; 8]; +@@ -80,6 +85,10 @@ impl SIMD for i32x8 { + unsafe { + Self(lasx_xvreplgr2vr_w(val)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self([val; 8]) ++ } + } + + #[inline] +@@ -96,6 +105,10 @@ impl SIMD for i32x8 { + { + Self::splat(0) + } ++ #[cfg(simd_fallback)] ++ { ++ Self::splat(0) ++ } + } + + #[inline] +@@ -112,6 +125,10 @@ impl SIMD for i32x8 { + { + Self(transmute(lasx_xvld::<0>(transmute(ptr)))) + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { Self::load_unaligned(ptr) } ++ } + } + + #[inline] +@@ -128,6 +145,10 @@ impl SIMD for i32x8 { + { + Self(transmute(lasx_xvld::<0>(transmute(ptr)))) + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { Self(std::ptr::read_unaligned(ptr as *const [i32; 8])) } ++ } + } + + #[inline] +@@ -148,6 +169,10 @@ impl SIMD for i32x8 { + unsafe { + lasx_xvst::<0>(transmute(self.0), transmute(ptr)) + } ++ #[cfg(simd_fallback)] ++ { ++ unsafe { std::ptr::write_unaligned(ptr as *mut [i32; 8], self.0) } ++ } + } + + fn reduce_sum(&self) -> i32 { +@@ -164,6 +189,10 @@ impl SIMD for i32x8 { + { + self.as_array().iter().sum() + } ++ #[cfg(simd_fallback)] ++ { ++ self.0.iter().sum() ++ } + } + + fn reduce_min(&self) -> i32 { +@@ -186,6 +215,10 @@ impl SIMD for i32x8 { + unsafe { + Self(lasx_xvmin_w(self.0, rhs.0)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i].min(rhs.0[i]))) ++ } + } + + fn find(&self, val: i32) -> Option { +@@ -219,6 +252,12 @@ impl SIMD for i32x8 { + } + } + } ++ #[cfg(simd_fallback)] ++ { ++ if let Some(i) = self.0.iter().position(|&v| v == val) { ++ return Some(i as i32); ++ } ++ } + None + } + } +@@ -243,6 +282,10 @@ impl Add for i32x8 { + unsafe { + Self(lasx_xvadd_w(self.0, rhs.0)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i].wrapping_add(rhs.0[i]))) ++ } + } + } + +@@ -262,6 +305,12 @@ impl AddAssign for i32x8 { + unsafe { + self.0 = lasx_xvadd_w(self.0, rhs.0); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..8 { ++ self.0[i] = self.0[i].wrapping_add(rhs.0[i]); ++ } ++ } + } + } + +@@ -285,6 +334,10 @@ impl Sub for i32x8 { + unsafe { + Self(lasx_xvsub_w(self.0, rhs.0)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i].wrapping_sub(rhs.0[i]))) ++ } + } + } + +@@ -304,6 +357,12 @@ impl SubAssign for i32x8 { + unsafe { + self.0 = lasx_xvsub_w(self.0, rhs.0); + } ++ #[cfg(simd_fallback)] ++ { ++ for i in 0..8 { ++ self.0[i] = self.0[i].wrapping_sub(rhs.0[i]); ++ } ++ } + } + } + +@@ -313,11 +372,11 @@ impl Mul for i32x8 { + /// Lane-wise product, keeping the low 32 bits of each result. + /// + /// `mul` wraps on overflow rather than panicking the way scalar `i32 * i32` +- /// does in a debug build, and all three arms agree on that: `vpmulld`, +- /// `vmulq_s32` and `lasx_xvmul_w` each discard the high half. This is a +- /// statement about `mul` alone — `reduce_sum` sums in scalar `i32` on x86_64 +- /// and loongarch64 (so it panics on overflow in a debug build) but reduces +- /// in-register on aarch64, where it wraps. ++ /// does in a debug build, and every arm agrees on that: `vpmulld`, ++ /// `vmulq_s32`, `lasx_xvmul_w` and `wrapping_mul` each discard the high ++ /// half. This is a statement about `mul` alone — `reduce_sum` sums in scalar ++ /// `i32` outside aarch64 (so it panics on overflow in a debug build) but ++ /// reduces in-register on aarch64, where it wraps. + /// + /// Picking a widening variant here is a silent wrong answer, not a compile + /// error: `_mm256_mul_epi32` (`vpmuldq`) multiplies only the even 32-bit +@@ -340,6 +399,10 @@ impl Mul for i32x8 { + unsafe { + Self(lasx_xvmul_w(self.0, rhs.0)) + } ++ #[cfg(simd_fallback)] ++ { ++ Self(std::array::from_fn(|i| self.0[i].wrapping_mul(rhs.0[i]))) ++ } + } + } + +@@ -353,7 +416,7 @@ mod tests { + assert!(std::panic::catch_unwind(|| i32x8::from(&[0; 7][..])).is_err()); + } + +- /// Lane-wise, low-32-bits multiplication is what all three arms promise, so ++ /// Lane-wise, low-32-bits multiplication is what every arm promises, so + /// this runs everywhere: only the x86 feature check is arch-gated, matching + /// `f32.rs`'s and `f64.rs`'s test modules. + ///