Builds against DuckDB 2.0.0 as well as the pinned v1.5 line.
- A SIGSEGV in the logistic path. plink-ng's float kernels use aligned AVX loads (
_mm256_load_ps), which fault on anything less than 32-byte alignment, andLogisticBuffersheld its scratch instd::vector<float>— which guarantees only 16. Latent: it crashed on one DuckDB build and passed on another with identical source. - Ploidy-aware
plink_scoreandplink_missingon sex chromosomes. Haploid calls on chrY/chrMT now contribute one allele rather than two, and chrY excludes females and unknown-sex samples instead of mean-imputing a score for a chromosome they lack.plink_glm's chrX handling is documented rather than silently assumed — plink2 couples chrX with an injected sex covariate, which is a modelling decision rather than a bug fix. - Signed LD and population-weighted LD, contributed by @sounkou-bioinfo, rebased onto current main with authorship preserved.
- Under-allocated Hessian scratch corrected to plink-ng's own floors (
p * MAXV(p, 7)andp * MAXV(p, 3)).
4751 assertions; canary Build and Test both green against DuckDB main.